]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
3 weeks agoadd-ug-bo-translation
dongshengyuan [Mon, 16 Mar 2026 06:29:37 +0000 (14:29 +0800)] 
add-ug-bo-translation

3 weeks agoman: document that with RuntimeDirecoryPreserve= dirs are under /run/private/
Luca Boccassi [Mon, 16 Mar 2026 18:45:58 +0000 (18:45 +0000)] 
man: document that with RuntimeDirecoryPreserve= dirs are under /run/private/

This is not immediately obvious so document it explicitly.

Follow-up for 40cd2ecc26b776ef085fd0fd29e8e96f6422a0d3

3 weeks agoci: Review PRs per-commit and attach comments to correct commits (#41123)
Daan De Meyer [Mon, 16 Mar 2026 16:01:36 +0000 (17:01 +0100)] 
ci: Review PRs per-commit and attach comments to correct commits (#41123)

3 weeks agoci: Review PRs per-commit and attach comments to correct commits 41123/head
Daan De Meyer [Mon, 16 Mar 2026 14:33:11 +0000 (15:33 +0100)] 
ci: Review PRs per-commit and attach comments to correct commits

Switch claude-review from reviewing the entire PR diff at once to
reviewing each commit individually via subagents. Each commit review
subagent receives the PR context, preceding commit diffs, and its own
commit diff, then returns comments tagged with the commit SHA. This
ensures review comments are attached to the correct commit via the
GitHub API rather than all pointing at HEAD.

Also add Bash(gh:*) to allowed tools so subagents can fetch per-commit
diffs via `gh api` without needing local git objects, and remove CI
analysis (needs to be delayed until CI finishes to be useful).

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
3 weeks agoci: Revert side/subject_type change for claude review workflow
Daan De Meyer [Mon, 16 Mar 2026 15:07:55 +0000 (16:07 +0100)] 
ci: Revert side/subject_type change for claude review workflow

This doesn't seem to actually work, so revert the change.

3 weeks agoci: Fix several issues in claude-review workflow
Daan De Meyer [Mon, 16 Mar 2026 12:49:31 +0000 (13:49 +0100)] 
ci: Fix several issues in claude-review workflow

Address feedback from facebook/bpfilter#472:

- Fix setFailed error message counting file-level comments (without
  line numbers) that are intentionally skipped, use inlineComments.length
  instead of comments.length
- Fix double severity prefix in inline comments: the prompt told Claude
  to prefix body with **must-fix**/etc but the post job also prepended
  "Claude: ", producing "Claude: **must-fix**: ...". Now the prompt says
  not to prefix and the post job adds "Claude **severity**: " using the
  structured severity field
- Move error tracking instructions to a top-level section after all phases
  so they apply to all runs, not just the first run
- Clarify that line is optional: use "should be" instead of "must be"
  and document that omitting line still surfaces the comment in the
  tracking comment summary
- Distinguish cancelled vs failed in tracking comment message
- Add side: "RIGHT" and subject_type: "line" to createReviewComment
  per GitHub API recommendations
- Downgrade partial inline comment posting failures to warnings; only
  fail the job when no comments at all could be posted

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
3 weeks agoci: Update github-script action version to 8.0.0 in claude-review
Daan De Meyer [Mon, 16 Mar 2026 11:01:36 +0000 (12:01 +0100)] 
ci: Update github-script action version to 8.0.0 in claude-review

3 weeks agoci: Run claude-review workflow automatically on trusted PRs
Daan De Meyer [Mon, 16 Mar 2026 09:36:33 +0000 (10:36 +0100)] 
ci: Run claude-review workflow automatically on trusted PRs

3 weeks agoci: Insist on structured output from claude-review workflow
Daan De Meyer [Mon, 16 Mar 2026 10:12:34 +0000 (11:12 +0100)] 
ci: Insist on structured output from claude-review workflow

In some cases claude is not outputting structured JSON at the end.
Let's modify the prompt a bit to hopefully mitigate the issue.

3 weeks agodocs: document AI use disclosure consistently
davidak [Fri, 13 Mar 2026 01:45:41 +0000 (02:45 +0100)] 
docs: document AI use disclosure consistently

The example also adds the model version to have it for reference.

3 weeks agoci: Fix several robustness issues in claude-review workflow (#41115)
Zbigniew Jędrzejewski-Szmek [Mon, 16 Mar 2026 08:55:50 +0000 (09:55 +0100)] 
ci: Fix several robustness issues in claude-review workflow (#41115)

- Use github.paginate() for listComments to handle PRs with 100+
comments
- Make line optional in review schema to allow file-level comments
- Skip createReviewComment for comments without a line number
- Fix failed count to exclude skipped file-level comments
- Pass review result via env var instead of expression injection
- Use core.warning() instead of console.log() for JSON parse failures
- Fix MARKER insertion for single-line summaries that have no newline
- Require "@claude review" instead of just "@claude" to trigger

Co-developed-by: Claude <claude@anthropic.com>
3 weeks agoci: Fix several robustness issues in claude-review workflow 41115/head
Daan De Meyer [Sun, 15 Mar 2026 20:53:01 +0000 (21:53 +0100)] 
ci: Fix several robustness issues in claude-review workflow

- Use github.paginate() for listComments to handle PRs with 100+ comments
- Make line optional in review schema to allow file-level comments
- Skip createReviewComment for comments without a line number
- Fix failed count to exclude skipped file-level comments
- Pass review result via env var instead of expression injection
- Use core.warning() instead of console.log() for JSON parse failures
- Fix MARKER insertion for single-line summaries that have no newline
- Require "@claude review" instead of just "@claude" to trigger

Co-developed-by: Claude <claude@anthropic.com>
3 weeks agoci: Add full output from claude to debug intermittent failures
Daan De Meyer [Sun, 15 Mar 2026 20:47:21 +0000 (21:47 +0100)] 
ci: Add full output from claude to debug intermittent failures

3 weeks agococcinelle: simplify file exclusions
Frantisek Sumsal [Fri, 13 Mar 2026 16:09:40 +0000 (17:09 +0100)] 
coccinelle: simplify file exclusions

Use Coccinelle's "depends on" directive to exclude files from certain
transformations. This should make them a bit simpler and possibly
faster, since we don't have to shell out to Python.

Unfortunately, this works only for file/directory exclusions. For
function and other more complex exclusions we still need to use Python,
at least for now.

Also, completely drop the file exclusion for man/ in the xsprintf
transformation, since we filter out everything under man/ before we even
run Coccinelle (in run-coccinelle.sh).

4 weeks agomeson: bump version to v260~rc4 v260-rc4
Luca Boccassi [Fri, 13 Mar 2026 23:03:20 +0000 (23:03 +0000)] 
meson: bump version to v260~rc4

4 weeks agoNEWS: finalize place and date
Luca Boccassi [Fri, 13 Mar 2026 23:02:53 +0000 (23:02 +0000)] 
NEWS: finalize place and date

4 weeks agoImportd: skip fifos and sockets (#41090)
Zbigniew Jędrzejewski-Szmek [Fri, 13 Mar 2026 22:52:44 +0000 (23:52 +0100)] 
Importd: skip fifos and sockets (#41090)

4 weeks agoimport: skip sockets and fifos when creating archives 41090/head
Zbigniew Jędrzejewski-Szmek [Fri, 13 Mar 2026 10:08:07 +0000 (11:08 +0100)] 
import: skip sockets and fifos when creating archives

Fixes #40239.

$ SYSTEMD_LOG_LEVEL=debug SYSTEMD_LOG_LOCATION=1 build/test-tar -c /var/tmp/tar1.tar /var/tmp/with-fifo/
src/basic/dlfcn-util.c:66: Loaded shared library 'libarchive.so.13' via dlopen().
src/shared/tar-util.c:1422: Archiving '.'...
src/basic/dlfcn-util.c:66: Loaded shared library 'libacl.so.1' via dlopen().
src/shared/tar-util.c:1152: Skipping './fifo' (fifo).
src/shared/tar-util.c:1152: Skipping './unix' (sock).

4 weeks agotest-tar-extract: rename and add support for creating archives
Zbigniew Jędrzejewski-Szmek [Fri, 13 Mar 2026 09:42:46 +0000 (10:42 +0100)] 
test-tar-extract: rename and add support for creating archives

This makes it much easier to test importd code without the
surrounding machinery.

4 weeks agotest-tar-extract: fix error value in messages
Zbigniew Jędrzejewski-Szmek [Fri, 13 Mar 2026 09:11:22 +0000 (10:11 +0100)] 
test-tar-extract: fix error value in messages

4 weeks agoshared/tar-util: wrap some long lines, normalize indentation
Zbigniew Jędrzejewski-Szmek [Fri, 13 Mar 2026 08:52:23 +0000 (09:52 +0100)] 
shared/tar-util: wrap some long lines, normalize indentation

4 weeks agotest-network: improve reliability of test case for DHCPRELEASE message (#41067)
Luca Boccassi [Fri, 13 Mar 2026 14:46:30 +0000 (14:46 +0000)] 
test-network: improve reliability of test case for DHCPRELEASE message (#41067)

Follow-ups for #41002.

4 weeks agoudev: fix review mixup
Luca Boccassi [Fri, 13 Mar 2026 11:10:47 +0000 (11:10 +0000)] 
udev: fix review mixup

The previous version in the PR changed variable and sanitized it
in place. The second version switched to skip if CCs are in the
string instead, but didn't move back to the original variable.
Because it's an existing variable, no CI caught it.

Follow-up for 16325b35fa6ecb25f66534a562583ce3b96d52f3

4 weeks agoupdate TODO
Lennart Poettering [Fri, 13 Mar 2026 13:39:43 +0000 (14:39 +0100)] 
update TODO

4 weeks agoupdate TODO
Lennart Poettering [Fri, 13 Mar 2026 13:36:51 +0000 (14:36 +0100)] 
update TODO

4 weeks agoboot: check that `ret_version` is valid in tpm_log_tagged_event
Michael Vogt [Fri, 13 Mar 2026 10:33:25 +0000 (11:33 +0100)] 
boot: check that `ret_version` is valid in tpm_log_tagged_event

In a project I'm working on I recently observed a boot failure
with the most recent version of systemd. It seems it is triggered
by bb19b61049 which fixed a bug that now leads to the function
being excuted differently. The code is missing a check if
`*ret_version` is actually valid in the `ret_measured = true`
case.

4 weeks agotest-network: handle the case where dnsmasq is slow to start better 41067/head
Zbigniew Jędrzejewski-Szmek [Fri, 13 Mar 2026 11:02:07 +0000 (12:02 +0100)] 
test-network: handle the case where dnsmasq is slow to start better

> read_dnsmasq_log_file() will raise FileNotFoundError if dnsmasq hasn’t created the
> log file yet (or if the file was just removed by stop_dnsmasq() before the restart).
> This would error the test instead of retrying.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
4 weeks agohomed: fix copypasta in openssl calls
Luca Boccassi [Thu, 12 Mar 2026 20:39:23 +0000 (20:39 +0000)] 
homed: fix copypasta in openssl calls

decrypted_size/encrypted_size are sizes, not pointers to buffers

Reported on yeswehack.com as:
YWH-PGM9780-134

Follow-up for 70a5db5822c8056b53d9a4a9273ad12cb5f87a92

4 weeks agozsh: don't install _sd_machines when machined is disabled
Franck Bui [Fri, 13 Mar 2026 09:19:15 +0000 (10:19 +0100)] 
zsh: don't install _sd_machines when machined is disabled

4 weeks agoportable: avoid passing through ID/version fields to LogExtraFields= when they contai...
Luca Boccassi [Thu, 12 Mar 2026 16:16:30 +0000 (16:16 +0000)] 
portable: avoid passing through ID/version fields to LogExtraFields= when they contain control characters

Found by Claude Code Review.

Follow-up for e8114a4f86efa9a176962bbebbba4cb8b5a1c322

4 weeks agotest-network: also check if DHCPRELEASE is sent on stopping networkd
Yu Watanabe [Thu, 12 Mar 2026 08:38:37 +0000 (17:38 +0900)] 
test-network: also check if DHCPRELEASE is sent on stopping networkd

4 weeks agotest-network: improve reliability of test case of DHCPRELEASE message
Yu Watanabe [Thu, 12 Mar 2026 07:48:29 +0000 (16:48 +0900)] 
test-network: improve reliability of test case of DHCPRELEASE message

4 weeks agotest-network: drop duplicated definition of networkd_pid()
Yu Watanabe [Thu, 12 Mar 2026 07:15:47 +0000 (16:15 +0900)] 
test-network: drop duplicated definition of networkd_pid()

4 weeks agoman: document explicitly that ProtectHome= has no effect on non-standard homedir...
Lennart Poettering [Thu, 12 Mar 2026 14:08:07 +0000 (15:08 +0100)] 
man: document explicitly that ProtectHome= has no effect on non-standard homedir locations

Fixes: #41045
4 weeks agomeson: bump version to v260~rc3 v260-rc3
Luca Boccassi [Thu, 12 Mar 2026 16:58:12 +0000 (16:58 +0000)] 
meson: bump version to v260~rc3

4 weeks agoNEWS: finalize place and date
Luca Boccassi [Thu, 12 Mar 2026 16:55:49 +0000 (16:55 +0000)] 
NEWS: finalize place and date

4 weeks agoNEWS: update contributors list
Luca Boccassi [Thu, 12 Mar 2026 16:55:41 +0000 (16:55 +0000)] 
NEWS: update contributors list

4 weeks agopcrlock: don't accept PCRs > 23 from firmware event log (#41072)
Luca Boccassi [Thu, 12 Mar 2026 16:50:54 +0000 (16:50 +0000)] 
pcrlock: don't accept PCRs > 23 from firmware event log (#41072)

4 weeks agomeson: use libfido2_cflags dependency
Dan McGregor [Thu, 12 Mar 2026 00:26:05 +0000 (18:26 -0600)] 
meson: use libfido2_cflags dependency

Add the libfido2 dependency to cryptenroll and cryptsetup's
meson files. If libfido2's not installed in the default path
the build wasn't finding its headers correctly.

4 weeks agoTranslations update from Fedora Weblate (#41073)
Luca Boccassi [Thu, 12 Mar 2026 14:28:05 +0000 (14:28 +0000)] 
Translations update from Fedora Weblate (#41073)

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)

4 weeks agopo: Translated using Weblate (Russian) 41073/head
Sergey A. [Thu, 12 Mar 2026 13:58:31 +0000 (13:58 +0000)] 
po: Translated using Weblate (Russian)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Sergey A. <Ser82-png@yandex.ru>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ru/
Translation: systemd/main

4 weeks agopo: Translated using Weblate (Hebrew)
Yaron Shahrabani [Thu, 12 Mar 2026 13:58:30 +0000 (13:58 +0000)] 
po: Translated using Weblate (Hebrew)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/he/
Translation: systemd/main

4 weeks agomeasure: figure success of measurement correctly 41072/head
Lennart Poettering [Thu, 12 Mar 2026 13:41:43 +0000 (14:41 +0100)] 
measure: figure success of measurement correctly

Found by Claude Code Review.

4 weeks agopcrlock: don't accept PCRs > 23 from firmware event log
Lennart Poettering [Thu, 12 Mar 2026 13:31:42 +0000 (14:31 +0100)] 
pcrlock: don't accept PCRs > 23 from firmware event log

Let's harden ourselves against shitty firmware which might report an
invalid PCR.

(This is not really a security issue, more a robustness issue, after all
firmware generally comes with highest privileges and trust, even though
it might just be shit)

Fixes an issue found with Claude code review

4 weeks agotest: use --nogpgcheck instead of --no-gpgchecks in TEST-88-UPGRADE
Ivan Kruglov [Thu, 12 Mar 2026 12:14:40 +0000 (05:14 -0700)] 
test: use --nogpgcheck instead of --no-gpgchecks in TEST-88-UPGRADE

--no-gpgchecks was introduced in 920483872449 but is only available in
dnf5. Use --nogpgcheck instead, which is supported by both dnf4 and
dnf5 (where it is an alias for --no-gpgchecks).

Fixes test failure on distros still using dnf4 (e.g. CentOS/RHEL 9).

Co-developed-by: Claude <claude@anthropic.com>
4 weeks agocleanups for machined/nspawn (#41060)
Zbigniew Jędrzejewski-Szmek [Thu, 12 Mar 2026 08:39:30 +0000 (09:39 +0100)] 
cleanups for machined/nspawn (#41060)

4 weeks agodocs: contain image sizing and prevent overflow on mobile
Rito Rhymes [Thu, 12 Mar 2026 01:55:22 +0000 (21:55 -0400)] 
docs: contain image sizing and prevent overflow on mobile

`max-width: 100%` keeps images from expanding beyond
their container and creating horizontal overflow scroll
on small screens.

`height: auto` ensures the image scales proportionally
when width is adjusted.

4 weeks agodocs: wrap bare enum constants in inline code in JOURNAL_FILE_FORMAT
Rito Rhymes [Thu, 12 Mar 2026 03:54:10 +0000 (23:54 -0400)] 
docs: wrap bare enum constants in inline code in JOURNAL_FILE_FORMAT

4 weeks agoFix text overflow for long URLs and inline code blocks (#41064)
Zbigniew Jędrzejewski-Szmek [Thu, 12 Mar 2026 08:36:32 +0000 (09:36 +0100)] 
Fix text overflow for long URLs and inline code blocks (#41064)

## Summary
Long string URLs and inline code blocks can exceed page width and cause
horizontal scroll overflow that breaks page layouts on smaller screens.
This fix ensures those long strings can wrap down as needed to preserve
the layout. The only code blocks that are affected are those that are
inline span within text paragraphs and are effectively stylized text; it
does not affect `<pre>` code blocks where fidelity is prioritized and
contained horizontal scroll is preferred.

## Before and After Screenshots

### `/TPM2_PCR_MEASUREMENTS/` code overflow

**BEFORE**
<img width="400" height="770" alt="TPM2-before"
src="https://github.com/user-attachments/assets/87da9d7a-d757-4fe0-9496-5c17ce31a14e"
/>

<br /><br />

**AFTER**
<img width="400" height="770" alt="TPM2-after"
src="https://github.com/user-attachments/assets/e48ba635-6c73-46a7-a29a-673a253fa76b"
/>

### `/PRESET/` URL overflow

**BEFORE**
<img width="400" height="776" alt="PRESET-before"
src="https://github.com/user-attachments/assets/da4a6346-c53b-4ce0-9ec8-8e58b634174e"
/>

<br /><br />

**AFTER**
<img width="400" height="776" alt="PRESET-after"
src="https://github.com/user-attachments/assets/be5fa824-4891-46ac-9f6e-08490cda8bd9"
/>

4 weeks agodocs: allow long inline code to wrap to prevent overflow on mobile 41064/head
Rito Rhymes [Thu, 12 Mar 2026 03:36:42 +0000 (23:36 -0400)] 
docs: allow long inline code to wrap to prevent overflow on mobile

4 weeks agodocs: allow long links to wrap to prevent overflow on mobile
Rito Rhymes [Thu, 12 Mar 2026 03:34:40 +0000 (23:34 -0400)] 
docs: allow long links to wrap to prevent overflow on mobile

4 weeks agonspawn: normalize pivot_root paths 41060/head
Luca Boccassi [Wed, 11 Mar 2026 13:27:14 +0000 (13:27 +0000)] 
nspawn: normalize pivot_root paths

Originally reported on yeswehack.com as:
YWH-PGM9780-116

Follow-up for b53ede699cdc5233041a22591f18863fb3fe2672

4 weeks agonspawn: apply BindUser/Ephemeral from settings file only if trusted
Luca Boccassi [Wed, 11 Mar 2026 12:15:26 +0000 (12:15 +0000)] 
nspawn: apply BindUser/Ephemeral from settings file only if trusted

Originally reported on yeswehack.com as:
YWH-PGM9780-116

Follow-up for 2f8930449079403b26c9164b8eeac78d5af2c8df
Follow-up for a2f577fca0be79b23f61f033229b64884e7d840a

4 weeks agomachined: reject invalid class types when registering machines
Luca Boccassi [Sun, 8 Mar 2026 14:30:52 +0000 (14:30 +0000)] 
machined: reject invalid class types when registering machines

Follow-up for fbe550738d03b178bb004a1390e74115e904118a

4 weeks agohwdb/keyboard: fix Positron vendor location
Mikhail Novosyolov [Wed, 11 Mar 2026 19:27:58 +0000 (22:27 +0300)] 
hwdb/keyboard: fix Positron vendor location

Move lines without changing them.
Fixes: 9aad3336f ("hwdb/keyboard: Map FN key on Positron Proxima 15")
(https://github.com/systemd/systemd/pull/40929)

4 weeks agocore: limit number of LogExtraFields (#41044)
Luca Boccassi [Wed, 11 Mar 2026 19:40:43 +0000 (19:40 +0000)] 
core: limit number of LogExtraFields (#41044)

We have two places where those fields can be set: config and the dbus
interface. Let's clamp down on the number in both places. But in
principle, we could also be upgrading (through
serialization/deserialization) from an older systemd which didn't
enforce this limit, so also check on deserialization. A user could have
a unit with lots and lots of ExtraFields, but not enough to cause the
issue in #40916. To handle this gracefully, ignore the extra fields,
like we do in the parser. Where the field is used, assert that we are
within the expected bounds.

Fixes #40916.

Reproducer:
```console
$ python3 -c 'from pydbus import SystemBus; from gi.repository import GLib; SystemBus().get("org.freedesktop.systemd1", "/org/freedesktop/systemd1").StartTransientUnit("crash.service", "fail", [("ExecStart", GLib.Variant("a(sasb)", [("/bin/true", ["/bin/true"], False)])), ("LogExtraFields", GLib.Variant("aay", [b"F%d=x" % i for i in range(140000)]))], [])' Traceback (most recent call last):
  File "<string>", line 1, in <module>
    from pydbus import SystemBus; from gi.repository import GLib; SystemBus().get("org.freedesktop.systemd1", "/org/freedesktop/systemd1").StartTransientUnit("crash.service", "fail", [("ExecStart", GLib.Variant("a(sasb)", [("/bin/true", ["/bin/true"], False)])), ("LogExtraFields", GLib.Variant("aay", [b"F%d=x" % i for i in range(140000)]))], [])
                                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/pydbus/proxy_method.py", line 102, in __call__
    raise error
  File "/usr/lib/python3.14/site-packages/pydbus/proxy_method.py", line 97, in __call__
    result = instance._bus.con.call_sync(*call_args)
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Too many extra log fields. (16)
```

4 weeks agomeasure-tool: always sign with SHA256
Lennart Poettering [Wed, 11 Mar 2026 16:27:12 +0000 (17:27 +0100)] 
measure-tool: always sign with SHA256

We should not use the bank algorithm for the signing, as we only support
validating via SHA256. Fix that.

Fixes: #40245
4 weeks agoinclude diskseq in dissection verity DM devices (#41050)
Luca Boccassi [Wed, 11 Mar 2026 17:28:20 +0000 (17:28 +0000)] 
include diskseq in dissection verity DM devices (#41050)

4 weeks agosd-ndisc: fix address family check
Lennart Poettering [Wed, 11 Mar 2026 15:29:01 +0000 (16:29 +0100)] 
sd-ndisc: fix address family check

Issue reported by zhengg-research

4 weeks agoTEST-07-PID1: add small test for LogExtraFields 41044/head
Zbigniew Jędrzejewski-Szmek [Wed, 11 Mar 2026 12:15:57 +0000 (13:15 +0100)] 
TEST-07-PID1: add small test for LogExtraFields

4 weeks agocore/unit: shorten code
Zbigniew Jędrzejewski-Szmek [Wed, 11 Mar 2026 11:50:49 +0000 (12:50 +0100)] 
core/unit: shorten code

I wanted to use _cleanup_(unlink_tempfilep), but the type doesn't
match (char ** vs. char (*)[]), so the goto remains.

4 weeks agocore: limit number of LogExtraFields
Zbigniew Jędrzejewski-Szmek [Wed, 11 Mar 2026 11:03:19 +0000 (12:03 +0100)] 
core: limit number of LogExtraFields

We have two places where those fields can be set: config and the dbus
interface. Let's clamp down on the number in both places. But in principle, we
could also be upgrading (through serialization/deserialization) from an older
systemd which didn't enforce this limit, so also check on deserialization. A
user could have a unit with lots and lots of ExtraFields, but not enough to
cause the issue in #40916. To handle this gracefully, ignore the extra fields,
like we do in the parser. Where the field is used, assert that we are within
the expected bounds.

Fixes #40916.

Reproducer:
$ python3 -c 'from pydbus import SystemBus; from gi.repository import GLib; SystemBus().get("org.freedesktop.systemd1", "/org/freedesktop/systemd1").StartTransientUnit("crash.service", "fail", [("ExecStart", GLib.Variant("a(sasb)", [("/bin/true", ["/bin/true"], False)])), ("LogExtraFields", GLib.Variant("aay", [b"F%d=x" % i for i in range(140000)]))], [])'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    from pydbus import SystemBus; from gi.repository import GLib; SystemBus().get("org.freedesktop.systemd1", "/org/freedesktop/systemd1").StartTransientUnit("crash.service", "fail", [("ExecStart", GLib.Variant("a(sasb)", [("/bin/true", ["/bin/true"], False)])), ("LogExtraFields", GLib.Variant("aay", [b"F%d=x" % i for i in range(140000)]))], [])
                                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/pydbus/proxy_method.py", line 102, in __call__
    raise error
  File "/usr/lib/python3.14/site-packages/pydbus/proxy_method.py", line 97, in __call__
    result = instance._bus.con.call_sync(*call_args)
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Too many extra log fields. (16)

4 weeks agocore: fix reloading multiple confexts at the same time
Luca Boccassi [Wed, 11 Mar 2026 14:20:21 +0000 (14:20 +0000)] 
core: fix reloading multiple confexts at the same time

[] has higher precedence than pointer dereference, hence hilarity
ensues as soon as there are multuple images

Originally reported on yeswehack.com as:
YWH-PGM9780-122

Follow-up for dfdeb0b1cbb05a213f0965eedfe0e7ef06cd39d3

4 weeks agodbus-cgroup: Fix copy paste error
Daan De Meyer [Sat, 7 Mar 2026 22:04:38 +0000 (23:04 +0100)] 
dbus-cgroup: Fix copy paste error

Let's set the appropriate field for ManagedOOMMemoryPressureDurationUSec=
and not a totally different one.

4 weeks agoudev-builtin-net-id: print cescaped bad attributes
Zbigniew Jędrzejewski-Szmek [Wed, 11 Mar 2026 10:27:48 +0000 (11:27 +0100)] 
udev-builtin-net-id: print cescaped bad attributes

Follow-up for 16325b35fa6ecb25f66534a562583ce3b96d52f3. Let's
log those bad value to make it easier to figure out why things
are not working if we reject an attribute.

4 weeks agodissect-image: include diskseq in DM names, to avoid any name clashes 41050/head
Lennart Poettering [Wed, 11 Mar 2026 15:56:59 +0000 (16:56 +0100)] 
dissect-image: include diskseq in DM names, to avoid any name clashes

4 weeks agodissect-image: don't do path based ops on a non-path
Lennart Poettering [Wed, 11 Mar 2026 15:45:10 +0000 (16:45 +0100)] 
dissect-image: don't do path based ops on a non-path

Also, better use path_extract_filename() when extracting filenames
from paths.

Also, why void* for the 'base' parameter?

4 weeks agoboot: impose section limit when loading PE from memory too
Luca Boccassi [Tue, 10 Mar 2026 21:07:52 +0000 (21:07 +0000)] 
boot: impose section limit when loading PE from memory too

pe_section_table_from_file already checks with SECTION_TABLE_BYTES_MAX,
do the same in pe_section_table_from_base() just in case.

Originally reported on yeswehack.com as:
YWH-PGM9780-117

Follow-up for f4e081051d950a09ce9331ba55eaf604dac72652

4 weeks agoudev: various cleanups and sanitizations (#40983)
Zbigniew Jędrzejewski-Szmek [Wed, 11 Mar 2026 10:06:53 +0000 (11:06 +0100)] 
udev: various cleanups and sanitizations (#40983)

4 weeks agoupdate TODO
Lennart Poettering [Wed, 11 Mar 2026 09:31:39 +0000 (10:31 +0100)] 
update TODO

4 weeks agoChores for RC3 (#41023)
Zbigniew Jędrzejewski-Szmek [Wed, 11 Mar 2026 07:34:42 +0000 (08:34 +0100)] 
Chores for RC3 (#41023)

4 weeks agouserdb: mark PII fields as sensitive in user records
Dylan M. Taylor [Fri, 6 Mar 2026 15:05:32 +0000 (10:05 -0500)] 
userdb: mark PII fields as sensitive in user records

Mark realName, emailAddress, and location as sensitive in JSON user
records so that they are excluded from debug log output. These fields
contain personally identifiable information that should not be leaked
in logs, which are generally more accessible than the user database
itself.

4 weeks agosd-dhcp-client: several fixlets for sending RELEASE or DECLINE (#41002)
Yu Watanabe [Wed, 11 Mar 2026 01:17:44 +0000 (10:17 +0900)] 
sd-dhcp-client: several fixlets for sending RELEASE or DECLINE (#41002)

Fixes #39299.

4 weeks agotest-network: add test case for sending DHCPv4 RELEASE message 41002/head
Yu Watanabe [Mon, 9 Mar 2026 20:07:44 +0000 (05:07 +0900)] 
test-network: add test case for sending DHCPv4 RELEASE message

4 weeks agosd-dhcp-client: several fixlets for sending RELEASE or DECLINE
Yu Watanabe [Mon, 9 Mar 2026 06:18:24 +0000 (15:18 +0900)] 
sd-dhcp-client: several fixlets for sending RELEASE or DECLINE

- Extract common logic to client_send_release_or_decline().
- Do not send DECLINE message on BOOTP protocol.
- Drop redundant assignment of chaddr, as it is already set by
  client_message_init() -> dhcp_message_init().
- Do not assign acquired address in ciaddr field of DECLINE message,
  but use Requested IP Address option.
- Broadcast DECLINE message, rather than unicast.
- Set server identifier in both cases.

Fixes #39299.

4 weeks agoportable: Test pinning a single fstype on an GPT image with verity
Rodrigo Campos [Mon, 9 Mar 2026 13:38:54 +0000 (14:38 +0100)] 
portable: Test pinning a single fstype on an GPT image with verity

This tests a GPT image with a single fstype using verity. This was
broken and fixed by the previous commit.

4 weeks agodissect: Don't bypass blkid *_lookup_value() to decide USAGE
Rodrigo Campos [Fri, 6 Mar 2026 15:54:02 +0000 (16:54 +0100)] 
dissect: Don't bypass blkid *_lookup_value() to decide USAGE

After commit "core: reuse existing dm-verity device for single
filesystem images pinned by policy" (0bd766553cbf), when I attach a
portable image (erofs+verity) and try to start a service, it fails with:

  Partition root discovered with policy 'unprotected' but 'verity+read-only-on+growfs-off+erofs' was required, refusing.
  Failed to dissect image: Operation not possible due to RF-kill

The image does have verity, in fact the RootImagePolicy= field was added
automatically.

The inconsistency between what is found at attach vs when starting the
service comes from the fact that dissect_image() is called with a
different policy as parameter and the recent shortcut added.

At attach we do this:

dissect_image(policy="*")
    partition_policy_determine_fstype(policy)
      partition_policy_flags_to_string(...) // mask is 0, returns 0
    -> returns NULL // root_fstype_string is not set
    if (root_fstype_string) // false
      sym_blkid_probe_lookup_value()...

At start, as we do have the policy set, we do:

dissect_image(policy="root=verity+...+erofs:root-verity=...")
    partition_policy_determine_fstype(policy)
      partition_policy_flags_to_string(...) // returns 1
    -> sets root_fstype_string to "erofs"
    if (root_fstype_string) // true
       usage = "filesystem"

Then, the service is blocked to start with the aforementioned error.

It's correct for partition_policy_determine_fstype() to set erofs in
that case, and other callers seem to expect this behavior on similar
cases, but what is not correct is to assume that this means it's a
filesystem. Usage in this case should still be unset.

Let's just always do the lookup, as that gets us the correct answer reliably
and we already did the slow part that is the probe.

The call to `sym_blkid_do_safeprobe()` is a few lines above. The call to
the lookup function isn't very expensive. blkid_probe_lookup_value()[1]
calls __blkid_probe_lookup_value(), which searches on a list[2], IIUC in
memory and no IO is used. It's a linear search of the property.

[1]: https://github.com/util-linux/util-linux/blob/0fd08f19e7a3bc37509491d06a664cfb47be7cd8/libblkid/src/probe.c#L2299
[2]: https://github.com/util-linux/util-linux/blob/0fd08f19e7a3bc37509491d06a664cfb47be7cd8/libblkid/src/probe.c#L2343

4 weeks agosd-boot: fix silly copy/paste mistake
Michael Vogt [Tue, 10 Mar 2026 20:51:24 +0000 (21:51 +0100)] 
sd-boot: fix silly copy/paste mistake

This fixes a very silly copy/paste mistake in 3f95881 - sorry for
that and thanks to Raul Tambre  for reporting.

Closes https://github.com/systemd/systemd/issues/40844

4 weeks agoudev: ensure tag parsing stays within bounds 40983/head
Luca Boccassi [Fri, 6 Mar 2026 20:25:05 +0000 (20:25 +0000)] 
udev: ensure tag parsing stays within bounds

This cannot actually happen, but add a safety check nonetheless.

Reported on yeswehack.com as:
YWH-PGM9780-43

Follow-up for d7867b31836173d1a943ecb1cab6484536126411

4 weeks agoudev: ensure there is space for trailing NUL before calling sprintf
Luca Boccassi [Fri, 6 Mar 2026 19:42:16 +0000 (19:42 +0000)] 
udev: ensure there is space for trailing NUL before calling sprintf

sprintf will write 5 characters, as it adds a trailing NUL byte.

Reported on yeswehack.com as:
YWH-PGM9780-62

Follow-up for 8cfcf9980a3

4 weeks agoudev: check for invalid chars in various fields received from the kernel
Luca Boccassi [Fri, 6 Mar 2026 19:32:35 +0000 (19:32 +0000)] 
udev: check for invalid chars in various fields received from the kernel

4 weeks agosd-device: refuse properties with invalid characters (#41001)
Zbigniew Jędrzejewski-Szmek [Tue, 10 Mar 2026 21:19:32 +0000 (22:19 +0100)] 
sd-device: refuse properties with invalid characters (#41001)

4 weeks agoci: Add one more mcp tool to claude-review workflow
Daan De Meyer [Tue, 10 Mar 2026 20:35:13 +0000 (21:35 +0100)] 
ci: Add one more mcp tool to claude-review workflow

4 weeks agoci: Only trigger claude review workflow on pr comments
Daan De Meyer [Tue, 10 Mar 2026 19:55:40 +0000 (20:55 +0100)] 
ci: Only trigger claude review workflow on pr comments

The trigger for regular pr and issue comments is the same, so we
have to make sure we skip if it's an issue comment and not a pr
comment.

4 weeks agoci: Update prompt to include a list of errors
Daan De Meyer [Tue, 10 Mar 2026 19:43:22 +0000 (20:43 +0100)] 
ci: Update prompt to include a list of errors

To make debugging the review workflow easier, have claude include an
overview of errors encountered in the review summary.

4 weeks agoci: Give claude review read-only access to issues and pull requests
Daan De Meyer [Tue, 10 Mar 2026 19:39:56 +0000 (20:39 +0100)] 
ci: Give claude review read-only access to issues and pull requests

For retrieving previous review comments and extra details from issues
linked in the PR.

4 weeks agoci: Create claude review tracking comment before starting review
Daan De Meyer [Tue, 10 Mar 2026 19:19:41 +0000 (20:19 +0100)] 
ci: Create claude review tracking comment before starting review

Let's create a comment to let the user know that the review is in
progress and then update that comment with the actual review later.

4 weeks agoVarious claude fixes (#41024)
Daan De Meyer [Tue, 10 Mar 2026 19:03:02 +0000 (20:03 +0100)] 
Various claude fixes (#41024)

4 weeks agoci: Add workflow url to tracking comment in claude-review workflow 41024/head
Daan De Meyer [Tue, 10 Mar 2026 18:58:17 +0000 (19:58 +0100)] 
ci: Add workflow url to tracking comment in claude-review workflow

Simplifies debugging of failed claude-review workflows.

4 weeks agoci: Don't make a single failed review comment fail the entire job
Daan De Meyer [Tue, 10 Mar 2026 18:57:11 +0000 (19:57 +0100)] 
ci: Don't make a single failed review comment fail the entire job

Let's handle failure to post individual review comments gracefully.
Reduces the impact of failures like in
https://github.com/systemd/systemd/actions/runs/22904601370/job/66461528144.

4 weeks agoci: Update claude review prompt to insist on valid lines
Daan De Meyer [Tue, 10 Mar 2026 18:56:09 +0000 (19:56 +0100)] 
ci: Update claude review prompt to insist on valid lines

Hopefully fixes the failure in
https://github.com/systemd/systemd/actions/runs/22904601370/job/66461528144.

4 weeks agomount-util: Use new mount API in bind_mount_submounts() (#41008)
Daan De Meyer [Tue, 10 Mar 2026 18:49:10 +0000 (19:49 +0100)] 
mount-util: Use new mount API in bind_mount_submounts() (#41008)

4 weeks agocore/cgroup: fix TasksMaxScale percentage serialization (#41011)
Cyrus Xi [Tue, 10 Mar 2026 18:36:21 +0000 (11:36 -0700)] 
core/cgroup: fix TasksMaxScale percentage serialization (#41011)

bus_cgroup_set_tasks_max_scale() used a hand-rolled percentage format
that produced values ~10x too small (e.g., "TasksMax=4.0%" instead of
"TasksMax=40.00%").

On daemon-reload, the incorrect value was re-read, silently reducing
the effective TasksMax by ~10x and causing fork rejections on systems
with high thread counts.

Fix by using the existing PERMYRIAD macros, consistent with memory
property handlers (MemoryMax, MemoryHigh, MemoryLow, etc.).

Fixes: #41009
4 weeks agofuzz: fix typo
Yu Watanabe [Tue, 10 Mar 2026 18:23:44 +0000 (03:23 +0900)] 
fuzz: fix typo

Follow-up for be0db50cadadb35fdbc117ed68e133f34604b97b.

4 weeks agoTranslations update from Fedora Weblate (#41021)
Luca Boccassi [Tue, 10 Mar 2026 17:55:43 +0000 (17:55 +0000)] 
Translations update from Fedora Weblate (#41021)

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)

4 weeks agopo: Translated using Weblate (Chinese (Simplified) (zh_CN)) 41021/head
Jesse Guo [Tue, 10 Mar 2026 15:58:29 +0000 (15:58 +0000)] 
po: Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Jesse Guo <jesseguotech@outlook.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/zh_CN/
Translation: systemd/main

4 weeks agopo: Translated using Weblate (Catalan)
naly zzwd [Tue, 10 Mar 2026 15:58:29 +0000 (15:58 +0000)] 
po: Translated using Weblate (Catalan)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: naly zzwd <xeanhort007@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ca/
Translation: systemd/main

4 weeks agopo: Translated using Weblate (German)
Marcel Leismann [Tue, 10 Mar 2026 15:58:28 +0000 (15:58 +0000)] 
po: Translated using Weblate (German)

Currently translated at 99.6% (265 of 266 strings)

Co-authored-by: Marcel Leismann <tiixrigjekfv@use.startmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/de/
Translation: systemd/main

4 weeks agonetworkd: fix for networkd crash when client sends Option 82 via SendOption=
Nandakumar Raghavan [Tue, 10 Mar 2026 06:54:33 +0000 (06:54 +0000)] 
networkd: fix for networkd crash when client sends Option 82 via SendOption=

When a DHCP client uses SendOption=82:string:..., option_append() calls
the SD_DHCP_OPTION_RELAY_AGENT_INFORMATION case which was written for
the server relay path. It casts optval to sd_dhcp_server* and calls
strlen() on its members, but optval is actually raw binary data from
the client, causing SIGSEGV. The same is applicable when option 43 and
option 77 are passed to SendOption.

Fix by checking optlen > 0 and appending the option as a plain TLV,
skipping the server-specific relay agent logic.

4 weeks agonsresourced: downgrade benign log message to debug
Luca Boccassi [Mon, 9 Mar 2026 11:25:50 +0000 (11:25 +0000)] 
nsresourced: downgrade benign log message to debug

This is very noisy as there's a dozen of these message every
time it gets called, and it's not really an error but an
expected situation, so downgrade from info to debug