]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
27 hours agoci: add build coverage for riscv64 42431/head
Luca Boccassi [Fri, 29 May 2026 17:17:25 +0000 (18:17 +0100)] 
ci: add build coverage for riscv64

This is already a primary architecture in Ubuntu, and more distributions
are adding support for it. It's too slow for emulation, but we can at
least verify that compilation works.

Use the arm worker, for two reasons:

- it is already set up with ports.ubuntu.com so we don't have to muck
  with apt sources manually
- it is used a lot less than the x86 worker

27 hours agocore: avoid false maybe-uninitialized warning
Luca Boccassi [Fri, 29 May 2026 18:06:44 +0000 (19:06 +0100)] 
core: avoid false maybe-uninitialized warning

2026-05-29T18:00:43.7496388Z ../src/core/dynamic-user.c: In function ‘dynamic_user_realize’:
2026-05-29T18:00:43.7497098Z ../src/core/dynamic-user.c:436:29: error: ‘new_uid’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:00:43.7497758Z   436 |                         num = new_uid;
2026-05-29T18:00:43.7498026Z       |                         ~~~~^~~~~~~~~
2026-05-29T18:00:43.7498465Z ../src/core/dynamic-user.c:361:23: note: ‘new_uid’ was declared here
2026-05-29T18:00:43.7498802Z   361 |                 uid_t new_uid;
2026-05-29T18:00:43.7499039Z       |                       ^~~~~~~
2026-05-29T18:00:43.7499315Z In file included from ../src/core/dynamic-user.c:23:
2026-05-29T18:00:43.7499651Z In function ‘dynamic_user_push’,
2026-05-29T18:00:43.7500063Z     inlined from ‘dynamic_user_realize’ at ../src/core/dynamic-user.c:453:13:
2026-05-29T18:00:43.7501021Z ../src/basic/socket-util.h:131:63: error: ‘new_uid_lock_fd’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:00:43.7501897Z   131 | #define send_one_fd_iov(transport_fd, fd, iov, iovlen, flags) send_one_fd_iov_sa(transport_fd, fd, iov, iovlen, NULL, 0, flags)
2026-05-29T18:00:43.7502530Z       |                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-05-29T18:00:43.7503145Z ../src/core/dynamic-user.c:320:16: note: in expansion of macro ‘send_one_fd_iov’
2026-05-29T18:00:43.7503647Z   320 |         return send_one_fd_iov(d->storage_socket[1], lock_fd, &iov, 1, MSG_DONTWAIT);
2026-05-29T18:00:43.7504027Z       |                ^~~~~~~~~~~~~~~
2026-05-29T18:00:43.7504397Z ../src/core/dynamic-user.c: In function ‘dynamic_user_realize’:
2026-05-29T18:00:43.7504888Z ../src/core/dynamic-user.c:360:21: note: ‘new_uid_lock_fd’ was declared here
2026-05-29T18:00:43.7505256Z   360 |                 int new_uid_lock_fd;
2026-05-29T18:00:43.7505511Z       |                     ^~~~~~~~~~~~~~~
2026-05-29T18:00:43.7505882Z ../src/core/dynamic-user.c: In function ‘dynamic_user_current’:
2026-05-29T18:00:43.7506461Z ../src/core/dynamic-user.c:468:15: error: ‘uid’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:00:43.7506895Z   468 |         uid_t uid;
2026-05-29T18:00:43.7507096Z       |               ^~~

2026-05-29T18:26:14.2420944Z In function ‘dynamic_user_push’,
2026-05-29T18:26:14.2421730Z     inlined from ‘dynamic_user_realize’ at ../src/core/dynamic-user.c:453:13:
2026-05-29T18:26:14.2435240Z ../src/basic/socket-util.h:131:63: error: ‘new_uid_lock_fd’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:26:14.2440497Z   131 | #define send_one_fd_iov(transport_fd, fd, iov, iovlen, flags) send_one_fd_iov_sa(transport_fd, fd, iov, iovlen, NULL, 0, flags)
2026-05-29T18:26:14.2442511Z       |                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-05-29T18:26:14.2445002Z ../src/core/dynamic-user.c:320:16: note: in expansion of macro ‘send_one_fd_iov’
2026-05-29T18:26:14.2445727Z   320 |         return send_one_fd_iov(d->storage_socket[1], lock_fd, &iov, 1, MSG_DONTWAIT);
2026-05-29T18:26:14.2448345Z       |                ^~~~~~~~~~~~~~~
2026-05-29T18:26:14.2448952Z ../src/core/dynamic-user.c: In function ‘dynamic_user_realize’:
2026-05-29T18:26:14.2451781Z ../src/core/dynamic-user.c:360:21: note: ‘new_uid_lock_fd’ was declared here
2026-05-29T18:26:14.2452287Z   360 |                 int new_uid_lock_fd;
2026-05-29T18:26:14.2454430Z       |                     ^~~~~~~~~~~~~~~
2026-05-29T18:26:14.2454960Z ../src/core/dynamic-user.c: In function ‘dynamic_user_current’:
2026-05-29T18:26:14.2457632Z ../src/core/dynamic-user.c:468:15: error: ‘uid’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:26:14.2458207Z   468 |         uid_t uid;
2026-05-29T18:26:14.2460327Z       |               ^~~

27 hours agoci: update claude review workflow to opus 4.8
Daan De Meyer [Tue, 2 Jun 2026 11:51:05 +0000 (11:51 +0000)] 
ci: update claude review workflow to opus 4.8

Bump the Bedrock model ID to us.anthropic.claude-opus-4-8 (the -v1 suffix
was dropped after 4.6), pin ANTHROPIC_DEFAULT_OPUS_MODEL so the review
subagents resolve to 4.8 as well, and switch the effort level from max to
xhigh.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
27 hours agoci: add build/unit-test coverage for armv7 (#42386)
Luca Boccassi [Tue, 2 Jun 2026 12:15:50 +0000 (13:15 +0100)] 
ci: add build/unit-test coverage for armv7 (#42386)

arm64 hosts support running armv7 (armhf) binaries, so we can
cross compile and run the unit tests without performance issues.

armv7 (armhf) is a primary architecture on Ubuntu, so build
regressions block new version updates, and adding coverage
helps to avoid introducing regressions.

31 hours agoman: Document additional environment.d syntax
Max Chernoff [Tue, 2 Jun 2026 04:49:04 +0000 (22:49 -0600)] 
man: Document additional environment.d syntax

31 hours agoresolved: process networkd events before RTNL updates
elysia090 [Mon, 1 Jun 2026 03:29:58 +0000 (12:29 +0900)] 
resolved: process networkd events before RTNL updates

resolved watches networkd state changes and RTNL updates separately. RTNL is
currently processed at SD_EVENT_PRIORITY_IMPORTANT, while networkd state
changes are processed later at SD_EVENT_PRIORITY_IMPORTANT+5.

If both are pending, an RTM_NEWADDR update can make a link relevant for
LLMNR/mDNS scope allocation before resolved has consumed the corresponding
networkd state update. This can let scope recalculation use stale per-link
settings until the networkd event is processed.

Run the networkd monitor source before RTNL by using
SD_EVENT_PRIORITY_IMPORTANT-5. This lets resolved consume current link settings
before reacting to RTNL address updates in the same event loop iteration.

Fixes #42079
Co-developed-by: OpenAI Codex <noreply@openai.com>
34 hours agolibarchive-util: update comment for new library symbols
Yu Watanabe [Tue, 2 Jun 2026 05:58:06 +0000 (14:58 +0900)] 
libarchive-util: update comment for new library symbols

archive_entry_gid_is_set() and archive_entry_uid_is_set() are added by
https://github.com/libarchive/libarchive/commit/8acb738db6bc7087a5e7cdd328bbfb6e673e5bd8 (3.7.3).

archive_entry_hardlink_is_set() is added by
https://github.com/libarchive/libarchive/commit/07206cd172c73cbe3b6b3d64e00f427fa0befa54 (3.7.5).

34 hours agobuild(deps): bump the actions group with 3 updates
dependabot[bot] [Tue, 2 Jun 2026 04:43:56 +0000 (04:43 +0000)] 
build(deps): bump the actions group with 3 updates

Bumps the actions group with 3 updates: [github/codeql-action](https://github.com/github/codeql-action), [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) and [redhat-plumbers-in-action/gather-pull-request-metadata](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata).

Updates `github/codeql-action` from 4.35.4 to 4.36.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/68bde559dea0fdcac2102bfdf6230c5f70eb485e...7211b7c8077ea37d8641b6271f6a365a22a5fbfa)

Updates `aws-actions/configure-aws-credentials` from 6.1.1 to 6.1.2
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/d979d5b3a71173a29b74b5b88418bfda9437d885...acca2b1b2070338fb9fd1ca27ecee81d687e58e5)

Updates `redhat-plumbers-in-action/gather-pull-request-metadata` from 1.9.1 to 1.10.0
- [Release notes](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata/releases)
- [Commits](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata/compare/62fc85c7acd15db62a0bdf007c8dbeda86eaf3b6...ecc2e46fe4f0b2e9a7b236d6012bc9f74af318d0)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: 6.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: redhat-plumbers-in-action/gather-pull-request-metadata
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
38 hours agoEmit a hint when called with the legacy telinit syntax (#42404)
Yu Watanabe [Tue, 2 Jun 2026 02:02:09 +0000 (11:02 +0900)] 
Emit a hint when called with the legacy telinit syntax (#42404)

47 hours agosystemd-tmpfiles: remove age-based cleanup of X11 socket directories (#42358)
Luca Boccassi [Mon, 1 Jun 2026 16:38:28 +0000 (17:38 +0100)] 
systemd-tmpfiles: remove age-based cleanup of X11 socket directories (#42358)

Unexpected cleanup of live X11 socket files was reported in #35182,
suggesting an underlying issue with the `!` boot safety switch for
tmpfiles.

Regardless of that bug, time-based cleanup of X11 sockets is likely to
be unwanted behaviour as systems often stay up for extended periods of
time, and cleanup of these directories based on age alone is liable to
cause issues at runtime for user sessions.

47 hours agonspawn: parse PrivateUsers=managed in settings
George Tsiamasiotis [Mon, 1 Jun 2026 10:02:32 +0000 (13:02 +0300)] 
nspawn: parse PrivateUsers=managed in settings

2 days agopo: Translated using Weblate (Romanian)
Petru Rebeja [Mon, 1 Jun 2026 12:21:21 +0000 (12:21 +0000)] 
po: Translated using Weblate (Romanian)

Currently translated at 70.1% (200 of 285 strings)

po: Translated using Weblate (Romanian)

Currently translated at 64.9% (185 of 285 strings)

Co-authored-by: Petru Rebeja <petru@rebeja.eu>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ro/
Translation: systemd/main

2 days agodocs: say that the github form is preferred for security vulnerabilities
Zbigniew Jędrzejewski-Szmek [Mon, 1 Jun 2026 12:20:47 +0000 (14:20 +0200)] 
docs: say that the github form is preferred for security vulnerabilities

2 days agoupdate TODO
Lennart Poettering [Mon, 1 Jun 2026 12:19:33 +0000 (14:19 +0200)] 
update TODO

2 days agohostname-util: don't allow machine tags to begin/end with '-' or '.'
Lennart Poettering [Mon, 1 Jun 2026 08:35:31 +0000 (10:35 +0200)] 
hostname-util: don't allow machine tags to begin/end with '-' or '.'

2 days agoTranslations update from Fedora Weblate (#42417)
Luca Boccassi [Mon, 1 Jun 2026 11:15:52 +0000 (12:15 +0100)] 
Translations update from Fedora Weblate (#42417)

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)

2 days agohwdb: Add Native Instruments Traktor MX2
djantti [Sat, 30 May 2026 12:17:10 +0000 (15:17 +0300)] 
hwdb: Add Native Instruments Traktor MX2

This adds the following device to AV production hwdb:

 - ID 17cc:2420 Native Instruments Traktor MX2

Support for this new HID-based DJ controller was also recently
merged to Mixxx.

2 days agopo: Translated using Weblate (Turkish) 42417/head
Oğuz Ersen [Mon, 1 Jun 2026 10:40:14 +0000 (10:40 +0000)] 
po: Translated using Weblate (Turkish)

Currently translated at 100.0% (285 of 285 strings)

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

2 days agopo: Translated using Weblate (Georgian)
Temuri Doghonadze [Mon, 1 Jun 2026 10:40:14 +0000 (10:40 +0000)] 
po: Translated using Weblate (Georgian)

Currently translated at 100.0% (285 of 285 strings)

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

2 days agopo: Translated using Weblate (Russian)
Andrei Stepanov [Mon, 1 Jun 2026 10:40:13 +0000 (10:40 +0000)] 
po: Translated using Weblate (Russian)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Andrei Stepanov <adem4ik@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ru/
Translation: systemd/main

2 days agopo: Translated using Weblate (Ukrainian)
Yuri Chornoivan [Mon, 1 Jun 2026 10:40:13 +0000 (10:40 +0000)] 
po: Translated using Weblate (Ukrainian)

Currently translated at 100.0% (285 of 285 strings)

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

2 days agopo: Translated using Weblate (Chinese (Simplified) (zh_CN))
Poesty Li [Mon, 1 Jun 2026 10:40:12 +0000 (10:40 +0000)] 
po: Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Poesty Li <poesty7450@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/zh_CN/
Translation: systemd/main

2 days agoman: drop -b/s/S/2/4 from the docs 42404/head
Zbigniew Jędrzejewski-Szmek [Mon, 1 Jun 2026 10:21:12 +0000 (12:21 +0200)] 
man: drop -b/s/S/2/4 from the docs

We retain 1/3/5.

2 days agomanager: if called with compat telinit interface, tell users to update
Zbigniew Jędrzejewski-Szmek [Sun, 31 May 2026 10:29:01 +0000 (12:29 +0200)] 
manager: if called with compat telinit interface, tell users to update

In https://bugzilla.redhat.com/show_bug.cgi?id=2479961 a user
reported that they are confused that 'init 6' and such commands
do not work anymore. We removed support for the whole interface,
but it's likely that such commands persist in various scripts
and finger memories. Let's give a helpful hint that this inteface
is gone and what to use instead.

2 days agoman/systemd: reword description of 2/3/4/5
Zbigniew Jędrzejewski-Szmek [Sat, 30 May 2026 19:44:58 +0000 (21:44 +0200)] 
man/systemd: reword description of 2/3/4/5

We shouldn't say that that they boot into "a … legacy target", because
they boot into the standard targets. Those names are just aliases now.
(And also the user is not required to know what SysV even is, so it
shouldn't be used in the main explanation.)

2 days agodocs: specifically mention that braces in if blocks do not need to be symmetric
Luca Boccassi [Mon, 1 Jun 2026 09:09:43 +0000 (10:09 +0100)] 
docs: specifically mention that braces in if blocks do not need to be symmetric

The claude bot keeps getting this wrong again and again:

  Claude: nit: systemd coding style requires braces on both branches of
               an if/else when one branch uses them. Here the if branch
               is a single statement without braces but the else branch
               uses braces

Specifically mention this is not the case in the coding style doc
to hopefully make it stop hallucinating this rule

2 days agotest: make TEST-60-MOUNT-RATELIMIT more robust
Luca Boccassi [Sun, 31 May 2026 16:38:40 +0000 (17:38 +0100)] 
test: make TEST-60-MOUNT-RATELIMIT more robust

TEST-60-MOUNT-RATELIMIT sometimes fails as it cannot see the 'left rate limit'
message in the journal. Tests relying on specific log messages are often flaky,
as the journal is lossy.
Change the test case to check for the desired outcome instead, as that also
catches regressions, without being over reliant on the journal.

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

2 days agojournalctl: don't assert on MESSAGE field without "MESSAGE=" prefix
Luca Boccassi [Sun, 31 May 2026 11:44:14 +0000 (12:44 +0100)] 
journalctl: don't assert on MESSAGE field without "MESSAGE=" prefix

sd_journal_get_data() can return a MESSAGE data object whose payload does
not start with "MESSAGE=", e.g. when the journal file is corrupted. Instead
of aborting the whole process, log and skip over such an entry like we do for
other bad/missing fields.

[   87.287390] post.sh[1619]: + journalctl -q -o short-monotonic --grep 'didn'\''t pass validation'
[   87.287844] post.sh[1620]: + grep -v test-varlink-idl
[   87.325676] post.sh[1619]: Assertion 'message = startswith(message, "MESSAGE=")' failed at src/journal/journalctl-show.c:261, function show(). Aborting.

 #0  0x00007fb47b49a29c n/a (libc.so.6 + 0x9a29c)
 #1  0x00007fb47b43e7d0 raise (libc.so.6 + 0x3e7d0)
 #2  0x00007fb47b425681 abort (libc.so.6 + 0x25681)
 #3  0x00007fb47b8a1ace log_assert_failed (libsystemd-shared-261~rc2.so + 0xa1ace)
 #4  0x000055f8e1ef9ddb show (journalctl + 0xcddb)
 #5  0x000055f8e1efa6ee action_show (journalctl + 0xd6ee)
 #6  0x000055f8e1ef3c20 run (journalctl + 0x6c20)
 #7  0x00007fb47b427741 n/a (libc.so.6 + 0x27741)
 #8  0x00007fb47b427879 __libc_start_main (libc.so.6 + 0x27879)
 #9  0x000055f8e1ef4915 _start (journalctl + 0x7915)

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days agoTranslations update from Fedora Weblate (#42403)
Luca Boccassi [Sun, 31 May 2026 10:55:15 +0000 (11:55 +0100)] 
Translations update from Fedora Weblate (#42403)

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)

3 days agopo: Translated using Weblate (Spanish) 42403/head
Fco. Javier F. Serrador [Sun, 31 May 2026 10:01:59 +0000 (10:01 +0000)] 
po: Translated using Weblate (Spanish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Fco. Javier F. Serrador <fserrador@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/es/
Translation: systemd/main

3 days agopo: Translated using Weblate (Arabic)
joo es [Sun, 31 May 2026 10:01:58 +0000 (10:01 +0000)] 
po: Translated using Weblate (Arabic)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: joo es <jonnyse@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ar/
Translation: systemd/main

3 days agopo: Translated using Weblate (Portuguese (Brazil))
Rafael Fontenelle [Sun, 31 May 2026 10:01:58 +0000 (10:01 +0000)] 
po: Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pt_BR/
Translation: systemd/main

3 days agopo: Translated using Weblate (Swedish)
Anders Jonsson [Sun, 31 May 2026 10:01:57 +0000 (10:01 +0000)] 
po: Translated using Weblate (Swedish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Anders Jonsson <anders.jonsson@norsjovallen.se>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sv/
Translation: systemd/main

3 days agopo: Translated using Weblate (Swedish)
Luna Jernberg [Sun, 31 May 2026 10:01:56 +0000 (10:01 +0000)] 
po: Translated using Weblate (Swedish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sv/
Translation: systemd/main

3 days agopo: Translated using Weblate (German)
Ettore Atalan [Sun, 31 May 2026 10:01:55 +0000 (10:01 +0000)] 
po: Translated using Weblate (German)

Currently translated at 99.2% (283 of 285 strings)

Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/de/
Translation: systemd/main

3 days agopo: Translated using Weblate (Polish)
Marek Adamski [Sun, 31 May 2026 10:01:54 +0000 (10:01 +0000)] 
po: Translated using Weblate (Polish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Marek Adamski <maradam@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pl/
Translation: systemd/main

3 days agopo: Translated using Weblate (Korean)
김인수 [Sun, 31 May 2026 10:01:53 +0000 (10:01 +0000)] 
po: Translated using Weblate (Korean)

Currently translated at 100.0% (285 of 285 strings)

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

3 days agopo: Translated using Weblate (Ukrainian)
Yuri Chornoivan [Sun, 31 May 2026 10:01:53 +0000 (10:01 +0000)] 
po: Translated using Weblate (Ukrainian)

Currently translated at 97.1% (277 of 285 strings)

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

3 days agopo: Translated using Weblate (Portuguese)
Américo Monteiro [Sun, 31 May 2026 10:01:51 +0000 (10:01 +0000)] 
po: Translated using Weblate (Portuguese)

Currently translated at 100.0% (285 of 285 strings)

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

3 days agotmpfiles: exclude x11 lock files from time-based cleanup 42358/head
Zbigniew Jędrzejewski-Szmek [Sun, 31 May 2026 09:39:07 +0000 (11:39 +0200)] 
tmpfiles: exclude x11 lock files from time-based cleanup

We need a removal rule for systems where /tmp is not on tmpfs,
so that if they crash, stale sockets will be removed during boot.
OTOH, at runtime, those lock files must never be removed.
But since the 'r!' rule uses '!', it only applies during boot. With
the rule inactive, the usual time-based cleanup for /tmp/ was also
applied to those files, causing them to be removed after 10 days.

Fixes #35182.

3 days agotmpfiles: remove boot-only restriction from x11 directory rules
Zbigniew Jędrzejewski-Szmek [Sun, 31 May 2026 09:44:21 +0000 (11:44 +0200)] 
tmpfiles: remove boot-only restriction from x11 directory rules

4a1f92c704aad80e9fde3f3d1678a5e5e944ae47 added '!' through confusion:
the goal was probably to exclude those directories from cleanup at
runtime. But as discussed below, that exclusion is not needed. In fact,
we want the rule to be active during runtime, so that if the directory
were removed or wasn't created earlier for whatever reason, it'd be
created during one of those later runs too. This just makes the system
more robust.

Those directories are used for sockets, and tmpfiles will not remove
live sockets. So it is fine to run the cleanup on those directories,
it doesn't have any effect in normal circumstances. The only case where
the cleanup would matter would be if the service was running, crashed
without removing the socket, and the system would remain up for more
than 10 days after that. This is not a particularly likely scenario, but
OTOH, we can imaging that somebody tried to run Xorg, it didn't work,
and they switched to Wayland. Or their DE crashes every once in a while,
leaving some state behind. Keeping the cleanup in place seems OK, it
makes the system slightly more robust in fringe scenarios.

In fact, this cleanup will work better if we reduce the delay from
10 days to something small. systemd-tmpfiles-clean.timer runs once
per day, so the cleanup will not be very fast anyway. So use '1h' as
an arbitrary small value. (I think '0' would be risky, because it's
possible for the socket to be set up through a script where it's
created first and the service is connected to it, so it is momentarily
"not live". I think people used to do this. Not sure if that happens
anymore, but let's be safe.)

Co-authored-by: Jarl Gullberg <jarl.gullberg@visar-systems.com>
3 days agohwdb: add Infinix Y3 Max YL-613 keys
sykikxo [Sun, 31 May 2026 07:55:23 +0000 (13:25 +0530)] 
hwdb: add Infinix Y3 Max YL-613 keys

Map the Power Boost key (top-right corner, scancode 0x64) to KEY_PROG1.
Map the Touchpad Toggle key (Fn+F8, scancode 0x76) to KEY_F21.

Verified working via evtest:

Event: type 4 (EV_MSC), code 4 (MSC_SCAN), value 64
Event: type 1 (EV_KEY), code 148 (KEY_PROG1), value 1

Event: type 4 (EV_MSC), code 4 (MSC_SCAN), value 76
Event: type 1 (EV_KEY), code 206 (KEY_F21), value 1

DMI: svnInfinix:*pnY3Max:*
AT keyboard scancodes: 0x64, 0x76 (set 2)

3 days agohwdb: add Infinix Y3 Max YL-613 touchpad properties
sykikxo [Sun, 31 May 2026 05:41:42 +0000 (11:11 +0530)] 
hwdb: add Infinix Y3 Max YL-613 touchpad properties

4 days agopo: Update translation files
Hosted Weblate [Sat, 30 May 2026 09:39:14 +0000 (09:39 +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

4 days agolibfido2: enable translations for Plymouth strings (#42389)
Luca Boccassi [Sat, 30 May 2026 09:38:46 +0000 (10:38 +0100)] 
libfido2: enable translations for Plymouth strings (#42389)

- This synchronize the state for existing stuff.
- Enable translations for Plymouth interaction strings.
- Translate them in French as an example.

Fixes #42384.

4 days agopo/fr: translate FIDO2-related strings for Plymouth 42389/head
Raito Bezarius [Fri, 29 May 2026 22:17:05 +0000 (00:17 +0200)] 
po/fr: translate FIDO2-related strings for Plymouth

Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
4 days agopo: regenerate PO files
Raito Bezarius [Fri, 29 May 2026 22:13:20 +0000 (00:13 +0200)] 
po: regenerate PO files

Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
4 days agopo: regenerate POT files
Raito Bezarius [Fri, 29 May 2026 22:13:00 +0000 (00:13 +0200)] 
po: regenerate POT files

Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
4 days agoshared/libfido2: translate Plymouth interaction strings
Raito Bezarius [Fri, 29 May 2026 21:31:38 +0000 (23:31 +0200)] 
shared/libfido2: translate Plymouth interaction strings

Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
4 days agopo: regenerate translations
Raito Bezarius [Fri, 29 May 2026 21:54:20 +0000 (23:54 +0200)] 
po: regenerate translations

This changes some lines and add translations related to resolved
policies and sysupdate policies.

Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
4 days agoci: add build/unit-test coverage for armv7 42386/head
Luca Boccassi [Fri, 29 May 2026 12:42:24 +0000 (13:42 +0100)] 
ci: add build/unit-test coverage for armv7

arm64 hosts support running armv7 (armhf) binaries, so we can
cross compile and run the unit tests without performance issues.

armv7 (armhf) is a primary architecture on Ubuntu, so build
regressions block new version updates, and adding coverage
helps to avoid introducing regressions.

4 days agotest: skip test-execute and ukify addon test when cross-compiling
Luca Boccassi [Fri, 29 May 2026 13:13:20 +0000 (14:13 +0100)] 
test: skip test-execute and ukify addon test when cross-compiling

These tests run native tools on foreign ELF files, so they fail,
just skip them when cross-compiling

4 days agotest: avoid false maybe-uninitialized warning
Luca Boccassi [Fri, 29 May 2026 16:08:28 +0000 (17:08 +0100)] 
test: avoid false maybe-uninitialized warning

2026-05-29T16:05:02.6627742Z In file included from ../src/basic/../fundamental/assert-util.h:8,
2026-05-29T16:05:02.6628349Z                  from ../src/basic/assert-util.h:4,
2026-05-29T16:05:02.6628722Z                  from ../src/basic/basic-forward.h:17,
2026-05-29T16:05:02.6629044Z                  from ../src/libsystemd/sd-common/sd-forward.h:6,
2026-05-29T16:05:02.6629361Z                  from ../src/shared/shared-forward.h:6,
2026-05-29T16:05:02.6629648Z                  from ../src/shared/crypto-util.h:4,
2026-05-29T16:05:02.6631153Z                  from ../src/test/test-crypto-util.c:3:
2026-05-29T16:05:02.6634148Z ../src/test/test-crypto-util.c: In function ‘test_digest_size’:
2026-05-29T16:05:02.6634986Z ../src/basic/../fundamental/macro.h:95:41: error: ‘size’ is used uninitialized [-Werror=uninitialized]
2026-05-29T16:05:02.6635470Z    95 | #define _unlikely_(x) (__builtin_expect(!!(x), 0))
2026-05-29T16:05:02.6635764Z       |                                         ^~~~~
2026-05-29T16:05:02.6636287Z ../src/basic/../fundamental/assert-util.h:59:21: note: in expansion of macro ‘_unlikely_’
2026-05-29T16:05:02.6636963Z    59 |                 if (_unlikely_(!(expr)))                                \
2026-05-29T16:05:02.6637344Z       |                     ^~~~~~~~~~
2026-05-29T16:05:02.6637864Z ../src/basic/../fundamental/assert-util.h:65:25: note: in expansion of macro ‘assert_message_se’
2026-05-29T16:05:02.6638339Z    65 | #define assert_se(expr) assert_message_se(expr, #expr)
2026-05-29T16:05:02.6638642Z       |                         ^~~~~~~~~~~~~~~~~
2026-05-29T16:05:02.6639066Z ../src/test/test-crypto-util.c:136:17: note: in expansion of macro ‘assert_se’
2026-05-29T16:05:02.6639450Z   136 |                 assert_se(size == t->size);
2026-05-29T16:05:02.6639704Z       |                 ^~~~~~~~~
2026-05-29T16:05:02.6640063Z ../src/test/test-crypto-util.c:132:16: note: ‘size’ declared here
2026-05-29T16:05:02.6640590Z   132 |         size_t size;
2026-05-29T16:05:02.6640794Z       |                ^~~~

4 days agocore: fix maybe-uninitialized warning
Luca Boccassi [Fri, 29 May 2026 13:16:34 +0000 (14:16 +0100)] 
core: fix maybe-uninitialized warning

2026-05-29T13:14:20.8990848Z arm-linux-gnueabihf-gcc -Isrc/core/libsystemd-core-261.a.p -Isrc/core -I../src/core -Isrc/shared -I../src/shared -Isrc/bpf -I../src/bpf -I../src/libsystemd/sd-bus -I../src/libsystemd/sd-common -I../src/libsystemd/sd-device -I../src/libsystemd/sd-event -I../src/libsystemd/sd-future -I../src/libsystemd/sd-hwdb -I../src/libsystemd/sd-id128 -Isrc/libsystemd/sd-journal -I../src/libsystemd/sd-journal -I../src/libsystemd/sd-json -I../src/libsystemd/sd-netlink -I../src/libsystemd/sd-network -I../src/libsystemd/sd-path -I../src/libsystemd/sd-resolve -I../src/libsystemd/sd-varlink -Isrc/basic -I../src/basic -Isrc/fundamental -I../src/fundamental -Isrc/systemd -I../src/systemd -Isrc/version -I../src/version -I/usr/include/uuid -I/usr/include/json-c -I/usr/include/blkid -I/usr/include/libmount -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=gnu17 -O0 -Wno-missing-field-initializers -Wno-unused-parameter -Wno-nonnull-compare -Warray-bounds -Warray-bounds=2 -Wdate-time -Wendif-labels -Werror=bool-compare -Werror=discarded-qualifiers -Werror=format=2 -Werror=format-signedness -Werror=implicit-function-declaration -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=missing-declarations -Werror=missing-prototypes -Werror=overflow -Werror=override-init -Werror=pointer-sign -Werror=return-type -Werror=sequence-point -Werror=shift-count-overflow -Werror=shift-overflow=2 -Werror=strict-flex-arrays -Werror=undef -Wfloat-equal -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-aliasing=2 -Wstrict-prototypes -Wsuggest-attribute=noreturn -Wunused-function -Wwrite-strings -Wzero-length-bounds -fdiagnostics-show-option -fexcess-precision=standard -fno-common -fstack-protector -fstack-protector-strong -fstrict-flex-arrays=3 -fno-math-errno --param=ssp-buffer-size=4 -Wno-unused-result -Werror=shadow -O2 -pipe -g -feliminate-unused-debug-types -fPIC -fno-strict-aliasing -fstrict-flex-arrays=1 -fvisibility=hidden -fno-omit-frame-pointer -include config.h -isystem../src/include/glibc -isystem../src/include/override -isystemsrc/include/override -isystem../src/include/uapi -fvisibility=default -MD -MQ src/core/libsystemd-core-261.a.p/unit.c.o -MF src/core/libsystemd-core-261.a.p/unit.c.o.d -o src/core/libsystemd-core-261.a.p/unit.c.o -c ../src/core/unit.c
2026-05-29T13:14:20.9001764Z ../src/core/unit.c: In function ‘unit_start_on_termination_deps’:
2026-05-29T13:14:20.9002500Z ../src/core/unit.c:2367:21: error: ‘job_mode’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T13:14:20.9004088Z  2367 |                 r = manager_add_job(u->manager, JOB_START, other, job_mode, &error, /* ret= */ NULL);
2026-05-29T13:14:20.9004619Z       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-05-29T13:14:20.9005147Z ../src/core/unit.c:2341:17: note: ‘job_mode’ was declared here
2026-05-29T13:14:20.9005458Z  2341 |         JobMode job_mode;
2026-05-29T13:14:20.9005673Z       |                 ^~~~~~~~
2026-05-29T13:14:20.9005898Z cc1: all warnings being treated as errors

Follow-up for 9faeb2d024540ac4b94dedb00a13606ec262cc31

4 days agosysupdate: fix bogus return code
Luca Boccassi [Fri, 29 May 2026 13:47:41 +0000 (14:47 +0100)] 
sysupdate: fix bogus return code

2026-05-29T13:44:48.7158429Z In file included from ../src/basic/../fundamental/assert-util.h:8,
2026-05-29T13:44:48.7159224Z                  from ../src/basic/assert-util.h:4,
2026-05-29T13:44:48.7159990Z                  from ../src/basic/basic-forward.h:17,
2026-05-29T13:44:48.7160337Z                  from ../src/basic/alloc-util.h:6,
2026-05-29T13:44:48.7161366Z                  from ../src/sysupdate/sysupdate-transfer.c:9:
2026-05-29T13:44:48.7169020Z ../src/sysupdate/sysupdate-transfer.c: In function ‘transfer_acquire_instance’:
2026-05-29T13:44:48.7169957Z ../src/basic/../fundamental/macro.h:190:37: error: ‘r’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T13:44:48.7170483Z   190 |                 default:            __builtin_llabs((long long) (a)))
2026-05-29T13:44:48.7171001Z       |                                     ^~~~~~~~~~~~~~~
2026-05-29T13:44:48.7171435Z ../src/basic/log.h:32:46: note: in expansion of macro ‘ABS’
2026-05-29T13:44:48.7171800Z    32 | #define ERRNO_VALUE(val)                    (ABS(val) & ~(1 << 30))
2026-05-29T13:44:48.7172134Z       |                                              ^~~
2026-05-29T13:44:48.7172528Z ../src/basic/log.h:188:28: note: in expansion of macro ‘ERRNO_VALUE’
2026-05-29T13:44:48.7173003Z   188 |                         : -ERRNO_VALUE(_e);                             \
2026-05-29T13:44:48.7173317Z       |                            ^~~~~~~~~~~
2026-05-29T13:44:48.7173779Z ../src/basic/log.h:208:17: note: in expansion of macro ‘log_full_errno_zerook’
2026-05-29T13:44:48.7174204Z   208 |                 log_full_errno_zerook(level, (int)_error, __VA_ARGS__); \
2026-05-29T13:44:48.7174528Z       |                 ^~~~~~~~~~~~~~~~~~~~~
2026-05-29T13:44:48.7174917Z ../src/basic/log.h:233:41: note: in expansion of macro ‘log_full_errno’
2026-05-29T13:44:48.7175401Z   233 | #define log_error_errno(error, ...)     log_full_errno(LOG_ERR,     error, __VA_ARGS__)
2026-05-29T13:44:48.7175799Z       |                                         ^~~~~~~~~~~~~~
2026-05-29T13:44:48.7176318Z ../src/sysupdate/sysupdate-transfer.c:1346:32: note: in expansion of macro ‘log_error_errno’
2026-05-29T13:44:48.7176931Z  1346 |                         return log_error_errno(r, "SHA256 checksum not known for download '%s', refusing.", i->path);
2026-05-29T13:44:48.7177514Z       |                                ^~~~~~~~~~~~~~~
2026-05-29T13:44:48.7178157Z ../src/sysupdate/sysupdate-transfer.c:1270:13: note: ‘r’ was declared here
2026-05-29T13:44:48.7178501Z  1270 |         int r;

Follow-up for 43cc7a3ef4f6a89946e7ffd6a3112a0c1740b1ef

4 days agohwdb: reject overlong fnmatch key instead of passing NULL to fnmatch()
Luca Boccassi [Fri, 29 May 2026 11:37:31 +0000 (12:37 +0100)] 
hwdb: reject overlong fnmatch key instead of passing NULL to fnmatch()

When the accumulated trie key exceeds the fixed-size line buffer,
linebuf_get() returns NULL. trie_fnmatch_f() passed that NULL straight
into fnmatch() as the pattern, causing a SIGSEGV on a crafted hwdb.bin
(reachable now that recursion is capped rather than overflowing the
stack first). Treat the NULL like the other corruption checks and
return -EBADMSG.

Follow-up for 73fea38cf1344e08213bb10bfc1e1a98382aee78

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

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
5 days agossh-proxy: Default to root user
Daan De Meyer [Fri, 29 May 2026 07:16:33 +0000 (07:16 +0000)] 
ssh-proxy: Default to root user

When ssh-ing into a VM, you generally do not want to log
in as your user from the host. Let's default to the root
user unless a user is explicitly specified.

5 days agossh-generator: Make sure sshd can always read the authorized keys file
Daan De Meyer [Thu, 28 May 2026 09:26:05 +0000 (09:26 +0000)] 
ssh-generator: Make sure sshd can always read the authorized keys file

sshd reads AuthorizedKeysFile after dropping to the authenticating user's UID, so the
0400 credential file under %d/ is unreadable for non-root users. Materialize a 0444
copy in a RuntimeDirectory so the ephemeral key works for any user. */

5 days agounits: drop Before=sockets.target from networkd resolve hook
Yu Watanabe [Thu, 28 May 2026 16:12:29 +0000 (01:12 +0900)] 
units: drop Before=sockets.target from networkd resolve hook

Otherwise, it introduces cyclic dependencies:
```
systemd[1]: sockets.target: Found ordering cycle:
    systemd-networkd-resolve-hook.socket/start after network-pre.target/start after
    iptables.service/start after basic.target/start after sockets.target/start -
    after systemd-networkd-resolve-hook.socket
systemd[1]: sockets.target: Job systemd-networkd-resolve-hook.socket/start deleted
    to break ordering cycle starting with sockets.target/start
```

Follow-up for 37adb410a2b62716b666dbf8359edf8a6546ff94.
Fixes #42353.

5 days agonetwork: mention interface name in polkit details
Yu Watanabe [Thu, 28 May 2026 16:42:14 +0000 (01:42 +0900)] 
network: mention interface name in polkit details

Closes #42274.

5 days agope-binary: bound section data against file size, cap UKI zero-padding hash, validate...
jeffhuang [Wed, 27 May 2026 18:08:38 +0000 (18:08 +0000)] 
pe-binary: bound section data against file size, cap UKI zero-padding hash, validate optional header size

A hostile but structurally valid 382-byte PE32+ "EFI application" with a
single section whose VirtualSize is ~4 GiB and SizeOfRawData is 0 drives
uki_hash() into ~4.17 M iterations of SHA-256 over 1024 bytes of zeros
— wedging the parser for >10 s. Nine more slow-units share the same
shape. A separate MSAN finding from the new fuzzer (CIFuzz, memory
sanitizer) shows pe_load_headers() reading uninitialised heap memory
when SizeOfOptionalHeader is too small to actually contain
NumberOfRvaAndSizes.

Three tightenings in src/shared/pe-binary.c:

  1. In pe_load_sections, reject sections whose PointerToRawData +
     SizeOfRawData exceeds the actual file size. Raw section data must
     fit inside the file; this is the parser-wide invariant
     pe_hash / uki_hash / pe_read_section_data rely on.

  2. In uki_hash, cap the (VirtualSize - SizeOfRawData) zero-padding
     hash loop at 64 MiB. Real UKIs do not pad sections with tens of
     MiB of zero-equivalent data; anything above this cap is a
     malformed PE.

  3. In pe_load_headers, reject a PE whose SizeOfOptionalHeader is too
     small to cover up to NumberOfRvaAndSizes. Without this guard the
     subsequent size-mismatch check reads uninitialised optional-header
     bytes, caught by MSAN under CIFuzz.

Add the 382 B canonical reproducer (plus two structural siblings) and
the MSAN reproducer to test/fuzz/fuzz-pe-binary/. Also add a libFuzzer
harness in src/fuzz/fuzz-pe-binary.c and unit tests in
src/test/test-pe-binary.c that exercise each fix branch in isolation.
The 64 MiB hash boundary test is gated behind SYSTEMD_SLOW_TESTS so it
doesn't slow down emulated-arch CI.

This is a robustness fix, not a security fix: PE binaries consumed by
bootctl / systemd-stub / pcrlock / kernel-install / systemd-measure are
already trusted and signed at the consumer side, so the worst pre-fix
behaviour is wasted CPU on a UKI install / measure / inspect call.

Closes #42344.

Reported-by: AI-assisted libFuzzer campaign
Co-developed-by: Claude Opus 4.7 <noreply@anthropic.com>
6 days agoDowngrade warning about missing libseccomp
Zbigniew Jędrzejewski-Szmek [Thu, 28 May 2026 11:49:07 +0000 (13:49 +0200)] 
Downgrade warning about missing libseccomp

We currently log at warning level:
/usr/lib/systemd/system/systemd-udevd.service:56: System call bpf cannot be
  resolved as libseccomp is not available, ignoring: Operation not supported

In the initrd, or in minimal installations, not installing libseccomp is
reasonable, depending on various other choices. We shouldn't make fuss
about this.

C.f. https://bugzilla.redhat.com/show_bug.cgi?id=2463540.

6 days agoprofile.d: add instructions how to deactivate 80-systemd-osc-context.sh
Zbigniew Jędrzejewski-Szmek [Thu, 28 May 2026 10:45:23 +0000 (12:45 +0200)] 
profile.d: add instructions how to deactivate 80-systemd-osc-context.sh

This was requested in https://github.com/systemd/systemd/issues/42333.
Indeed, this integration is using three levels of systemd magick, so
doing this correctly is not obvious. Let's include specific instructions
to help people for whom this integration is causing problems.

6 days agofd-util: add wildcard_fd_is_valid() helper and use it tree-wide
Lennart Poettering [Thu, 28 May 2026 10:42:12 +0000 (12:42 +0200)] 
fd-util: add wildcard_fd_is_valid() helper and use it tree-wide

Many *at()-style helpers accept a directory fd that may be either a
regular, valid fd (>= 0) or one of the special AT_FDCWD/XAT_FDROOT
wildcard values, and open-code that check in their assertions. Add a
wildcard_fd_is_valid() helper for it and use it tree-wide.

6 days agonspawn: join network namespace before cloning user namespace
Malformed C [Wed, 27 May 2026 19:43:35 +0000 (22:43 +0300)] 
nspawn: join network namespace before cloning user namespace

When both --private-users and --network-namespace-path are
specified, systemd-nspawn fails to start with "Operation not
permitted" during the setns() call.

This occurs because of the following execution sequence:
1. The outer child calls raw_clone() with CLONE_NEWUSER to create
   the new user namespace.
2. The inner child is spawned inside this new user namespace.
3. The inner child then attempts to call setns() to join the
   external network namespace.

Because the inner child is already running inside
the restricted user namespace, the kernel rejects
the setns() call to join a network namespace owned by
a different (host/more privileged) user namespace.

Fix this by moving the setns() call to the outer child, executing it
just before the raw_clone() call. This ensures the network namespace
is joined while the process still has the necessary privileges, which
also aligns with the inner child's expectation that the network
namespace is already set up upon entry.

6 days agomeson: move simple test entries
Yu Watanabe [Thu, 28 May 2026 06:51:09 +0000 (15:51 +0900)] 
meson: move simple test entries

6 days agofuzz-hwdb: shorten name of reproducers
Yu Watanabe [Thu, 28 May 2026 06:34:57 +0000 (15:34 +0900)] 
fuzz-hwdb: shorten name of reproducers

The file name of the reproducer is used for test name, and the test name
is messed when the file name is too long.
Also, the mentioned issues are not regressions, but long standing bugs.

Follow-up for 73fea38cf1344e08213bb10bfc1e1a98382aee78.

6 days agotest: stop using PATH_TEST()/QMP_TEST() macro to make not confuse gcc/gcov/lcov ...
Daan De Meyer [Thu, 28 May 2026 07:33:22 +0000 (09:33 +0200)] 
test: stop using PATH_TEST()/QMP_TEST() macro to make not confuse gcc/gcov/lcov (#42338)

6 days agohwdb: bounds-check trie offsets against the mmap before dereferencing
jeffhuang [Wed, 27 May 2026 18:41:54 +0000 (18:41 +0000)] 
hwdb: bounds-check trie offsets against the mmap before dereferencing

Fixes a family of OOB reads in the trie walker where attacker-controlled
offsets are loaded from a (possibly hostile) hwdb.bin and added to
hwdb->map without first checking that the resulting pointer stays inside
the mapping. Crash sites:

  - trie_fnmatch_f               sd-hwdb.c:187   (#42340)
  - trie_search_f                sd-hwdb.c:233   (#42341)
  - trie_children_cmp_f /bsearch sd-hwdb.c:94    (#42342)
  - hwdb_add_property            sd-hwdb.c:121   (#42343)
  - trie_node_from_off (UBSAN)   sd-hwdb.c:83
  - trie_fnmatch_f stack overflow on cyclic children (CIFuzz finding)

Commit b45a897edc ("hwdb: reject out-of-bounds fnmatch prefixes")
plugged the first site only at the prefix_off-content level, but the
crash on the read of node->prefix_off itself still happens when node is
already OOB. This is the structural fix: a single hwdb_at() helper
validates that [off, off + size) lies inside the mapping, and
trie_node_from_off() / trie_string() return NULL on OOB; every caller
treats the result as nullable and surfaces -EBADMSG.

trie_fnmatch_f() additionally caps its recursion depth at 2048; without
the cap a corrupt trie whose child offsets form a cycle (or just a deep
linear chain) drives the parser into stack-overflow rather than
returning -EBADMSG (caught by CIFuzz address sanitizer on this branch).

Additions:

  - A fuzz-hwdb libFuzzer harness that drives sd_hwdb_new_from_path,
    sd_hwdb_get, sd_hwdb_seek, and sd_hwdb_enumerate on attacker bytes.
  - Five hand-crafted unit tests in test-sd-hwdb.c (one per crash
    bucket, plus the cyclic-trie recursion case) that build a malformed
    in-memory hwdb.bin and assert -EBADMSG rather than SIGSEGV /
    stack-overflow.
  - Regression corpus files under test/fuzz/fuzz-hwdb/ pinning each
    fixed bucket, including the CIFuzz stack-overflow reproducer.

Closes #42340.
Closes #42341.
Closes #42342.
Closes #42343.

Reported-by: AI-assisted libFuzzer campaign
Co-developed-by: Claude Opus 4.7 <noreply@anthropic.com>
6 days agotest-oomd: drop racy last_had_mem_reclaim assertion
Luca Boccassi [Wed, 27 May 2026 22:32:02 +0000 (23:32 +0100)] 
test-oomd: drop racy last_had_mem_reclaim assertion

test_oomd_cgroup_context_acquire_and_insert sets c1->pgscan = UINT64_MAX
and c1->last_had_mem_reclaim = 888 before re-inserting via
oomd_insert_cgroup_context(h1, h2, cgroup), then asserts that c2 carries
over last_had_mem_reclaim == 888.

The assumption was that, because c1->pgscan (which becomes c2->last_pgscan)
is UINT64_MAX and is therefore strictly greater than the freshly-acquired
c2->pgscan, oomd_pgscan_rate() in oomd_insert_cgroup_context() would
return 0 and leave last_had_mem_reclaim untouched. But the function
treats last_pgscan > pgscan as "cgroup was recreated", resets last_pgscan
to 0, and returns pgscan - 0 == pgscan. So when the kernel records any
non-zero pgscan on the live cgroup of the test unit, the rate is > 0 and
last_had_mem_reclaim is overwritten with now(CLOCK_MONOTONIC).

From src/oom/oomd-util.c:

    uint64_t oomd_pgscan_rate(const OomdCGroupContext *c) {
            [...]
            last_pgscan = c->last_pgscan;
            if (c->last_pgscan > c->pgscan) {
                    log_debug("Last pgscan %"PRIu64" greater than current pgscan %"PRIu64" for %s. Using last pgscan of zero.",
                                    c->last_pgscan, c->pgscan, c->path);
                    last_pgscan = 0;
            }
            return c->pgscan - last_pgscan;
    }

    int oomd_insert_cgroup_context(Hashmap *old_h, Hashmap *new_h, const char *path) {
            [...]
            if (oomd_pgscan_rate(curr_ctx) > 0)
                    curr_ctx->last_had_mem_reclaim = now(CLOCK_MONOTONIC);

Under sanitizers the test can be slow enough that the kernel scans the
test service cgroup at least once between the two acquisitions, which
triggers the failure:

    [ 1898.159455] test-oomd-util[2606]: /* test_oomd_cgroup_context_acquire_and_insert */
    [ 1898.161247] test-oomd-util[2606]: Last pgscan 18446744073709551615 greater than current pgscan 2 for /system.slice/test-oomd-util.service. Using last pgscan of zero.
    [ 1898.161330] test-oomd-util[2606]: src/oom/test-oomd-util.c:322: Assertion failed: Expected "c2->last_had_mem_reclaim == 888u", but 1898161250 != 888

(1898161250 matches the monotonic timestamp of the log line, confirming
that last_had_mem_reclaim was overwritten with now(CLOCK_MONOTONIC).)

The propagation of last_had_mem_reclaim is already covered
deterministically by TEST(oomd_update_cgroup_contexts_between_hashmaps),
which builds OomdCGroupContext structs directly with matching pgscan
values so that oomd_pgscan_rate() returns exactly 0. So just drop the
racy setup and assertion here.

Follow-up for df637ede7b4e1d0faf8d620d626a0af230712a9e

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

Co-developed-by: Claude Opus 4.7 <noreply@anthropic.com>
6 days agoresolve: validate short RSA DNSKEY blobs
Luca Boccassi [Wed, 27 May 2026 22:16:08 +0000 (23:16 +0100)] 
resolve: validate short RSA DNSKEY blobs

Reject malformed RSA DNSKEY data before reading the extended exponent
header, and add a regression test.

Co-developed-by: GitHub Copilot (GPT 5.5) <copilot@github.com>
6 days agotest-pressure: set timeout to make not wait forever
Yu Watanabe [Wed, 27 May 2026 15:33:35 +0000 (00:33 +0900)] 
test-pressure: set timeout to make not wait forever

If this runs on a slow or busy machine, then we may not get enough
pressure to trigger the event sources. In such case, the test does not
finish. It is problematic when the test is _not_ run with 'meson test',
e.g. debian/ubuntu CIs.

Let's introduce a timeout for each event loop, and skip test cases
gracefully.

6 days agohwdb/keyboard: fix match for for X+ Piccolo, again
Christian Hesse [Wed, 27 May 2026 18:40:06 +0000 (20:40 +0200)] 
hwdb/keyboard: fix match for for X+ Piccolo, again

I got infos from product_name:

$ cat /sys/class/dmi/id/product_name
X+ Piccolo

Turns out the modalias has a little difference:

$ cat /sys/class/dmi/id/modalias
dmi:bvnAmericanMegatrendsInternational,LLC.:bvr5.27:bd09/10/2025:br5.27:svnX-Plus.tech:pnX+Piccolo:pvrDefaultstring:rvnX-Plus:rnXPLUS-SERIES81x-DEV:rvrDefaultstring:cvnDefaultstring:ct10:cvrDefaultstring:skuSeries81x:pfaPiccoloSeries:

So let's remove the extra space. Crossing fingers... 🤞

Fixes: 033be1a41b5f75a3f2c8f4fe212512062bc4d5f3
6 days agoudev: preserve rule-set properties on failed network interface rename
Chris Patterson [Tue, 26 May 2026 15:04:28 +0000 (15:04 +0000)] 
udev: preserve rule-set properties on failed network interface rename

When rename_netif() failed for a reason other than -EBUSY (e.g. -EEXIST
because NAME= conflicts with an existing interface), the revert path
rewrote the on-disk udev database from dev_db_clone (the pre-rules
snapshot) and then returned the error. The caller in
udev_event_execute_rules() bailed out before reaching the final
device_update_db(dev), so every property the rules had attached to the
device during this event (including ENV{}= assignments made alongside
the failing NAME=) was silently dropped from /run/udev/data/.

Persist 'dev' from inside the revert block, after its syspath and
INTERFACE have been restored. The cloned snapshot is still written
first to clear ID_RENAMING/ID_PROCESSING; the subsequent dev write
keeps the rule-applied properties without resurrecting the new name.
Only persist when r < 0, since the -EBUSY path returns success and the
caller will write the DB itself.

Add a TEST-17-UDEV.rename-netif regression test that pre-creates the
rename target, then triggers rules that set three ENV{}= properties
(one on a rule line before the failing NAME=, one on the same line as
NAME=, and one on a rule line after) and asserts all three are still
visible via udevadm info on the source interface. The neighbouring
test_netif_renaming_conflict already exercises the same -EEXIST revert
path but only checks the SYSTEMD_ALIAS broadcast, which is why this
regression went unnoticed.

Verified against unpatched origin/main (b4aff10ac0): the new test
fails, udevadm reports only kernel-supplied fields for the source
interface, and /run/udev/data/n<ifindex> is 0 bytes. With this patch
applied all three properties survive regardless of whether they were
set before, on, or after the failing NAME= rule line.

Downstream impact (NetworkManager managing an interface that rules had
marked NM_UNMANAGED=1): https://redhat.atlassian.net/browse/RHEL-178481

Fixes: https://github.com/systemd/systemd/issues/42331
Co-developed-by: Claude Opus 4.7 <noreply@anthropic.com>
6 days agoRevert "test: ignore lcov errors due to inconsistency" 42338/head
Yu Watanabe [Wed, 27 May 2026 14:50:28 +0000 (23:50 +0900)] 
Revert "test: ignore lcov errors due to inconsistency"

This reverts commit 62e17483aaeac42d33e0a6a45f08f3e26fc92e82.

The failure should be caused by PATH_TEST() macro introduced by
fc7a32df38dd4797ce7266df6ece6bd9b9842783 and QMP_TEST() macro by
742733440fc5e5f30624e3aee27c76d311809261, and now they are dropped.
The workaround should not be necessary anymore.

6 days agotest-qmp-client: drop QMP_TEST() macro
Yu Watanabe [Wed, 27 May 2026 16:41:48 +0000 (01:41 +0900)] 
test-qmp-client: drop QMP_TEST() macro

Similar to the previous commit for test-path.
The macro confuses gcc/gcov/lcov:
```
lcov: ERROR: lcov: ERROR: (inconsistent) mismatched end line for test_qmp_client_basic_body at
/home/runner/work/systemd/systemd/src/test/test-qmp-client.c:204:
204 -> 224 while capturing from build/mkosi.builddir/arch~rolling~x86-64/test-qmp-client.p/src_test_test-qmp-client.c.gcno
```

The macro itself is not bad, but does not reduce lines so much.
Let's stop using the macro.

6 days agoimport: don't assert on missing signature file
Frantisek Sumsal [Wed, 27 May 2026 13:03:26 +0000 (15:03 +0200)] 
import: don't assert on missing signature file

Since ac9edf991142c1597c8d86431ee9bd50c21bce41 even the per-file
verification style uses detached signatures instead of inline ones.
That commit dropped the inline verification fallback, but it didn't
update the raw_pull_job_on_finished()/tar_pull_job_on_finished()
callbacks, which caused the per-file verification to silently fall
through the signature check and eventually hit the now unconditional
assert in pull_verify():

~# importctl pull-tar -mN https://distfiles.gentoo.org/releases/amd64/autobuilds/20260426T153103Z/stage3-amd64-systemd-20260426T153103Z.tar.xz
...
Acquired 1.2G for https://distfiles.gentoo.org/releases/amd64/autobuilds/20260426T153103Z/stage3-amd64-systemd-20260426T153103Z.tar.xz.
Download of https://distfiles.gentoo.org/releases/amd64/autobuilds/20260426T153103Z/stage3-amd64-systemd-20260426T153103Z.tar.xz complete.
SHA256 checksum of https://distfiles.gentoo.org/releases/amd64/autobuilds/20260426T153103Z/stage3-amd64-systemd-20260426T153103Z.tar.xz is valid.
Assertion 'signature_job->state == PULL_JOB_DONE' failed at src/import/pull-common.c:588, function pull_verify(). Aborting.

To fix this, let's drop the now outdated guards from the callbacks,
given that both per-file and per-directory verification uses detached
signatures. Also, drop some dead code along the way, given we no longer
need to even determine the verification style anymore.

With this, the reproducer above now shows a proper error:

...
Acquired 1.2G for https://distfiles.gentoo.org/releases/amd64/autobuilds/20260426T153103Z/stage3-amd64-systemd-20260426T153103Z.tar.xz.
Download of https://distfiles.gentoo.org/releases/amd64/autobuilds/20260426T153103Z/stage3-amd64-systemd-20260426T153103Z.tar.xz complete.
Failed to retrieve signature file, cannot verify. (Try --verify=no?)

Also, both --verify=checksum/--verify=no keep working as expected.

Follow-up for ac9edf991142c1597c8d86431ee9bd50c21bce41.
Resolves: #41895

6 days agotest-path: coding style cleanups
Yu Watanabe [Wed, 27 May 2026 14:43:24 +0000 (23:43 +0900)] 
test-path: coding style cleanups

6 days agotest-path: drop PATH_TEST() macro
Yu Watanabe [Wed, 27 May 2026 14:29:31 +0000 (23:29 +0900)] 
test-path: drop PATH_TEST() macro

The macro was introduced by fc7a32df38dd4797ce7266df6ece6bd9b9842783,
but unfortunately gcc/gcov/lcov are confused by the macro:
```
lcov: ERROR: lcov: ERROR: (inconsistent) mismatched end line for test_path_exists_body at
/home/runner/work/systemd/systemd/src/test/test-path.c:158:
158 -> 185 while capturing from build/mkosi.builddir/arch~rolling~x86-64/test-path.p/src_test_test-path.c.gcno
(use "lcov --ignore-errors inconsistent ..." to bypass this error)
```

The macro deos nothing spurious, hence it should be a bug in gcc.
But, the macro just reduces the lines for calling setup_test(), and
does not simplify test cases so much.
Let's call it in each test cases, and stop using the macro.

7 days agoTranslations update from Fedora Weblate (#42334)
Frantisek Sumsal [Wed, 27 May 2026 14:07:23 +0000 (16:07 +0200)] 
Translations update from Fedora Weblate (#42334)

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 (Slovenian) 42334/head
Martin Srebotnjak [Wed, 27 May 2026 13:01:42 +0000 (13:01 +0000)] 
po: Translated using Weblate (Slovenian)

Currently translated at 100.0% (270 of 270 strings)

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

7 days agopo: Translated using Weblate (Estonian)
Priit Jõerüüt [Wed, 27 May 2026 13:01:41 +0000 (13:01 +0000)] 
po: Translated using Weblate (Estonian)

Currently translated at 90.0% (243 of 270 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

7 days agopo: Translated using Weblate (Estonian)
Henri Aunin [Wed, 27 May 2026 13:01:41 +0000 (13:01 +0000)] 
po: Translated using Weblate (Estonian)

Currently translated at 90.0% (243 of 270 strings)

po: Translated using Weblate (Estonian)

Currently translated at 90.0% (243 of 270 strings)

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

7 days agodhcp: update test and header cleanup (#42256)
Zbigniew Jędrzejewski-Szmek [Wed, 27 May 2026 12:23:34 +0000 (14:23 +0200)] 
dhcp: update test and header cleanup (#42256)

7 days agoman: clarify that ExecCondition= skip triggers SuccessAction=
Rocker Zhang [Fri, 15 May 2026 11:27:57 +0000 (19:27 +0800)] 
man: clarify that ExecCondition= skip triggers SuccessAction=

Unit-level Condition…= / Assert…= directives that fail prevent activation
entirely, so SuccessAction= / FailureAction= never fire. An ExecCondition=
skip in [Service] runs as part of the activation transition itself, so
the unit goes active → inactive and SuccessAction= is honored.

This asymmetry has tripped users up; document it explicitly in both
systemd.service(5) (ExecCondition= section) and systemd.unit(5)
(SuccessAction= / FailureAction= section) with cross-references.

Fixes: https://github.com/systemd/systemd/issues/42035
Co-developed-by: Claude Opus 4.7 <noreply@anthropic.com>
7 days agoshared/bus-polkit: fix punctuation
Zbigniew Jędrzejewski-Szmek [Wed, 27 May 2026 12:02:47 +0000 (14:02 +0200)] 
shared/bus-polkit: fix punctuation

7 days agoFix coverage CI job (#42322)
Luca Boccassi [Wed, 27 May 2026 10:47:21 +0000 (11:47 +0100)] 
Fix coverage CI job (#42322)

It has been failing for a few days:

```
lcov: ERROR: lcov: ERROR: (inconsistent) mismatched end line for test_path_exists_body at /home/runner/work/systemd/systemd/src/test/test-path.c:158: 158 -> 185 while capturing from build/mkosi.builddir/arch~rolling~x86-64/test-path.p/src_test_test-path.c.gcno
(use "lcov --ignore-errors inconsistent ..." to bypass this error)
```

7 days agomeson: fix building without logind (#42324)
nikstur [Tue, 26 May 2026 22:45:18 +0000 (00:45 +0200)] 
meson: fix building without logind (#42324)

Otherwise you cannot build systemd (e.g. just the libs) without logind.

Follow-up for 1f9fb6300b3294904e430ba78dd6c9a0fbf301fe

7 days agomeson: bump version to v261~rc2 v261-rc2
Luca Boccassi [Tue, 26 May 2026 20:54:42 +0000 (21:54 +0100)] 
meson: bump version to v261~rc2

7 days agoNEWS: finalize date
Luca Boccassi [Tue, 26 May 2026 20:52:59 +0000 (21:52 +0100)] 
NEWS: finalize date

7 days agoNEWS: update contributors list
Luca Boccassi [Tue, 26 May 2026 20:52:23 +0000 (21:52 +0100)] 
NEWS: update contributors list

7 days agotest: disable ManagedOOMMemoryPressure on /system.slice in TEST-55-OOMD
Luca Boccassi [Tue, 26 May 2026 19:15:45 +0000 (20:15 +0100)] 
test: disable ManagedOOMMemoryPressure on /system.slice in TEST-55-OOMD

The systemd-oomd-defaults rpm installed on Fedora/CentOS images via
mkosi/mkosi.conf.d/centos-fedora/mkosi.conf ships
/usr/lib/systemd/system/system.slice.d/10-oomd-per-slice-defaults.conf:

    [Slice]
    ManagedOOMMemoryPressure=kill
    ManagedOOMMemoryPressureLimit=80%

https://gitlab.com/redhat/centos-stream/rpms/systemd/-/blob/c10s/10-oomd-per-slice-defaults.conf

In a recent flaky CI run on centos-10, the following sequence was
recorded in test/journal/TEST-55-OOMD-1.journal:

    [   77.740597] systemd-oomd[659]: Memory pressure for /system.slice is 85.03% > 80.00% for > 2s with reclaim activity
    [   77.745326] TEST-55-OOMD.sh[1292]: + journalctl --sync
    [   77.749125] systemd-oomd[659]: Considered 19 cgroups for killing, top candidates were:
    [   77.749128] systemd-oomd[659]:         Path: /system.slice/systemd-journald.service
    [   77.749134] systemd-oomd[659]:                 Current Memory Usage: 55.5M
    [   77.749597] systemd-oomd[659]: oomd attempting to kill 407 with KILL
    [   77.749670] systemd-oomd[659]: Marked /system.slice/systemd-journald.service for killing due to memory pressure for /system.slice being 85.03% > 80.00% for > 2s with reclaim activity
    [   77.752252] systemd[1]: systemd-journald.service: systemd-oomd killed 1 process(es) in this unit.
    [   77.752293] systemd[1]: systemd-journald.service: Changed running -> stop-sigterm
    [  329.922401] systemd[1]: systemd-journald.service: Main process exited, code=killed, status=9/KILL

PID 1292 (the test script) never logged anything after the
`journalctl --sync` line at [77.745326], and the unit stayed in
stop-sigterm until [329.922401].

Override /system.slice to ManagedOOMMemoryPressure=auto in the test
setup so the test does not rely on whichever per-slice oomd defaults
the distro happens to ship.

Co-developed-by: Claude Opus 4.7 <noreply@anthropic.com>
7 days agotest: stop running coverage job on stable backports 42322/head
Luca Boccassi [Tue, 26 May 2026 19:44:21 +0000 (20:44 +0100)] 
test: stop running coverage job on stable backports

We don't run coverage on stable branches anyway, so it's just a waste of CI

7 days agotest: ignore lcov errors due to inconsistency
Luca Boccassi [Tue, 26 May 2026 19:23:25 +0000 (20:23 +0100)] 
test: ignore lcov errors due to inconsistency

lcov: ERROR: lcov: ERROR: (inconsistent) mismatched end line for test_path_exists_body at /home/runner/work/systemd/systemd/src/test/test-path.c:158: 158 -> 185 while capturing from build/mkosi.builddir/arch~rolling~x86-64/test-path.p/src_test_test-path.c.gcno
(use "lcov --ignore-errors inconsistent ..." to bypass this error)

7 days agomkosi: update mkosi ref to 3e15f6734a3455a008c3617f89a6c5010d5bb9bf
Luca Boccassi [Tue, 26 May 2026 18:44:47 +0000 (19:44 +0100)] 
mkosi: update mkosi ref to 3e15f6734a3455a008c3617f89a6c5010d5bb9bf

3e15f6734a nspawn: do not fail if --forward-journal is not available

7 days agoimds: suppress or downgrade log messages
Zbigniew Jędrzejewski-Szmek [Tue, 26 May 2026 17:31:21 +0000 (19:31 +0200)] 
imds: suppress or downgrade log messages

Other places that read credentials filer out ENXIO:
$ journalctl -b -u systemd-imds-early-network.service -o short-monotonic --no-hostname --no-pager -p warning
[    5.477675] systemd-imdsd[473]: Failed to read credential 'imds.vendor', ignoring: No such device or address
[    5.477687] systemd-imdsd[473]: Failed to read credential 'imds.vendor_token', ignoring: No such device or address
[    5.477693] systemd-imdsd[473]: Failed to read credential 'imds.refresh_header_name', ignoring: No such device or address
[    5.477699] systemd-imdsd[473]: Failed to read credential 'imds.data_url', ignoring: No such device or address
[    5.477704] systemd-imdsd[473]: Failed to read credential 'imds.data_url_suffix', ignoring: No such device or address
[    5.477710] systemd-imdsd[473]: Failed to read credential 'imds.token_header_name', ignoring: No such device or address
[    5.477714] systemd-imdsd[473]: Failed to read credential 'imds.extra_header', ignoring: No such device or address
[    5.477720] systemd-imdsd[473]: Failed to read credential 'imds.extra_header2', ignoring: No such device or address
[    5.477730] systemd-imdsd[473]: Failed to read credential 'imds.extra_header3', ignoring: No such device or address
[    5.477736] systemd-imdsd[473]: Failed to read credential 'imds.extra_header4', ignoring: No such device or address
[    5.477742] systemd-imdsd[473]: Failed to read credential 'imds.extra_header5', ignoring: No such device or address
[    5.477747] systemd-imdsd[473]: Failed to read credential 'imds.extra_header6', ignoring: No such device or address
[    5.477751] systemd-imdsd[473]: Failed to read credential 'imds.extra_header7', ignoring: No such device or address
[    5.477757] systemd-imdsd[473]: Failed to read credential 'imds.extra_header8', ignoring: No such device or address
[    5.477763] systemd-imdsd[473]: Failed to read credential 'imds.extra_header9', ignoring: No such device or address
[    5.477768] systemd-imdsd[473]: Failed to read credential 'imds.extra_header10', ignoring: No such device or address
[    5.477774] systemd-imdsd[473]: Failed to read credential 'imds.extra_header11', ignoring: No such device or address
[    5.477779] systemd-imdsd[473]: Failed to read credential 'imds.extra_header12', ignoring: No such device or address
[    5.477784] systemd-imdsd[473]: Failed to read credential 'imds.extra_header13', ignoring: No such device or address
[    5.477789] systemd-imdsd[473]: Failed to read credential 'imds.extra_header14', ignoring: No such device or address
[    5.477799] systemd-imdsd[473]: Failed to read credential 'imds.extra_header15', ignoring: No such device or address
[    5.477804] systemd-imdsd[473]: Failed to read credential 'imds.extra_header16', ignoring: No such device or address
[    5.477810] systemd-imdsd[473]: Failed to read credential 'imds.extra_header17', ignoring: No such device or address
[    5.477815] systemd-imdsd[473]: Failed to read credential 'imds.extra_header18', ignoring: No such device or address
[    5.477820] systemd-imdsd[473]: Failed to read credential 'imds.extra_header19', ignoring: No such device or address
[    5.477825] systemd-imdsd[473]: Failed to read credential 'imds.extra_header20', ignoring: No such device or address
[    5.477830] systemd-imdsd[473]: Failed to read credential 'imds.extra_header21', ignoring: No such device or address
[    5.477835] systemd-imdsd[473]: Failed to read credential 'imds.extra_header22', ignoring: No such device or address
[    5.477840] systemd-imdsd[473]: Failed to read credential 'imds.extra_header23', ignoring: No such device or address
[    5.477845] systemd-imdsd[473]: Failed to read credential 'imds.extra_header24', ignoring: No such device or address
[    5.477851] systemd-imdsd[473]: Failed to read credential 'imds.extra_header25', ignoring: No such device or address
[    5.477856] systemd-imdsd[473]: Failed to read credential 'imds.extra_header26', ignoring: No such device or address
[    5.477865] systemd-imdsd[473]: Failed to read credential 'imds.extra_header27', ignoring: No such device or address
[    5.477869] systemd-imdsd[473]: Failed to read credential 'imds.extra_header28', ignoring: No such device or address
[    5.477874] systemd-imdsd[473]: Failed to read credential 'imds.extra_header29', ignoring: No such device or address
[    5.477881] systemd-imdsd[473]: Failed to read credential 'imds.extra_header30', ignoring: No such device or address
[    5.477885] systemd-imdsd[473]: Failed to read credential 'imds.extra_header31', ignoring: No such device or address
[    5.477890] systemd-imdsd[473]: Failed to read credential 'imds.extra_header32', ignoring: No such device or address
[    5.477896] systemd-imdsd[473]: Failed to read credential 'imds.extra_header33', ignoring: No such device or address
[    5.477901] systemd-imdsd[473]: Failed to read credential 'imds.extra_header34', ignoring: No such device or address
[    5.477906] systemd-imdsd[473]: Failed to read credential 'imds.extra_header35', ignoring: No such device or address
[    5.477913] systemd-imdsd[473]: Failed to read credential 'imds.extra_header36', ignoring: No such device or address
[    5.477917] systemd-imdsd[473]: Failed to read credential 'imds.extra_header37', ignoring: No such device or address
[    5.477922] systemd-imdsd[473]: Failed to read credential 'imds.extra_header38', ignoring: No such device or address
[    5.477931] systemd-imdsd[473]: Failed to read credential 'imds.extra_header39', ignoring: No such device or address
[    5.477935] systemd-imdsd[473]: Failed to read credential 'imds.extra_header40', ignoring: No such device or address
[    5.477940] systemd-imdsd[473]: Failed to read credential 'imds.extra_header41', ignoring: No such device or address
[    5.477945] systemd-imdsd[473]: Failed to read credential 'imds.extra_header42', ignoring: No such device or address
[    5.477951] systemd-imdsd[473]: Failed to read credential 'imds.extra_header43', ignoring: No such device or address
[    5.477956] systemd-imdsd[473]: Failed to read credential 'imds.extra_header44', ignoring: No such device or address
[    5.477962] systemd-imdsd[473]: Failed to read credential 'imds.extra_header45', ignoring: No such device or address
[    5.477967] systemd-imdsd[473]: Failed to read credential 'imds.extra_header46', ignoring: No such device or address
[    5.477972] systemd-imdsd[473]: Failed to read credential 'imds.extra_header47', ignoring: No such device or address
[    5.477978] systemd-imdsd[473]: Failed to read credential 'imds.extra_header48', ignoring: No such device or address
[    5.477982] systemd-imdsd[473]: Failed to read credential 'imds.extra_header49', ignoring: No such device or address
[    5.477988] systemd-imdsd[473]: Failed to read credential 'imds.extra_header50', ignoring: No such device or address
[    5.477995] systemd-imdsd[473]: Failed to read credential 'imds.extra_header51', ignoring: No such device or address
[    5.477999] systemd-imdsd[473]: Failed to read credential 'imds.extra_header52', ignoring: No such device or address
[    5.478022] systemd-imdsd[473]: Failed to read credential 'imds.extra_header53', ignoring: No such device or address
[    5.478028] systemd-imdsd[473]: Failed to read credential 'imds.extra_header54', ignoring: No such device or address
[    5.478033] systemd-imdsd[473]: Failed to read credential 'imds.extra_header55', ignoring: No such device or address
[    5.478039] systemd-imdsd[473]: Failed to read credential 'imds.extra_header56', ignoring: No such device or address
[    5.478044] systemd-imdsd[473]: Failed to read credential 'imds.extra_header57', ignoring: No such device or address
[    5.478050] systemd-imdsd[473]: Failed to read credential 'imds.extra_header58', ignoring: No such device or address
[    5.478055] systemd-imdsd[473]: Failed to read credential 'imds.extra_header59', ignoring: No such device or address
[    5.478060] systemd-imdsd[473]: Failed to read credential 'imds.extra_header60', ignoring: No such device or address
[    5.478066] systemd-imdsd[473]: Failed to read credential 'imds.extra_header61', ignoring: No such device or address
[    5.478071] systemd-imdsd[473]: Failed to read credential 'imds.extra_header62', ignoring: No such device or address
[    5.478079] systemd-imdsd[473]: Failed to read credential 'imds.extra_header63', ignoring: No such device or address
[    5.478086] systemd-imdsd[473]: Failed read IPv4 address from credential 'imds.address_ipv4', ignoring: No such device or address
[    5.478091] systemd-imdsd[473]: Failed read IPv6 address from credential 'imds.address_ipv6', ignoring: No such device or address
[    5.478097] systemd-imdsd[473]: Failed to read credential 'imds.key_hostname', ignoring: No such device or address
[    5.478102] systemd-imdsd[473]: Failed to read credential 'imds.key_region', ignoring: No such device or address
[    5.478107] systemd-imdsd[473]: Failed to read credential 'imds.key_zone', ignoring: No such device or address
[    5.478113] systemd-imdsd[473]: Failed to read credential 'imds.key_ipv4_public', ignoring: No such device or address
[    5.478119] systemd-imdsd[473]: Failed to read credential 'imds.key_ipv6_public', ignoring: No such device or address
[    5.478123] systemd-imdsd[473]: Failed to read credential 'imds.key_ssh_key', ignoring: No such device or address
[    5.478128] systemd-imdsd[473]: Failed to read credential 'imds.key_userdata', ignoring: No such device or address
[    5.478134] systemd-imdsd[473]: Failed to read credential 'imds.key_userdata_base', ignoring: No such device or address
[    5.478137] systemd-imdsd[473]: Failed to read credential 'imds.key_userdata_base64', ignoring: No such device or address

7 days agounits: do not fail if imds is not configured
Zbigniew Jędrzejewski-Szmek [Tue, 26 May 2026 16:22:18 +0000 (18:22 +0200)] 
units: do not fail if imds is not configured

In https://bugzilla.redhat.com/show_bug.cgi?id=2481466, it is reported
that systemd-imds-early-network.service fails on AWS EC2 instance with:

> No IMDS endpoint information provided or detected, cannot operate.

The service will be started on various systems where it doesn't have
enough configuration to run. The systemd-imds-generator only does some
superficial checks, so the tool should not mark the boot as failed
it turns out that IMDS is not supported.

7 days agoudev: ignore errors in adding property with spurious value
Yu Watanabe [Tue, 26 May 2026 15:51:26 +0000 (00:51 +0900)] 
udev: ignore errors in adding property with spurious value

Since a62cd5a153ffe18c27aff02685ed75c5bc4509a2, when an invalid property
is being added, device_add_property() refuses it with -EINVAL.
Before the commit, the function could fail with only -ENOMEM, and if it fails,
processing udev rules was aborted.

Let's not hard fail when udev rules or udev builtins try to add an invalid
property, and let's just log and ignore the failure.

Follow-up for a62cd5a153ffe18c27aff02685ed75c5bc4509a2.

Fixes #41339 and #41296.

7 days agonetwork: add skelton for new DHCP relay settings
Yu Watanabe [Tue, 26 May 2026 16:06:45 +0000 (01:06 +0900)] 
network: add skelton for new DHCP relay settings

Follow-up for 1a75eb7d8b7349959d305ee2a26b247da637c65c.

8 days agoUpdate fedora man page and spec ref (#42314)
Luca Boccassi [Tue, 26 May 2026 16:06:52 +0000 (17:06 +0100)] 
Update fedora man page and spec ref (#42314)