]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 weeks agoupdate TODO
Lennart Poettering [Tue, 10 Mar 2026 17:16:37 +0000 (18:16 +0100)] 
update TODO

4 weeks agoNEWS: update contributors list 41023/head
Luca Boccassi [Tue, 10 Mar 2026 17:12:12 +0000 (17:12 +0000)] 
NEWS: update contributors list

4 weeks agoUpdate hwdb
Luca Boccassi [Tue, 10 Mar 2026 17:04:22 +0000 (17:04 +0000)] 
Update hwdb

ninja -C build update-hwdb

4 weeks agomkosi: update debian commit reference to 56e0eed69a4782eb8e110650d93daebcf1ece49a
Luca Boccassi [Tue, 10 Mar 2026 15:25:47 +0000 (15:25 +0000)] 
mkosi: update debian commit reference to 56e0eed69a4782eb8e110650d93daebcf1ece49a

56e0eed69a Update changelog for 260~rc2-1 release
36e6a6d247 Install new files
692d0ffde5 Install new files for upstream build
04e77a9300 Enable getty@ via packaging scriptlets, not static anymore
65e7898ab5 Remove build-depend on rsync, meson is new enough
1ab5e82a93 Update changelog for 260~rc1-2 release
17a8004c53 sd-boot-efi: do not pick up hwids, they are shipped by sd-ukify
b620f379b3 Update changelog for 260~rc1-1 release
8eb95fc404 Drop unused Lintian overrides
82a111e7ef Update symbols file for v260~rc1
9cb8e0457b Disable remaining deprecated sysv interfaces
100d97ba82 Install new files for v260~rc1
b8e9e50f4d initramfs-tools: copy udev link files from /usr/local/lib/systemd/network too

4 weeks agonetwork: fix issue when configuring route (#41000)
Zbigniew Jędrzejewski-Szmek [Tue, 10 Mar 2026 16:14:15 +0000 (17:14 +0100)] 
network: fix issue when configuring route (#41000)

Fixes #40106.

4 weeks agopcrlock: minor tweaks (#41018)
Lennart Poettering [Tue, 10 Mar 2026 15:47:18 +0000 (16:47 +0100)] 
pcrlock: minor tweaks (#41018)

4 weeks agoTwo claude improvements (#41019)
Luca Boccassi [Tue, 10 Mar 2026 15:40:55 +0000 (15:40 +0000)] 
Two claude improvements (#41019)

4 weeks agoci: Use one more variable in claude-review workflow 41019/head
Daan De Meyer [Tue, 10 Mar 2026 13:40:00 +0000 (14:40 +0100)] 
ci: Use one more variable in claude-review workflow

4 weeks agopcrlock: add .pcrlock file for recently added NvPCR separator 41018/head
Lennart Poettering [Tue, 10 Mar 2026 10:54:17 +0000 (11:54 +0100)] 
pcrlock: add .pcrlock file for recently added NvPCR separator

Follow-up for: 867e64737a1761e313c371abfb43ab2c04b9e568

4 weeks agopcrlock: do not pass wrong error to log message
Lennart Poettering [Tue, 10 Mar 2026 10:54:54 +0000 (11:54 +0100)] 
pcrlock: do not pass wrong error to log message

4 weeks agopcrlock: add an extra assert()
Lennart Poettering [Tue, 10 Mar 2026 07:10:06 +0000 (08:10 +0100)] 
pcrlock: add an extra assert()

4 weeks agoci: Use github MCP in claude review instead of gh command line tool
Daan De Meyer [Tue, 10 Mar 2026 09:58:27 +0000 (10:58 +0100)] 
ci: Use github MCP in claude review instead of gh command line tool

MCP was specifically made for AI and is available, so we might as well
use it.

4 weeks agosemaphore: use Ubuntu 24.04
Yu Watanabe [Tue, 10 Mar 2026 00:18:48 +0000 (09:18 +0900)] 
semaphore: use Ubuntu 24.04

Semaphore CI/CD now emits the following error.
```
OS image 'ubuntu2004' for machine type 'e1-standard-2' is currently in a brownout phase.
Please use another OS image.
```
Let's use newer image.

4 weeks agoudev: improve log message in udev_builtin_add_property() 41001/head
Yu Watanabe [Mon, 9 Mar 2026 04:50:27 +0000 (13:50 +0900)] 
udev: improve log message in udev_builtin_add_property()

4 weeks agosd-device: refuse spurious properties
Yu Watanabe [Mon, 9 Mar 2026 04:24:03 +0000 (13:24 +0900)] 
sd-device: refuse spurious properties

Properties are set through uevent, udev rules, or program output by IMPORT.
They may contain spurious characters and udev database parsers may be confused.
Let's refuse spurious properties.

4 weeks agomount: honor --timeout-idle-sec=SEC option (#41010)
ppkramer-hub [Mon, 9 Mar 2026 19:31:53 +0000 (20:31 +0100)] 
mount: honor --timeout-idle-sec=SEC option (#41010)

When using systemd-mount to create a transient .mount/.automount file
for removable storage, the option to specify the idle timeout on the
commandline using **--timeout-idle-sec=SEC** is not reflected in the
generated .automount file. Instead, the idle timeout is always set to 1
second.

arg_timeout_idle_set was never set to true when passing the argument, so
arg_timeout_idle was always set to 1s.

Fixes #41007.

Co-authored-by: patrick <patrick@localhost>
4 weeks agosd-device: do not register a property with an empty string
Yu Watanabe [Mon, 9 Mar 2026 18:33:10 +0000 (03:33 +0900)] 
sd-device: do not register a property with an empty string

The function device_add_property() handles property with NULL value as
removing the property. Let's also make an empty value is handled as
same.

Note, ENV{hoge}=="" udev property handles both NULL value and an empty string
in the same way.

4 weeks agosd-device: use device_add_property() at one more place
Yu Watanabe [Mon, 9 Mar 2026 04:30:02 +0000 (13:30 +0900)] 
sd-device: use device_add_property() at one more place

4 weeks agoci: Drop tracking comment update from claude review
Daan De Meyer [Mon, 9 Mar 2026 16:55:33 +0000 (17:55 +0100)] 
ci: Drop tracking comment update from claude review

Too noisy, let's drop it.

4 weeks agomount-util: Use new mount API in bind_mount_submounts() 41008/head
Daan De Meyer [Mon, 9 Mar 2026 15:25:05 +0000 (16:25 +0100)] 
mount-util: Use new mount API in bind_mount_submounts()

4 weeks agoAGENTS.md: Tell agents to use mkosi box for running commands
Daan De Meyer [Mon, 9 Mar 2026 15:24:20 +0000 (16:24 +0100)] 
AGENTS.md: Tell agents to use mkosi box for running commands

mkosi box will run in the tools tree if there is one which is guaranteed
to contain basic tools.

4 weeks agoci: Two claude fixes (#41004)
Daan De Meyer [Mon, 9 Mar 2026 11:05:27 +0000 (12:05 +0100)] 
ci: Two claude fixes (#41004)

4 weeks agoci: Update claude action to v1 commit 41004/head
Daan De Meyer [Mon, 9 Mar 2026 10:12:21 +0000 (11:12 +0100)] 
ci: Update claude action to v1 commit

I accidentally picked a random commit instead of the one pointing
to the official v1 release, let's fix that.

4 weeks agoci: Don't cancel in progress jobs for claude-review workflow
Daan De Meyer [Mon, 9 Mar 2026 09:33:20 +0000 (10:33 +0100)] 
ci: Don't cancel in progress jobs for claude-review workflow

This workflow runs on any comment to a github PR. 99% of the time the
workflow will be skipped yet it will still cancel any previous ongoing
workflows. Let's not cancel in progress workflow but instead queue the
workflow so we don't cancel in progress reviews any time a comment is
posted on a PR that is being reviewed.

4 weeks agoci: privilege-separate Claude review workflow
Daan De Meyer [Fri, 6 Mar 2026 14:58:06 +0000 (15:58 +0100)] 
ci: privilege-separate Claude review workflow

The workflow is split into two jobs for least-privilege:

1. 'review' job — runs Claude with read-only permissions (contents: read,
   id-token: write for AWS OIDC, actions: read). Claude produces a structured
   JSON review via --json-schema with a 'comments' array and a 'summary'
   string. Its tools are restricted to read-only operations (Read, LS, Grep,
   Glob, Task, and various Bash prefixes for common read-only commands).
   Claude also has access to CI MCP tools to analyze failed workflow runs.

2. 'post' job — only has pull-requests: write. Reads the structured JSON
   output from the review job and posts inline comments individually (so
   re-runs only add new comments). Maintains a tracking comment with a
   <!-- claude-pr-review --> marker that is created on first run and updated
   in-place on subsequent runs, preserving existing item order, wording,
   and checkbox state. Posts a notification comment when the tracking
   comment is updated or left unchanged.

Comment deduplication is handled by Claude in the prompt rather than in
the posting script, allowing for better semantic understanding of whether
two comments address the same issue.

The PR number is resolved via github.event.pull_request.number with a
fallback to github.event.issue.number for issue_comment events where
github.event.pull_request is not populated. The concurrency group uses
the same fallback.

Co-developed-by: Claude <claude@anthropic.com>
4 weeks agotest-network: add test case for issue #40106 41000/head
Yu Watanabe [Mon, 9 Mar 2026 03:31:41 +0000 (12:31 +0900)] 
test-network: add test case for issue #40106

4 weeks agonetwork: route bound to a link requires the link is up
Yu Watanabe [Mon, 9 Mar 2026 02:46:01 +0000 (11:46 +0900)] 
network: route bound to a link requires the link is up

We checked if the link is up only when configuring (explicit) nexthop,
but we did not checked that when configuring route which has (implicit)
nexthop.

Let's move the checks from nexthop_is_ready_to_configure() to
gateway_is_ready(), which is called for both implicit and explict
nexthops.

Fixes #40106.

4 weeks agonetwork: check if gateway is ready only when the nexthop is bound to link
Yu Watanabe [Mon, 9 Mar 2026 02:30:54 +0000 (11:30 +0900)] 
network: check if gateway is ready only when the nexthop is bound to link

Currently, we support three types of nexthop:
1. simple nexthop, which is bound to link, may have specific gateway
   address,
2. blackhole nexthop, which is global configuration and is not bound to
   any links,
3. group nexthop, which is also global configuration and is not bound to
   any links.

Thus, gateway_is_ready() is only necessary to call for simple nexthop
case. Let's make the logic simpler.

4 weeks agonetwork: introduce link_is_up() helper function
Yu Watanabe [Mon, 9 Mar 2026 01:57:06 +0000 (10:57 +0900)] 
network: introduce link_is_up() helper function

4 weeks agoman: fix SendHostname= and Hostname= descriptions to allow multi-label DNS names...
Malcolm Frazier [Sun, 8 Mar 2026 02:18:56 +0000 (18:18 -0800)] 
man: fix SendHostname= and Hostname= descriptions to allow multi-label DNS names in [DHCPv4]

4 weeks agoShorten format-table code and fix potential memleak (#40917)
Yu Watanabe [Mon, 9 Mar 2026 00:26:30 +0000 (09:26 +0900)] 
Shorten format-table code and fix potential memleak (#40917)

4 weeks agopo: Translated using Weblate (Slovenian)
Martin Srebotnjak [Sun, 8 Mar 2026 23:58:27 +0000 (23:58 +0000)] 
po: Translated using Weblate (Slovenian)

Currently translated at 100.0% (266 of 266 strings)

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

4 weeks agohwdb: update HP Envy x360 patterns to cover newer 14-fc0xxx models
Andrii Zora [Sat, 7 Mar 2026 15:24:28 +0000 (17:24 +0200)] 
hwdb: update HP Envy x360 patterns to cover newer 14-fc0xxx models

Signed-off-by: Andrii Zora <anaxarsys@gmail.com>
4 weeks agohwdb: sensor: bncf reformat match
David Santamaría Rogado [Sun, 8 Mar 2026 02:45:10 +0000 (03:45 +0100)] 
hwdb: sensor: bncf reformat match

4 weeks agoFix media keys for Lenovo ThinkBook 14 2-in-1 G5 IAU
The-An0nym [Sat, 7 Mar 2026 08:41:00 +0000 (09:41 +0100)] 
Fix media keys for Lenovo ThinkBook 14 2-in-1 G5 IAU

4 weeks agohwdb: map Xiaomi Mi Notebook Pro star key to KEY_MACRO
Arjun-C-S [Sat, 7 Mar 2026 13:00:46 +0000 (18:30 +0530)] 
hwdb: map Xiaomi Mi Notebook Pro star key to KEY_MACRO

The Xiaomi Mi Notebook Pro keyboard has a "star" key that
generates AT keyboard scancode 0x72 but is not mapped in
the default hwdb.

Map it to KEY_MACRO so it appears as a usable input key.

Verified using evtest.

Signed-off-by: Arjun <arjunchoozhi1234@gmail.com>
4 weeks agouser-record: fix segfault when processing matchHostname field (#40979)
Zbigniew Jędrzejewski-Szmek [Sat, 7 Mar 2026 15:22:02 +0000 (16:22 +0100)] 
user-record: fix segfault when processing matchHostname field (#40979)

Fix a typo which causes a segfault when processing a user record
with `matchHostname` when it's an array instead of a simple string:

```
$ echo '{"userName":"crashhostarray","perMachine":[{"matchHostname":["host1","host2"],"locked":false}]}' | userdbctl -F -
Segmentation fault         (core dumped)

$ coredumpctl info
...
       Message: Process 1172301 (userdbctl) of user 1000 dumped core.

                Module libz.so.1 from rpm zlib-ng-2.3.3-1.fc43.x86_64
                Module libcrypto.so.3 from rpm openssl-3.5.4-2.fc43.x86_64
                Stack trace of thread 1172301:
                #0  0x00007fded7b3a656 __strcmp_evex (libc.so.6 + 0x159656)
                #1  0x00007fded7e95397 per_machine_hostname_match (libsystemd-shared-260.so + 0x295397)
                #2  0x00007fded7e955b5 per_machine_match (libsystemd-shared-260.so + 0x2955b5)
                #3  0x00007fded7e957c6 dispatch_per_machine (libsystemd-shared-260.so + 0x2957c6)
                #4  0x00007fded7e96c97 user_record_load (libsystemd-shared-260.so + 0x296c97)
                #5  0x000000000040572d display_user (/home/fsumsal/repos/@systemd/systemd/build/userdbctl + 0x572d)
                #6  0x00007fded7ea9727 dispatch_verb (libsystemd-shared-260.so + 0x2a9727)
                #7  0x000000000041077c run (/home/fsumsal/repos/@systemd/systemd/build/userdbctl + 0x1077c)
                #8  0x00000000004107ce main (/home/fsumsal/repos/@systemd/systemd/build/userdbctl + 0x107ce)
                #9  0x00007fded79e45b5 __libc_start_call_main (libc.so.6 + 0x35b5)
                #10 0x00007fded79e4668 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x3668)
                #11 0x00000000004038d5 _start (/home/fsumsal/repos/@systemd/systemd/build/userdbctl + 0x38d5)
                ELF object binary architecture: AMD x86-64
```

4 weeks agoTranslations update from Fedora Weblate (#40984)
Luca Boccassi [Sat, 7 Mar 2026 10:55:42 +0000 (10:55 +0000)] 
Translations update from Fedora Weblate (#40984)

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)

5 weeks agopo: Translated using Weblate (Turkish) 40984/head
Oğuz Ersen [Sat, 7 Mar 2026 01:58:37 +0000 (01:58 +0000)] 
po: Translated using Weblate (Turkish)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/tr/
Translation: systemd/main

5 weeks agopo: Translated using Weblate (Swedish)
Daniel Nylander [Sat, 7 Mar 2026 01:58:36 +0000 (01:58 +0000)] 
po: Translated using Weblate (Swedish)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Daniel Nylander <po@danielnylander.se>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sv/
Translation: systemd/main

5 weeks agopo: Translated using Weblate (Kazakh)
Baurzhan Muftakhidinov [Sat, 7 Mar 2026 01:58:36 +0000 (01:58 +0000)] 
po: Translated using Weblate (Kazakh)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/kk/
Translation: systemd/main

5 weeks agopo: Translated using Weblate (Korean)
김인수 [Sat, 7 Mar 2026 01:58:35 +0000 (01:58 +0000)] 
po: Translated using Weblate (Korean)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: 김인수 <simmon@nplob.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ko/
Translation: systemd/main

5 weeks agopo: Translated using Weblate (Punjabi)
A S Alam [Sat, 7 Mar 2026 01:58:35 +0000 (01:58 +0000)] 
po: Translated using Weblate (Punjabi)

Currently translated at 34.5% (92 of 266 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

5 weeks agopo: Translated using Weblate (French)
Léane GRASSER [Sat, 7 Mar 2026 01:58:34 +0000 (01:58 +0000)] 
po: Translated using Weblate (French)

Currently translated at 100.0% (266 of 266 strings)

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

5 weeks agopo: Translated using Weblate (Ukrainian)
Yuri Chornoivan [Sat, 7 Mar 2026 01:58:34 +0000 (01:58 +0000)] 
po: Translated using Weblate (Ukrainian)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Yuri Chornoivan <yurchor@ukr.net>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/uk/
Translation: systemd/main

5 weeks agopo: Translated using Weblate (Georgian)
Temuri Doghonadze [Sat, 7 Mar 2026 01:58:33 +0000 (01:58 +0000)] 
po: Translated using Weblate (Georgian)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ka/
Translation: systemd/main

5 weeks agouser-record: extract user_record_image_is_blockdev() common helper 40979/head
Mike Yuan [Fri, 6 Mar 2026 21:07:31 +0000 (22:07 +0100)] 
user-record: extract user_record_image_is_blockdev() common helper

5 weeks agofuzz: add a fuzzer for user records
Frantisek Sumsal [Fri, 6 Mar 2026 16:58:02 +0000 (17:58 +0100)] 
fuzz: add a fuzzer for user records

Add a simple fuzzer that verifies our machinery for parsing user records
from JSON works as intended.

The initial corpus was created with the help of Claude, so we have a
bunch of valid user records with as much fields as possible for the
initial corpus.

5 weeks agoman: fix short option for userdbctl's --from-file=
Frantisek Sumsal [Fri, 6 Mar 2026 16:30:52 +0000 (17:30 +0100)] 
man: fix short option for userdbctl's --from-file=

5 weeks agoshared: don't leak memory from array fields
Frantisek Sumsal [Fri, 6 Mar 2026 16:16:31 +0000 (17:16 +0100)] 
shared: don't leak memory from array fields

The fido2_hmac_salt/fido2_hmac_credential/recovery_key fields kept
leaking memory as the array itself wasn't deallocated after deallocating
each of its elements data:

$ build-san/userdbctl -F fuzz-corpus-userdb/auth-fido2.json
...
=================================================================
==1292840==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 112 byte(s) in 1 object(s) allocated from:
    #0 0x7f56f00e5e4b in realloc.part.0 (/lib64/libasan.so.8+0xe5e4b) (BuildId: 25975f766867e9e604dc5a71a8befeaed3301942)
    #1 0x7f56ed869e42 in greedy_realloc ../src/basic/alloc-util.c:65
    #2 0x7f56ed7ff5e9 in dispatch_fido2_hmac_salt ../src/shared/user-record.c:836
    #3 0x7f56edd73cbc in sd_json_dispatch_full ../src/libsystemd/sd-json/sd-json.c:5204
    #4 0x7f56edd745fc in sd_json_dispatch ../src/libsystemd/sd-json/sd-json.c:5276
    #5 0x7f56ed80100b in dispatch_privileged ../src/shared/user-record.c:998
    #6 0x7f56edd73cbc in sd_json_dispatch_full ../src/libsystemd/sd-json/sd-json.c:5204
    #7 0x7f56edd745fc in sd_json_dispatch ../src/libsystemd/sd-json/sd-json.c:5276
    #8 0x7f56ed80622c in user_record_load ../src/shared/user-record.c:1697
    #9 0x000000408c15 in display_user ../src/userdb/userdbctl.c:447
    #10 0x7f56ed83cc9a in dispatch_verb ../src/shared/verbs.c:137
    #11 0x00000041df2b in run ../src/userdb/userdbctl.c:1908
    #12 0x00000041dfbe in main ../src/userdb/userdbctl.c:1911
    #13 0x7f56ec8105b4 in __libc_start_call_main (/lib64/libc.so.6+0x35b4) (BuildId: 2b5beec0fd24fe9c9f43eddfdd5facf0b8a1b805)
    #14 0x7f56ec810667 in __libc_start_main@@GLIBC_2.34 (/lib64/libc.so.6+0x3667) (BuildId: 2b5beec0fd24fe9c9f43eddfdd5facf0b8a1b805)
    #15 0x000000404a44 in _start (/home/fsumsal/repos/@systemd/systemd/build-san/userdbctl+0x404a44) (BuildId: 19e8b7e7b7038d2cea20bc18a55bea2a9e4406d5)

Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7f56f00e5e4b in realloc.part.0 (/lib64/libasan.so.8+0xe5e4b) (BuildId: 25975f766867e9e604dc5a71a8befeaed3301942)
    #1 0x7f56ed869e42 in greedy_realloc ../src/basic/alloc-util.c:65
    #2 0x7f56ed7fe779 in dispatch_fido2_hmac_credential_array ../src/shared/user-record.c:775
    #3 0x7f56edd73cbc in sd_json_dispatch_full ../src/libsystemd/sd-json/sd-json.c:5204
    #4 0x7f56edd745fc in sd_json_dispatch ../src/libsystemd/sd-json/sd-json.c:5276
    #5 0x7f56ed80622c in user_record_load ../src/shared/user-record.c:1697
    #6 0x000000408c15 in display_user ../src/userdb/userdbctl.c:447
    #7 0x7f56ed83cc9a in dispatch_verb ../src/shared/verbs.c:137
    #8 0x00000041df2b in run ../src/userdb/userdbctl.c:1908
    #9 0x00000041dfbe in main ../src/userdb/userdbctl.c:1911
    #10 0x7f56ec8105b4 in __libc_start_call_main (/lib64/libc.so.6+0x35b4) (BuildId: 2b5beec0fd24fe9c9f43eddfdd5facf0b8a1b805)
    #11 0x7f56ec810667 in __libc_start_main@@GLIBC_2.34 (/lib64/libc.so.6+0x3667) (BuildId: 2b5beec0fd24fe9c9f43eddfdd5facf0b8a1b805)
    #12 0x000000404a44 in _start (/home/fsumsal/repos/@systemd/systemd/build-san/userdbctl+0x404a44) (BuildId: 19e8b7e7b7038d2cea20bc18a55bea2a9e4406d5)

SUMMARY: AddressSanitizer: 176 byte(s) leaked in 2 allocation(s).

5 weeks agoshared: don't exclude valid min/max values for cgroup weight fields
Frantisek Sumsal [Fri, 6 Mar 2026 15:36:52 +0000 (16:36 +0100)] 
shared: don't exclude valid min/max values for cgroup weight fields

1 and 10000 are valid cgroup weight values, but the condition was
incorrectly excluding them:

$ echo '{"userName":"crashhostarray","cpuWeight":1}' | userdbctl -F -
<stdin>:1:42: JSON field 'cpuWeight' is not in valid range 1…10000.

$ echo '{"userName":"crashhostarray","cpuWeight":10000}' | userdbctl -F -
<stdin>:1:42: JSON field 'cpuWeight' is not in valid range 1…10000.

5 weeks agovarious: use asprintf_safe in more places 40917/head
Zbigniew Jędrzejewski-Szmek [Tue, 3 Mar 2026 09:51:11 +0000 (10:51 +0100)] 
various: use asprintf_safe in more places

5 weeks agoshared/format-table: fix potential memleaks of d->formatted
Zbigniew Jędrzejewski-Szmek [Mon, 2 Mar 2026 14:35:41 +0000 (15:35 +0100)] 
shared/format-table: fix potential memleaks of d->formatted

We don't always return d->formatted, even if it is available. And
depending on the cell type, we'd either overwrite it directly or free
first. Let's always free it upfront and then set unconditionally.
(In this case, we don't need to spend effort on preserving the
existing value. It's just a cache.)  Setting the variable directly
allows many temporary variables to be eliminated.

Also use asprintf_safe() to simplify the allocation of the buffer.
This is probably a tiny bit slower than the direct allocation, but
table formatting shouldn't be a hot path.

5 weeks agobasic/stdio-util: introduce asprintf_safe
Zbigniew Jędrzejewski-Szmek [Tue, 3 Mar 2026 09:00:29 +0000 (10:00 +0100)] 
basic/stdio-util: introduce asprintf_safe

asprintf is nice to use, but the _documented_ error return convention is
unclear:
> If  memory  allocation  wasn't possible, or some other error occurs,
> these functions will return -1, and the contents of strp are undefined.

What exactly "undefined" means is up for debate: if it was really
undefined, the caller wouldn't be able to meaningfully clean up, because
they wouldn't know if strp is a valid pointer. So far we interpreted
"undefined" — in some parts of the code base — as "either NULL or a
valid pointer that needs to be freed", and — in other parts of the
codebase — as "always NULL". I checked glibc and musl, and they both
uncoditionally set the output pointer to NULL on failure.

There is also no information _why_ asprintf failed. It could be an
allocation error or format string error. But we just don't have this
information.

Let's add a wrapper that either returns a good string or a NULL pointer.
Since there's just one failure result, we don't need a separate return
value and an output argument and can simplify callers.

5 weeks agobasic/alloc-util: make realloc0 non-inline
Zbigniew Jędrzejewski-Szmek [Tue, 3 Mar 2026 08:55:09 +0000 (09:55 +0100)] 
basic/alloc-util: make realloc0 non-inline

It's actually only used in one place in libsystemd and moving it even makes
libsystemd smaller (in a non-optimized build):

$ ls -l build/libsystemd.so.0.43.0*
-rwxr-xr-x 1 zbyszek zbyszek 5763336 Mar  3 09:54 build/libsystemd.so.0.43.0-old
-rwxr-xr-x 1 zbyszek zbyszek 5763216 Mar  3 09:54 build/libsystemd.so.0.43.0

Also, move the definitions in the .h file so that similar functions are
grouped together and then move the definitions around in the .c file so
that they are in the same order as in the header.

5 weeks agobasic/allow-util: make free_many non-inline
Zbigniew Jędrzejewski-Szmek [Tue, 3 Mar 2026 08:42:41 +0000 (09:42 +0100)] 
basic/allow-util: make free_many non-inline

Definition of free_many is moved to the .c file, no particular reason
for it to be inline and we can make the header file shorter.

5 weeks agoshared/format-table: use 'char*'-style in function signatures
Zbigniew Jędrzejewski-Szmek [Mon, 23 Feb 2026 09:49:27 +0000 (10:49 +0100)] 
shared/format-table: use 'char*'-style in function signatures

5 weeks agoshared: fix segfault when processing matchHostname field
Frantisek Sumsal [Fri, 6 Mar 2026 15:09:35 +0000 (16:09 +0100)] 
shared: fix segfault when processing matchHostname field

Fix a typo which causes a segfault when processing a user record
with matchHostname when it's an array instead of a simple string:

$ echo '{"userName":"crashhostarray","perMachine":[{"matchHostname":["host1","host2"],"locked":false}]}' | userdbctl -F -
Segmentation fault         (core dumped)

$ coredumpctl info
...
       Message: Process 1172301 (userdbctl) of user 1000 dumped core.

                Module libz.so.1 from rpm zlib-ng-2.3.3-1.fc43.x86_64
                Module libcrypto.so.3 from rpm openssl-3.5.4-2.fc43.x86_64
                Stack trace of thread 1172301:
                #0  0x00007fded7b3a656 __strcmp_evex (libc.so.6 + 0x159656)
                #1  0x00007fded7e95397 per_machine_hostname_match (libsystemd-shared-260.so + 0x295397)
                #2  0x00007fded7e955b5 per_machine_match (libsystemd-shared-260.so + 0x2955b5)
                #3  0x00007fded7e957c6 dispatch_per_machine (libsystemd-shared-260.so + 0x2957c6)
                #4  0x00007fded7e96c97 user_record_load (libsystemd-shared-260.so + 0x296c97)
                #5  0x000000000040572d display_user (/home/fsumsal/repos/@systemd/systemd/build/userdbctl + 0x572d)
                #6  0x00007fded7ea9727 dispatch_verb (libsystemd-shared-260.so + 0x2a9727)
                #7  0x000000000041077c run (/home/fsumsal/repos/@systemd/systemd/build/userdbctl + 0x1077c)
                #8  0x00000000004107ce main (/home/fsumsal/repos/@systemd/systemd/build/userdbctl + 0x107ce)
                #9  0x00007fded79e45b5 __libc_start_call_main (libc.so.6 + 0x35b5)
                #10 0x00007fded79e4668 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x3668)
                #11 0x00000000004038d5 _start (/home/fsumsal/repos/@systemd/systemd/build/userdbctl + 0x38d5)
                ELF object binary architecture: AMD x86-64

5 weeks agotest: drop some extraneous whitespaces
Frantisek Sumsal [Fri, 6 Mar 2026 15:09:21 +0000 (16:09 +0100)] 
test: drop some extraneous whitespaces

5 weeks agoci: Fix missing parentheses in claude review workflow
Daan De Meyer [Fri, 6 Mar 2026 14:29:40 +0000 (15:29 +0100)] 
ci: Fix missing parentheses in claude review workflow

5 weeks agoci: React to issue_comment in claude review workflow
Daan De Meyer [Fri, 6 Mar 2026 14:25:53 +0000 (15:25 +0100)] 
ci: React to issue_comment in claude review workflow

issue_comment is the trigger that fires on regular pull request comments,
so we have to trigger the review workflow on that as well.

5 weeks agoTwo claude fixes/improvements (#40971)
Daan De Meyer [Fri, 6 Mar 2026 14:18:26 +0000 (15:18 +0100)] 
Two claude fixes/improvements (#40971)

5 weeks agoci: Make claude action review PRs only and fix the instructions 40971/head
Daan De Meyer [Fri, 6 Mar 2026 14:06:36 +0000 (15:06 +0100)] 
ci: Make claude action review PRs only and fix the instructions

Turns out the claude code action has issues reviewing PRs from forks
(https://github.com/anthropics/claude-code-action/issues/939). Let's
reuse the approach from https://github.com/pzmarzly/demo--claude-bot-reviews
instead (which I've explicitly asked permission for to reuse).

Unlike the linked demo, we still insist on a comment by a maintainer
before claude reviews the PR.

5 weeks agosd-varlink: pin error message while we invoke a reply callback
Lennart Poettering [Fri, 6 Mar 2026 10:39:28 +0000 (11:39 +0100)] 
sd-varlink: pin error message while we invoke a reply callback

Let's make sure the parameters/error pointers into the message remain
valid as long as the reply callback is running, even if the reply
otherwise resets the pending message.

5 weeks agomkosi/opensuse: fix package name systemd-network -> systemd-networkd
Antonio Alvarez Feijoo [Fri, 6 Mar 2026 07:45:36 +0000 (08:45 +0100)] 
mkosi/opensuse: fix package name systemd-network -> systemd-networkd

```
'systemd-network' not found in package names. Trying capabilities.
```

Follow-up for 00f7afebb4d5bc0832ae3483c751aa803d1df99c

5 weeks agoagent: Minimize the amount of instructions in AGENTS.md
Daan De Meyer [Fri, 6 Mar 2026 09:17:01 +0000 (10:17 +0100)] 
agent: Minimize the amount of instructions in AGENTS.md

Let's only keep instructions for stuff that we've seen the AI
mess up in practice rather than having a bunch of AI generated
text that it can figure out for itself these days (given it was
trained on systemd's source code in the first place).

Also add a rule to use git worktrees and check out PRs locally when
reviewing them, since I've seen it mess that up in practice.

5 weeks agoci: Add claude code github action (#40966)
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 08:06:58 +0000 (09:06 +0100)] 
ci: Add claude code github action (#40966)

This will allow maintainers to mention claude in comments on issues and
prs to do stuff like review something or try to reproduce a bug or other
stuff. Let's give it a try and see whether we like it or not.

5 weeks agoMove AI instructions to AGENTS.md 40966/head
Daan De Meyer [Fri, 6 Mar 2026 07:54:33 +0000 (08:54 +0100)] 
Move AI instructions to AGENTS.md

This seems to be what all the tools are standardizing on, except
claude (https://github.com/anthropics/claude-code/issues/6235) so
add a symlink from CLAUDE.md to AGENTS.md for now until they support
it as well.

I also had claude extend the instructions a bit.

Co-developed-by: Claude <claude@anthropic.com>
5 weeks agoman: add tags for the next few versions
Luca Boccassi [Fri, 6 Mar 2026 00:25:10 +0000 (00:25 +0000)] 
man: add tags for the next few versions

5 weeks agoTranslations update from Fedora Weblate (#40968)
Luca Boccassi [Fri, 6 Mar 2026 00:29:03 +0000 (00:29 +0000)] 
Translations update from Fedora Weblate (#40968)

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)

5 weeks agopo: Translated using Weblate (Portuguese) 40968/head
Américo Monteiro [Thu, 5 Mar 2026 22:10:06 +0000 (22:10 +0000)] 
po: Translated using Weblate (Portuguese)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pt/
Translation: systemd/main

5 weeks agopo: Translated using Weblate (Italian)
Salvatore Cocuzza [Thu, 5 Mar 2026 22:10:05 +0000 (22:10 +0000)] 
po: Translated using Weblate (Italian)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Salvatore Cocuzza <info@salvatorecocuzza.it>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/it/
Translation: systemd/main

5 weeks agozsh: fixup some recent zsh completers
Ronan Pigott [Thu, 5 Mar 2026 22:42:30 +0000 (15:42 -0700)] 
zsh: fixup some recent zsh completers

These two completers are written in a stacked _arguments style, and some
generic options are valid before or after the verb. If the toplevel
_arguments is permitted to match options after the verb, it will halt
completion prematurely, so stop toplevel matching after the verb.

This corrects the following error:

$ userdbctl --output=class user <TAB> # completes users
$ userdbctl user --output=class <TAB> # completes nothing

5 weeks agopo: update Japanese translation
Yu Watanabe [Thu, 5 Mar 2026 22:06:59 +0000 (07:06 +0900)] 
po: update Japanese translation

5 weeks agoci: Add claude code github action
Daan De Meyer [Thu, 5 Mar 2026 20:39:14 +0000 (21:39 +0100)] 
ci: Add claude code github action

This will allow maintainers to mention claude in comments on issues
and prs to do stuff like review something or try to reproduce a bug
or other stuff. Let's give it a try and see whether we like it or
not.

5 weeks agopo: Update translation files
Hosted Weblate [Thu, 5 Mar 2026 19:43:40 +0000 (19:43 +0000)] 
po: Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/
Translation: systemd/main

5 weeks agonetwork: slightly reword polkit message
Yu Watanabe [Thu, 5 Mar 2026 18:45:28 +0000 (03:45 +0900)] 
network: slightly reword polkit message

5 weeks agotree-wide: suppress misc-use-internal-linkage warnings
Yu Watanabe [Wed, 4 Mar 2026 21:48:25 +0000 (06:48 +0900)] 
tree-wide: suppress misc-use-internal-linkage warnings

Suppress warnings like the following from clang tidy:
```
../src/boot/addon.c:11:19: error: function 'efi_main' can be made static to enforce internal linkage [misc-use-internal-linkage,-warnings-as-errors]
   11 | EFIAPI EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *system_table);
      |                   ^
```

Some warnings are suppressed simply by setting comments to ignore the warning,
some are by making global variables static, or include a suitable header.

5 weeks agocore/varlink-unit: distinguish PIDREF_AUTOMATIC from unset
Mike Yuan [Thu, 5 Mar 2026 16:13:15 +0000 (17:13 +0100)] 
core/varlink-unit: distinguish PIDREF_AUTOMATIC from unset

Follow-up for ab73333c43aeec919fadf60b22e5cee7c379cdf2

Methods that take numeric pid values use 0 to denote the peer,
hence let's log about 0 on PIDREF_AUTOMATIC, -1 if truly unset.

5 weeks agoboot/pe: remove unneeded parens
Mike Yuan [Thu, 5 Mar 2026 17:51:48 +0000 (18:51 +0100)] 
boot/pe: remove unneeded parens

Follow-up for f8ed94ea9915d67af47954b48d6a9a4d755b6d8e

5 weeks agolibcrypt: also try to dlopen libcrypt.so.1.1
Luca Boccassi [Thu, 5 Mar 2026 17:19:19 +0000 (17:19 +0000)] 
libcrypt: also try to dlopen libcrypt.so.1.1

On top of libcrypt.so.2 and libcrypt.so.1, also try libcrypt.so.1.1
as a third fallback. This is used on debian alpha, and it was
reported that it is intended to ship like that, with a different
SONAME than other architectures:

https://packages.debian.org/sid/alpha/libcrypt1/filelist

5 weeks agopcrlock: Record predictions at start of component range
Fergus Dall [Sun, 30 Nov 2025 05:38:49 +0000 (16:08 +1030)] 
pcrlock: Record predictions at start of component range

Currently pcrlock won't predict PCR values that would be present at the start
of the requested location range (unless there are no events for that PCR in the
location range). This means predictions for the default range 760:940, which is
intended to start just after entering the initrd, are not actually possible to
fulfill until after the initrd is exited (or possibly even later, depending on
what other events are recorded).

Fix this by recording predictions immediately prior to processing components
after the start point.

Fixes #39946

5 weeks agopo: update Japanese translations
Yu Watanabe [Thu, 5 Mar 2026 18:10:21 +0000 (03:10 +0900)] 
po: update Japanese translations

5 weeks agogitignore: ignore new default mkosi tools directories
Yu Watanabe [Wed, 4 Mar 2026 20:17:04 +0000 (05:17 +0900)] 
gitignore: ignore new default mkosi tools directories

The default place has been changed since
https://github.com/systemd/mkosi/commit/e9abfab744340dd2f608b589a9252a3e53b071c3

5 weeks agopath-util: drop unused paths_check_timestamp()
Mike Yuan [Thu, 5 Mar 2026 15:40:54 +0000 (16:40 +0100)] 
path-util: drop unused paths_check_timestamp()

5 weeks agoboot: Make missing CHID DTB match a debug message instead of an error
Hans de Goede [Thu, 5 Mar 2026 13:20:06 +0000 (14:20 +0100)] 
boot: Make missing CHID DTB match a debug message instead of an error

With distributions like Ubuntu and Fedora using systemd-stub to auto load
DTB's on Windows on ARM laptops, the CHID DTB match failing is expected
when that same UKI is instead booted on an ARM SystemReady system where
no DTB is necessary.

In the ARM SystemReady case showing a big red error message is undesirable
and leads to confused users and bug-reports. Lower the message to debug
level when the status is EFI_NOT_FOUND to avoid these false positive error
messages.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=2444759
5 weeks agotree-wide: various Coccinelle-suggested tweaks and related fixes (#40950)
Mike Yuan [Thu, 5 Mar 2026 16:07:39 +0000 (17:07 +0100)] 
tree-wide: various Coccinelle-suggested tweaks and related fixes (#40950)

5 weeks agocore: cleanup unit's dropin directories from global cache
Michal Sekletar [Wed, 25 Feb 2026 18:45:55 +0000 (19:45 +0100)] 
core: cleanup unit's dropin directories from global cache

When user creates dropin files via API (e.g. systemctl set-property ...)
we put the dropin directory path into unit_path_cache. Drop those
directories from the cache in unit_free() and prevent memory leak.

Follow-up for fce94c5c563b8f6ede2b8f7f283d2d2faff4e062.

5 weeks agoupdate TODO
Lennart Poettering [Thu, 5 Mar 2026 15:34:16 +0000 (16:34 +0100)] 
update TODO

5 weeks agoupdate TODO
Lennart Poettering [Thu, 5 Mar 2026 14:44:34 +0000 (15:44 +0100)] 
update TODO

5 weeks agoupdate TODO
Lennart Poettering [Thu, 5 Mar 2026 13:28:14 +0000 (14:28 +0100)] 
update TODO

5 weeks agocore: drop unused errno from debug message 40950/head
Frantisek Sumsal [Wed, 4 Mar 2026 19:56:30 +0000 (20:56 +0100)] 
core: drop unused errno from debug message

And properly guard unset parameters.

5 weeks agotree-wide: various fixlets suggested by Coccinelle
Frantisek Sumsal [Wed, 4 Mar 2026 18:03:54 +0000 (19:03 +0100)] 
tree-wide: various fixlets suggested by Coccinelle

5 weeks agotree-wide: use typed SD_JSON_BUILD_PAIR_* macros more
Frantisek Sumsal [Wed, 4 Mar 2026 17:57:41 +0000 (18:57 +0100)] 
tree-wide: use typed SD_JSON_BUILD_PAIR_* macros more

5 weeks agococcinelle: work around a bug in zlib.h parsing
Frantisek Sumsal [Wed, 4 Mar 2026 18:38:37 +0000 (19:38 +0100)] 
coccinelle: work around a bug in zlib.h parsing

Currently, parsing zlib.h on Fedora (and possibly others) causes spatch
to fail with an assertion. Let's work around that by defining two extra
macros in our Coccinelle parsing hacks.

5 weeks agococcinelle: simplify the SD_JSON_BUILD_PAIR_* transformations
Frantisek Sumsal [Wed, 4 Mar 2026 18:17:42 +0000 (19:17 +0100)] 
coccinelle: simplify the SD_JSON_BUILD_PAIR_* transformations

And also disable them on test-json.c, since there we use the macros
intentionally in a "non-optimal" way to actually test them.

5 weeks agococcinelle: update the list of excluded directories
Frantisek Sumsal [Wed, 4 Mar 2026 18:37:18 +0000 (19:37 +0100)] 
coccinelle: update the list of excluded directories

  - src/boot/efi/ was moved to src/boot/ in 97318131fd06a5bc35454da81dcbbc84f16d9940
  - src/basic/include/linux/ was moved to src/include/uapi/linux/ in
    1a60b97524d8408e5f059b09ae316987c698e671

5 weeks agococcinelle: ignore our own BPF programs
Frantisek Sumsal [Wed, 4 Mar 2026 18:04:26 +0000 (19:04 +0100)] 
coccinelle: ignore our own BPF programs

Since they don't have access to systemd code, so we can't use our custom
functions/macros in them anyway.

5 weeks agoman: clarify requirements around creds null sealing
Luca Boccassi [Tue, 3 Mar 2026 18:18:53 +0000 (18:18 +0000)] 
man: clarify requirements around creds null sealing

5 weeks agomachine-varlink: reference the right struct in VARLINK_DISPATCH_MACHINE_LOOKUP_FIELDS
Mike Yuan [Thu, 5 Mar 2026 00:33:20 +0000 (01:33 +0100)] 
machine-varlink: reference the right struct in VARLINK_DISPATCH_MACHINE_LOOKUP_FIELDS

This practically shouldn't matter, as the layout for name
and pidref fields are identical for all the structs. But
let's get things right.