]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 months agoStop disabling -Wattributes
Zbigniew Jędrzejewski-Szmek [Thu, 19 Mar 2026 10:35:00 +0000 (11:35 +0100)] 
Stop disabling -Wattributes

In one of the reviews one of the LLMs noticed that the pragma is set but
never unset, so it remains in effect for the rest of the translation
unit. From the comment, it's not clear how old those "old compilers" were,
so let's try if things work without this workaround.

2 months agoci: Update prompt to reduce time spent re-checking comments
Daan De Meyer [Thu, 19 Mar 2026 10:34:25 +0000 (11:34 +0100)] 
ci: Update prompt to reduce time spent re-checking comments

I noticed looking at the logs that claude spends a lot of time re-checking
existing comments, so let's update the prompt to hopefully reduce
the amount of comments that it re-checks.

2 months agoci: Instruct claude to not do any escaping for review comments
Daan De Meyer [Thu, 19 Mar 2026 10:12:37 +0000 (11:12 +0100)] 
ci: Instruct claude to not do any escaping for review comments

Should hopefully fix cases like
https://github.com/systemd/systemd/pull/40780#discussion_r2956841573.

2 months agoci: Have claude spend more effort on reviews
Daan De Meyer [Thu, 19 Mar 2026 09:34:04 +0000 (10:34 +0100)] 
ci: Have claude spend more effort on reviews

Let's give this a try and see how it impacts reviews (and cost).

2 months agovconsole-setup: handle gracefully if setfont/loadkeys are not available 40959/head
Lennart Poettering [Thu, 5 Mar 2026 15:13:39 +0000 (16:13 +0100)] 
vconsole-setup: handle gracefully if setfont/loadkeys are not available

Let's not complain too loudly if these external binaries aren't there.

2 months agovconsole-setup: add a bunch of assert()s
Lennart Poettering [Thu, 5 Mar 2026 15:13:34 +0000 (16:13 +0100)] 
vconsole-setup: add a bunch of assert()s

2 months agouserdb: add birthDate field to JSON user records (#40954)
Luca Boccassi [Wed, 18 Mar 2026 23:04:03 +0000 (23:04 +0000)] 
userdb: add birthDate field to JSON user records (#40954)

Add an optional field that can be used to store a user's birth date.
userdb already stores personal metadata (`emailAddress`, `realName`,
`location`) so `birthDate` is a natural fit.

2 months agonetworkctl: drop unused functions
noxiouz [Tue, 24 Feb 2026 14:04:09 +0000 (23:04 +0900)] 
networkctl: drop unused functions

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetworkctl: use io.systemd.Network.Link.Describe() Varlink method
noxiouz [Sun, 22 Feb 2026 15:17:37 +0000 (15:17 +0000)] 
networkctl: use io.systemd.Network.Link.Describe() Varlink method

This makes networkctl fetch bit-rate statistics and offered DHCP
leases via Link.Describe() method instead of D-Bus.

Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetwork: add io.systemd.Network.Link.Describe() Varlink method
noxiouz [Sun, 22 Feb 2026 15:17:37 +0000 (15:17 +0000)] 
network: add io.systemd.Network.Link.Describe() Varlink method

The handler returns the JSON produced by link_build_json().

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetworkctl: use io.systemd.service.Reload() method
noxiouz [Sun, 22 Feb 2026 15:29:44 +0000 (15:29 +0000)] 
networkctl: use io.systemd.service.Reload() method

Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetwork: implement io.systemd.service.Reload() in networkd
noxiouz [Sun, 22 Feb 2026 15:29:44 +0000 (15:29 +0000)] 
network: implement io.systemd.service.Reload() in networkd

Bind networkd's reload handler to the generic io.systemd.service.Reload
method.

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetworkctl: use new varlink methods
Yu Watanabe [Tue, 24 Feb 2026 12:46:07 +0000 (21:46 +0900)] 
networkctl: use new varlink methods

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetwork: add io.systemd.Network.Link.Reconfigure() Varlink method
noxiouz [Sun, 22 Feb 2026 15:26:28 +0000 (15:26 +0000)] 
network: add io.systemd.Network.Link.Reconfigure() Varlink method

The handler calls link_reconfigure_full() with UNCONDITIONALLY|CLEANLY
flags and defers the Varlink reply until reconfiguration completes.

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetwork: add io.systemd.Network.Link.ForceRenew() Varlink method
noxiouz [Sun, 22 Feb 2026 15:25:07 +0000 (15:25 +0000)] 
network: add io.systemd.Network.Link.ForceRenew() Varlink method

The handler calls sd_dhcp_server_forcerenew() if the server is running
and logs a warning on failure.

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetwork: add io.systemd.Network.Link.Renew() Varlink method
noxiouz [Sun, 22 Feb 2026 15:24:14 +0000 (15:24 +0000)] 
network: add io.systemd.Network.Link.Renew() Varlink method

The handler calls dhcp4_renew() and logs a warning on failure.

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetwork: extend link_reconfigure_full() and manager_reload() for Varlink
noxiouz [Sun, 22 Feb 2026 15:11:37 +0000 (15:11 +0000)] 
network: extend link_reconfigure_full() and manager_reload() for Varlink

Add an sd_varlink* parameter to both functions so Varlink callers can
receive a deferred reply once all async work completes, symmetrically
with the existing sd_bus_message* path.

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetwork: add BitRates field to link_build_json() and the Varlink IDL
noxiouz [Sun, 22 Feb 2026 15:09:56 +0000 (15:09 +0000)] 
network: add BitRates field to link_build_json() and the Varlink IDL

Expose the speed meter transmit/receive rates as a BitRates struct in
the per-link JSON output and the io.systemd.Network Varlink IDL.

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agonetwork: extract link_get_bit_rates() into networkd-speed-meter.c
noxiouz [Sun, 22 Feb 2026 15:09:08 +0000 (15:09 +0000)] 
network: extract link_get_bit_rates() into networkd-speed-meter.c

Move the bit-rate computation out of property_get_bit_rates() in
networkd-link-bus.c into a standalone link_get_bit_rates() helper in
networkd-speed-meter.c, which already owns the speed meter state.

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
2 months agoAdd tmpfiles --inline and use it in one unit file (#41034)
Zbigniew Jędrzejewski-Szmek [Wed, 18 Mar 2026 21:49:11 +0000 (22:49 +0100)] 
Add tmpfiles --inline and use it in one unit file (#41034)

2 months agouserdb: add birthDate field to JSON user records 40954/head
Dylan M. Taylor [Fri, 6 Mar 2026 12:34:57 +0000 (07:34 -0500)] 
userdb: add birthDate field to JSON user records

Add a birthDate field to the JSON user record, stored internally as a
struct tm with INT_MIN/negative sentinels for unset fields. The field
is serialized as a YYYY-MM-DD string in JSON and validated via
parse_birth_date(), which shares its core logic with
parse_calendar_date() through a new parse_calendar_date_full()
function.

For birth dates, timegm() is called directly (rather than
mktime_or_timegm_usec) to support pre-epoch dates. The wday field is
used to distinguish timegm() failure from a valid (time_t) -1 return.

birthDate is excluded from user_record_self_modifiable_fields(), so
only administrators can set or change it via homectl. The field
remains in the regular (non-privileged) JSON section, keeping it
readable by the user and applications.

2 months agohostname: add API for getting custom fields from machine-info
seaeunlee [Fri, 6 Mar 2026 00:33:01 +0000 (00:33 +0000)] 
hostname: add API for getting custom fields from machine-info

2 months agoTranslations update from Fedora Weblate (#41164)
Luca Boccassi [Wed, 18 Mar 2026 20:42:46 +0000 (20:42 +0000)] 
Translations update from Fedora Weblate (#41164)

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 months agopo: Translated using Weblate (Punjabi) 41164/head
A S Alam [Wed, 18 Mar 2026 18:58:46 +0000 (18:58 +0000)] 
po: Translated using Weblate (Punjabi)

Currently translated at 34.9% (93 of 266 strings)

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

2 months agopo: Translated using Weblate (Finnish)
Jan Kuparinen [Wed, 18 Mar 2026 18:58:46 +0000 (18:58 +0000)] 
po: Translated using Weblate (Finnish)

Currently translated at 100.0% (266 of 266 strings)

Co-authored-by: Jan Kuparinen <copper_fin@hotmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/fi/
Translation: systemd/main

2 months agopo: Translated using Weblate (Kabyle)
Massii Aqvayli [Wed, 18 Mar 2026 18:58:45 +0000 (18:58 +0000)] 
po: Translated using Weblate (Kabyle)

Currently translated at 7.5% (20 of 266 strings)

Co-authored-by: Massii Aqvayli <massiin@proton.me>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/kab/
Translation: systemd/main

2 months agoman: switch ostree link to manpage
Luca Boccassi [Wed, 18 Mar 2026 18:18:39 +0000 (18:18 +0000)] 
man: switch ostree link to manpage

Webpage has been defaced and taken over

2 months agoci: Add back subagents and stop using --json-schema in claude-review
Daan De Meyer [Wed, 18 Mar 2026 13:32:21 +0000 (14:32 +0100)] 
ci: Add back subagents and stop using --json-schema in claude-review

Let's stop using --json-schema and instead have claude write a JSON
file in the repo root which we pass around as an artifact similar to
how we pass around the input. This works around the bug where claude
receives task notifications after producing structured output which
breaks the structured output.

2 months agoRename verb functions for consistency and add per-verb constant parameter (#41003)
Zbigniew Jędrzejewski-Szmek [Wed, 18 Mar 2026 15:46:13 +0000 (16:46 +0100)] 
Rename verb functions for consistency and add per-verb constant parameter (#41003)

We often have a pattern where the same verb function is used for
multiple actions. This leads to an antipattern where we figure out what
action needs to be taken from argv[0] multiple times: often once in
arse_argv() to figure out what options are allowed, then once again
implicitly in dispatch_verb(), and then again in the action verb itself.
Let's allow passing a parameter into the verb to simplify this.

2 months agoTEST-22-TMPFILES: add simple test for tmpfiles --inline 41034/head
Zbigniew Jędrzejewski-Szmek [Tue, 10 Mar 2026 22:20:15 +0000 (23:20 +0100)] 
TEST-22-TMPFILES: add simple test for tmpfiles --inline

Also add tests for handling of invalid_config.

2 months agounits: stop using rm in system-update-cleanup.service
Zbigniew Jędrzejewski-Szmek [Tue, 10 Mar 2026 21:59:37 +0000 (22:59 +0100)] 
units: stop using rm in system-update-cleanup.service

If we are running on a system without coreutils, rm might not be
available. Let's use our own binary that should be available.

2 months agotmpfiles: add --inline
Zbigniew Jędrzejewski-Szmek [Tue, 10 Mar 2026 21:53:03 +0000 (22:53 +0100)] 
tmpfiles: add --inline

This option is exactly like the one in sysusers. (In fact the
implementation is copied too.) It is occasionally useful to be able to
specify and execute some tmpfiles config not through config files but
directly on the command line. This also makes it very easy to test
config with:
  SYSTEMD_LOG_LEVEL=debug systemd-tmpfiles --dry-run --inline ...

2 months agotime-util: extract parse_calendar_date() from sysupdate
Dylan M. Taylor [Fri, 6 Mar 2026 12:27:10 +0000 (07:27 -0500)] 
time-util: extract parse_calendar_date() from sysupdate

Move the YYYY-MM-DD date parsing and validation logic from
sysupdate-resource.c into a shared parse_calendar_date() function
in time-util, so it can be reused by other subsystems.

2 months agoci: Don't read claude settings from the repo
Daan De Meyer [Wed, 18 Mar 2026 12:40:13 +0000 (13:40 +0100)] 
ci: Don't read claude settings from the repo

Shouldn't be possible, but extra hardening never hurts.

2 months agoci: Prettify JSON in pr context file so claude can parse it
Daan De Meyer [Wed, 18 Mar 2026 12:38:17 +0000 (13:38 +0100)] 
ci: Prettify JSON in pr context file so claude can parse it

Currently it's a single line which makes it hard for claude to read
what's in it.

2 months agoci: Allow claude-review access to /tmp and /var/tmp
Daan De Meyer [Wed, 18 Mar 2026 12:34:34 +0000 (13:34 +0100)] 
ci: Allow claude-review access to /tmp and /var/tmp

2 months agoci: Stop using subagents in claude-review workflow
Daan De Meyer [Wed, 18 Mar 2026 11:55:45 +0000 (12:55 +0100)] 
ci: Stop using subagents in claude-review workflow

As it seems impossible to prevent claude from receiving notifications
about subagents finishing after it has produced structured output, which
breaks the structured output as it has to be the final reply, let's stop
using subagents and background tasks completely to avoid the issue.

2 months agomeasure: make tpm_log_tagged_event() measure CC as well
Vitaly Kuznetsov [Fri, 13 Mar 2026 12:02:51 +0000 (13:02 +0100)] 
measure: make tpm_log_tagged_event() measure CC as well

tpm_log_tagged_event() only measures the event to the TPM while
tpm_log_ipl_event() measures the event both to the TPM and CC. Fix the
inconsistency.

Note, this is a potentially breaking change for TDX guests as systemd will
now measure more stuff to the MRTD/RTMRs, reference values for attestation may
need to be adjusted.

Found by Claude Code Review.

2 months agosd-dlopen: make macros to generate .notes.dlopen sections public API (#41047)
Luca Boccassi [Wed, 18 Mar 2026 12:33:58 +0000 (12:33 +0000)] 
sd-dlopen: make macros to generate .notes.dlopen sections public API (#41047)

If this new scheme of adding dependencies is supposed to be used more
widely we need to start making it easy to add them. So add a new
self-contained header that projects can simply include without the need
to link against libsystemd itself. This will allow them to generate
`.notes.dlopen` sections:

```
> readelf -p .note.dlopen ./l2md

String dump of section '.note.dlopen':
  [     a]  |@FDO
  [    10]  [{"feature":"manifest-json","description":"Manifest-based change detection via gzip and JSON parsing","priority":"suggested","soname":["libz.so.1","libsystemd.so.0"]}]
  [    c2]  |@FDO
  [    c8]  [{"feature":"manifest-http","description":"HTTP transport for lore.kernel.org manifest fetch","priority":"suggested","soname":["libcurl.so.4"]}]
```

2 months agoci: Allow all commands in claude-review workflow
Daan De Meyer [Wed, 18 Mar 2026 11:30:41 +0000 (12:30 +0100)] 
ci: Allow all commands in claude-review workflow

claude is asking for permissions in the logs, let's grant it access
to execute all commands to avoid the permission denials.

2 months agoci: Enable unpriv user namespaces for claude-review
Daan De Meyer [Wed, 18 Mar 2026 11:24:34 +0000 (12:24 +0100)] 
ci: Enable unpriv user namespaces for claude-review

Required for bubblewrap to work properly.

2 months agoansi-color: fix SYSTEMD_COLORS=true regression when output is piped
Nandakumar Raghavan [Mon, 16 Mar 2026 10:42:08 +0000 (10:42 +0000)] 
ansi-color: fix SYSTEMD_COLORS=true regression when output is piped

The SYSTEMD_COLORS=true/1/yes no longer forced colors
when stdout was not a TTY (e.g. piped), because the COLOR_TRUE bypass
of the terminal_is_dumb() check was accidentally dropped.

Restore the old behavior by guarding the TTY check with
`m != COLOR_TRUE`, so an explicit boolean "true" value continues to
unconditionally force color output regardless of whether stdout is a TTY
or whether $NO_COLOR is set.

2 months agoci: Bump number of turns for claude and mention turns in prompt
Daan De Meyer [Wed, 18 Mar 2026 10:46:01 +0000 (11:46 +0100)] 
ci: Bump number of turns for claude and mention turns in prompt

claude keeps failing by its subagents completing after it has already
written the review for large prs. It seems to run out of turns, tries
to get the subagents to post partial reviews but doesn't seem to stop
them.

Let's insist that it waits for background tasks to stop but let's also
increase the max turns a bit so it doesn't run out as quickly.

2 months agoci: Enable network isolation for claude and allow most tools
Daan De Meyer [Wed, 18 Mar 2026 10:28:55 +0000 (11:28 +0100)] 
ci: Enable network isolation for claude and allow most tools

claude wants to use python to access the JSON context so let's allow
it. Since python3 basically allows you to reimplement every other tool,
let's just enable all tools except the web related ones but enable network
isolation so it can't try to exfiltrate anything via python.

2 months agorepart: add --grain-size= option for partition alignment
Nandakumar Raghavan [Wed, 25 Feb 2026 06:38:31 +0000 (06:38 +0000)] 
repart: add --grain-size= option for partition alignment

Add a --grain-size= CLI option to override the default 4 KiB partition
alignment grain. Setting --grain-size=1M matches the alignment used by
fdisk/parted and fixes misaligned partitions after small fixed-size
partitions like the 16 KiB verity-sig partition.

Also fix context_place_partitions() to re-align the start offset after
each partition, not just once per free area. Without this, a small
partition would cause all subsequent partitions in the same free area
to start at an unaligned offset.

2 months agodocs: update security policy to suggest GH advisories
Luca Boccassi [Tue, 17 Mar 2026 18:26:04 +0000 (18:26 +0000)] 
docs: update security policy to suggest GH advisories

2 months agoci: reeanble compilation test with clang -O2, disable -Wmaybe-uninitialized for old gcc 41003/head
Zbigniew Jędrzejewski-Szmek [Mon, 9 Mar 2026 12:18:22 +0000 (13:18 +0100)] 
ci: reeanble compilation test with clang -O2, disable -Wmaybe-uninitialized for old gcc

In CI we get spurious failures about unitialized variables with gcc
versions older then (depending on the case) 12, 13, or 14. Let's only
try to do this check with newer gcc which returns more useful results.
At the same time, do compile with both gcc and clang at -O2, just
disable the warning.

The old logic seems to have been confused. We compile with -Wall, at
least in some cases, which includes -Wmaybe-unitialized. So if we
_don't_ want it, we need to explicitly disable it.

2 months agobless-boot: use verb function argument
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 16:13:58 +0000 (17:13 +0100)] 
bless-boot: use verb function argument

2 months agoreport: use verb function argument
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 16:03:47 +0000 (17:03 +0100)] 
report: use verb function argument

2 months agotree-wide: extend verbs functions with extra per-verb data parameter
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 13:16:08 +0000 (14:16 +0100)] 
tree-wide: extend verbs functions with extra per-verb data parameter

We often have a pattern where the same verb function is used for
multiple actions. This leads to an antipattern where we figure out what
action needs to be taken from argv[0] multiple times: often once in
parse_argv() to figure out what options are allowed, then once again
implicitly in dispatch_verb(), and then again in the action verb itself.
Let's allow passing a parameter into the verb to simplify this.

This matches a pattern we have in conf-parser.h, where we have both
void *userdata (more global) and void *data (per-config item). Here,
I opted for uintptr_t userdata. It seems that most of the time we'll
want to just pass an enum value. This works OK with no casts. I also
tried a void* and union. In both cases, much more boilerplate is needed:
either a cast or a macro to help avoid compiler warnings. uintptr_t
seems generic enough to cover foreseeable usecases with no fuss.

This is a noop refactoring. See next commit for an example.

2 months agoupdate-utmp: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 13:03:10 +0000 (14:03 +0100)] 
update-utmp: call all verb functions verb_*

2 months agopull: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:32:05 +0000 (13:32 +0100)] 
pull: call all verb functions verb_*

2 months agoimport-fs: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:29:54 +0000 (13:29 +0100)] 
import-fs: call all verb functions verb_*

2 months agoimport: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:27:59 +0000 (13:27 +0100)] 
import: call all verb functions verb_*

2 months agoexport: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:27:03 +0000 (13:27 +0100)] 
export: call all verb functions verb_*

2 months agooomctl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:18:14 +0000 (13:18 +0100)] 
oomctl: call all verb functions verb_*

2 months agoportablectl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:17:11 +0000 (13:17 +0100)] 
portablectl: call all verb functions verb_*

2 months agoresolvectl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:15:41 +0000 (13:15 +0100)] 
resolvectl: call all verb functions verb_*

2 months agotimedatectl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:13:37 +0000 (13:13 +0100)] 
timedatectl: call all verb functions verb_*

2 months agoudevadm: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:11:18 +0000 (13:11 +0100)] 
udevadm: call all verb functions verb_*

2 months agouserdbctl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:06:44 +0000 (13:06 +0100)] 
userdbctl: call all verb functions verb_*

2 months agonetworkctl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:05:09 +0000 (13:05 +0100)] 
networkctl: call all verb functions verb_*

2 months agomachinectl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 12:00:39 +0000 (13:00 +0100)] 
machinectl: call all verb functions verb_*

2 months agohostnamectl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 11:56:09 +0000 (12:56 +0100)] 
hostnamectl: call all verb functions verb_*

2 months agolocalectl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 11:56:03 +0000 (12:56 +0100)] 
localectl: call all verb functions verb_*

2 months agoimportctl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 11:51:19 +0000 (12:51 +0100)] 
importctl: call all verb functions verb_*

2 months agologinctl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 11:47:40 +0000 (12:47 +0100)] 
loginctl: call all verb functions verb_*

2 months agocoredumpctl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 11:45:01 +0000 (12:45 +0100)] 
coredumpctl: call all verb functions verb_*

2 months agobusctl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 11:33:06 +0000 (12:33 +0100)] 
busctl: call all verb functions verb_*

2 months agohomectl: call all verb functions verb_*
Zbigniew Jędrzejewski-Szmek [Fri, 6 Mar 2026 11:26:05 +0000 (12:26 +0100)] 
homectl: call all verb functions verb_*

This series of renaming patches has a few overlapping motivations:
- when functions are named uniformly, it code is more obvious
- I want to add a parameter to all verb functions
- in #40880 uniform naming of verb functions will be necessary too.
So let's do this cleanup. Some tools had a mix of functions w/ and
w/o "verb_", which looked messy.

2 months agosd-dlopen: relicense header to MIT-0 41047/head
Christian Brauner [Thu, 12 Mar 2026 12:51:16 +0000 (13:51 +0100)] 
sd-dlopen: relicense header to MIT-0

Relicense sd-dlopen.h from LGPL-2.1-or-later to MIT-0 so that
downstream projects can copy/paste the macros directly without
introducing a build dependency on the systemd headers.

Acked-by: Lennart Poettering <lennart@amutable.com>
Acked-by: Luca Boccassi <luca.boccassi@gmail.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2 months agoman: add sd-dlopen(3) and SD_ELF_NOTE_DLOPEN(3) man pages
Christian Brauner [Wed, 11 Mar 2026 14:55:08 +0000 (15:55 +0100)] 
man: add sd-dlopen(3) and SD_ELF_NOTE_DLOPEN(3) man pages

Document the new public sd-dlopen.h header and SD_ELF_NOTE_DLOPEN()
macro with associated constants. Includes usage examples for single
and multiple soname annotations.

Signed-off-by: Christian Brauner <brauner@kernel.org>
2 months agodlfcn-util: migrate to public SD_ELF_NOTE_DLOPEN() API
Christian Brauner [Wed, 11 Mar 2026 14:55:02 +0000 (15:55 +0100)] 
dlfcn-util: migrate to public SD_ELF_NOTE_DLOPEN() API

Switch all internal callers from the private ELF_NOTE_DLOPEN() macro to
the new public SD_ELF_NOTE_DLOPEN() API from sd-dlopen.h, and remove
the now-redundant macro definitions from dlfcn-util.h.

Signed-off-by: Christian Brauner <brauner@kernel.org>
2 months agosd-dlopen: add header-only public API for FDO .note.dlopen ELF metadata
Christian Brauner [Wed, 11 Mar 2026 14:54:54 +0000 (15:54 +0100)] 
sd-dlopen: add header-only public API for FDO .note.dlopen ELF metadata

Expose ELF note dlopen annotation macros as a public header-only API in
sd-dlopen.h. This allows any project to embed .note.dlopen metadata in
their ELF binaries by simply including the header - no runtime linkage
against libsystemd is required.

The header provides SD_ELF_NOTE_DLOPEN() and associated macros/constants
implementing the ELF dlopen metadata specification for declaring optional
shared library dependencies loaded via dlopen() at runtime.

Signed-off-by: Christian Brauner <brauner@kernel.org>
2 months agocoredump: capture crashing thread ID and name
noxiouz [Fri, 13 Mar 2026 00:36:08 +0000 (00:36 +0000)] 
coredump: capture crashing thread ID and name

Add %I (TID in initial PID namespace) to the core_pattern, so the
kernel passes the crashing thread's TID to systemd-coredump. Use it
to read the thread's comm name from /proc/<tid>/comm and log both as
new journal fields:

  COREDUMP_TID=       — TID of the crashing thread
  COREDUMP_THREAD_NAME= — comm name of the crashing thread

These fields are also stored as xattrs on external coredump files
(user.coredump.tid, user.coredump.thread_name) and displayed by
coredumpctl info alongside the PID line.

For single-threaded processes the TID equals the PID and thread_name
equals comm; for multi-threaded programs with named worker threads
(pthread_setname_np / PR_SET_NAME) this identifies which thread
crashed without needing to open the coredump file itself.

The new fields are optional in the socket forwarding path, so older
systemd-coredump senders are handled gracefully.

Co-developed-by: Claude <claude@anthropic.com>
2 months agofind-esp: introduce _full() flavour of ESP/XBOOTLDR discovery functions
Lennart Poettering [Fri, 13 Mar 2026 10:53:57 +0000 (11:53 +0100)] 
find-esp: introduce _full() flavour of ESP/XBOOTLDR discovery functions

These functions take so many return paramaters, and in many of our cases
we don't actually needt them. Hence introduce _full() flavours of the
funcs, and hide the params by default.

2 months agoci: Reduce retention for pr-context JSON file to a week
Daan De Meyer [Wed, 18 Mar 2026 09:35:28 +0000 (10:35 +0100)] 
ci: Reduce retention for pr-context JSON file to a week

We don't need to keep this around fpr 90 days, let's keep it around
for a week.

2 months agoci: Enable users without write action to the repo to access claude review
Daan De Meyer [Wed, 18 Mar 2026 07:59:48 +0000 (08:59 +0100)] 
ci: Enable users without write action to the repo to access claude review

The labelling approach introduced in 6089075265765b43e6666e4d5978292a32501496
means contributors can now trigger the workflow on their own when the label
is added by a maintainer and they update the PR. Hence we need to allow all
users to access the claude code action. This is safe because we already gate
the workflow ourselves to only the contributors that we want to allow.
Additionally, the claude code job has no permissions anymore except read access
to the repository and can execute very limited tools, so this should be safe.

2 months agoci: Fix artifact name in claude-review workflow
Daan De Meyer [Wed, 18 Mar 2026 08:11:09 +0000 (09:11 +0100)] 
ci: Fix artifact name in claude-review workflow

The name doesn't actually matter, it gets replaced with the name
of the file when not archiving. So stop passing a name and pass in
the filename as the name when downloading the artifact.

2 months agoci: Use artifacts to pass around pr context
Daan De Meyer [Tue, 17 Mar 2026 23:02:26 +0000 (00:02 +0100)] 
ci: Use artifacts to pass around pr context

The current approach runs into issues on large prs:
https://github.com/systemd/systemd/actions/runs/23220105199/job/67490722033

2 months agoci: Add issue comments to pr context for claude-review as well
Daan De Meyer [Tue, 17 Mar 2026 22:10:01 +0000 (23:10 +0100)] 
ci: Add issue comments to pr context for claude-review as well

Follow up for fb513a7e1c5aa5f1ac7a274a0ebf9a6ed7fc02d1. The issue
comments are the regular comments left on the pr.

2 months agoci: Fetch context for claude-review job in setup job
Daan De Meyer [Tue, 17 Mar 2026 21:14:15 +0000 (22:14 +0100)] 
ci: Fetch context for claude-review job in setup job

Rather than have claude fetch the context itself, let's fetch the
context for it in the setup job. This has the following advantages:

- We can reduce the permissions granted to the claude job
- claude has less opportunity to mess up trying to fetch the context
  itself. Specifically, it keeps spawsning a background task to fetch
  the PR branch which messes up the structured output at the end, causing
  the review job to fail. By pre-fetching the context it won't have to
  spawn the background task. Additionally, we limit the git commands it
  can execute to local ones to ensure it doesn't try to fetch the PR branch.
  Finally, we fetch the branch ourselves as pr-review so claude can look at it
  to review the PR.

2 months agomeson: switch version to 261~devel
Luca Boccassi [Tue, 17 Mar 2026 20:02:38 +0000 (20:02 +0000)] 
meson: switch version to 261~devel

2 months agoFinalize meson.version for v260 v260
Luca Boccassi [Tue, 17 Mar 2026 19:36:34 +0000 (19:36 +0000)] 
Finalize meson.version for v260

2 months agohwdb: fix ABS_PRESSURE axis range for Goodix GXTP5100 touchpad
huchangzai [Tue, 17 Mar 2026 02:01:42 +0000 (10:01 +0800)] 
hwdb: fix ABS_PRESSURE axis range for Goodix GXTP5100 touchpad

The Goodix GXTP5100 touchpad (HID bus 0x0018, vendor 0x27C6, product
0x01E9), found in the Lenovo ThinkBook 16 G7+ IAH and ThinkPad X9 15
Gen 1, has a kernel driver bug where ABS_PRESSURE (axis 24 / 0x18) is
reported with min=0, max=0.

This invalid axis range causes libinput to reject the device with:
  "kernel bug: ABS_PRESSURE has min == max (both 0)"

The touchpad hardware itself is functional and reports valid ranges for
all other axes:
  ABS_X:  min=0, max=4149, resolution=31
  ABS_Y:  min=0, max=2147, resolution=27
  ABS_MT_POSITION_X/Y: valid ranges

Root cause: the kernel hid-multitouch driver applies a "GT7868Q report
descriptor fixup" to this device (the HID descriptor is malformed and
fails hid-generic probe with EINVAL). The fixup corrects most axes but
leaves ABS_PRESSURE with an invalid 0:0 range.

This hwdb entry overrides ABS_PRESSURE to a valid 0:255 range, allowing
libinput to accept and initialize the device.

Kernel version: 6.17.0-19-generic
Device path: /sys/bus/hid/drivers/hid-multitouch/0018:27C6:01E9.0001

2 months agoChores for v260 (#41140)
Luca Boccassi [Tue, 17 Mar 2026 19:18:49 +0000 (19:18 +0000)] 
Chores for v260 (#41140)

2 months agoTwo claude-review improvements (#41142)
Daan De Meyer [Tue, 17 Mar 2026 19:09:13 +0000 (20:09 +0100)] 
Two claude-review improvements (#41142)

2 months agoci: Allow attaching claude-review label to PRs for automatic review 41142/head
Daan De Meyer [Tue, 17 Mar 2026 18:47:35 +0000 (19:47 +0100)] 
ci: Allow attaching claude-review label to PRs for automatic review

- If a pr is labeled with claude-review, review it immediately
- If a pr labeled with claude-review is updated, review it regardless
of the author
- If a pr is opened by a maintainer, review it and add the claude-review
label. If the claude-review label is later removed, the pr won't be
auto-reviewed anymore.

2 months agoci: Fix allowed tools in claude-review
Daan De Meyer [Tue, 17 Mar 2026 18:46:31 +0000 (19:46 +0100)] 
ci: Fix allowed tools in claude-review

Bash(gh:api *) wasn't actually working. Turns out the colon syntax
is deprecated and unnecessary. Let's stop using it which also fixes
the bug so that gh api calls are allowed now.

2 months agomkosi: fix typo in UKI profile title
Antonio Alvarez Feijoo [Tue, 17 Mar 2026 14:39:27 +0000 (15:39 +0100)] 
mkosi: fix typo in UKI profile title

2 months agoNEWS: finalize for v260 41140/head
Luca Boccassi [Tue, 17 Mar 2026 17:41:20 +0000 (17:41 +0000)] 
NEWS: finalize for v260

2 months agoNEWS: update contributors list
Luca Boccassi [Tue, 17 Mar 2026 17:28:50 +0000 (17:28 +0000)] 
NEWS: update contributors list

2 months agoUpdate hwdb
Luca Boccassi [Tue, 17 Mar 2026 17:38:01 +0000 (17:38 +0000)] 
Update hwdb

ninja -C build update-hwdb

2 months agoci: Add automatic review thread resolution to claude-review workflow
Daan De Meyer [Mon, 16 Mar 2026 19:44:28 +0000 (20:44 +0100)] 
ci: Add automatic review thread resolution to claude-review workflow

Claude now identifies which existing review comment threads should be
resolved (because the issue was addressed or someone disagreed) and
returns their REST API IDs in a new `resolve` array in the structured
output. The post job uses GraphQL to map comment IDs to threads and
resolve them.

Also switches all GitHub data fetching from MCP tools to `gh api` calls,
since the MCP tool strips comment IDs during its GraphQL-to-minimal
conversion and cannot be used for thread resolution.

The thread resolution GraphQL pagination is wrapped in a try/catch so
that a failure to fetch threads degrades gracefully instead of aborting
the entire post job. Unmatched comment IDs are logged for debuggability.

Adds explicit instructions to complete all data fetching before starting
review and to cancel background tasks before returning structured output,
working around a claude-code-action issue where a late-completing
background task triggers a new conversation turn that overwrites the
structured JSON result.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2 months agococcinelle: fix exclusion path
David Tardon [Tue, 17 Mar 2026 08:18:54 +0000 (09:18 +0100)] 
coccinelle: fix exclusion path

This file was moved 5 years ago...

Follow-up for commits 99b9f8fddd3f15ca309cc6f068fc3c33caa9fd4e and
6dcabd5f5e8d21a1ef83ea4294539ad9874cd536 .

2 months agosysusers: disallow --cat-config with --inline
Zbigniew Jędrzejewski-Szmek [Tue, 10 Mar 2026 21:56:00 +0000 (22:56 +0100)] 
sysusers: disallow --cat-config with --inline

It doesn't work and it doesn't make much sense.

2 months agoadd-ug-bo-translation
dongshengyuan [Mon, 16 Mar 2026 06:29:37 +0000 (14:29 +0800)] 
add-ug-bo-translation

2 months 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

2 months 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)

2 months 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>