Commit Graph
86677 Commits
Author SHA1 Message Date
Lennart Poettering ab83c7489d sysupdated: Split Update() into Acquire() and Install() D-Bus methods (#40628)
These mirror the `sysupdate acquire` and `sysupdate install` verbs,
which are themselves a split of `sysupdate update` into downloading and
installing stages.

I have dropped the existing `Update()` method in the final commit, as
per the suggestion on
https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/2004#note_2145880.
If the D-Bus API for `sysupdated` is considered stable now, though, I
can drop that commit.

CC @AdrianVovk

Fixes https://github.com/systemd/systemd/issues/34814
2026-02-23 22:08:37 +01:00
Daan De Meyer 868fdc5520 Several follow-ups for JournalAccess varlink interface (#40794) 2026-02-23 20:17:31 +01:00
Philip Withnall 8b5374d6c2 sysupdated: Drop the Update() D-Bus method
Now that it’s been replaced by `Acquire()` and `Install()`, there’s no
need to expose it as a separate method. Wrappers around `sysupdated` can
still expose an ‘update’ convenience verb by calling those two methods.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Helps: https://github.com/systemd/systemd/issues/34814
2026-02-23 16:35:19 +00:00
Philip Withnall 7537717aed test: Expand sysupdate test to test updatectl update
This further expands the sysupdate test to run the suite a fourth time,
testing that `updatectl update` behaves the same as `sysupdate update`
and `sysupdate acquire; sysupdate update --offline`.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2026-02-23 16:35:15 +00:00
Philip Withnall b0ca987cd9 updatectl: Expose partial/pending updates in the updatectl list output
And expand the tests to catch if any more JSON fields are added to the
sysupdated output in future without being added to `updatectl`’s parser.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Helps: https://github.com/systemd/systemd/issues/34814
2026-02-23 16:35:10 +00:00
Philip Withnall a5ff474a2b updatectl: Use sysupdated’s Acquire() and Install() methods
Rather than calling `Update()`. This should allow us to eventually drop
`Update()`.

This should just be an internal change, and should not result in any
user-visible changes to the behaviour of `updatectl update`.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Helps: https://github.com/systemd/systemd/issues/34814
2026-02-23 16:35:05 +00:00
Philip Withnall f0b2ea63f4 sysupdated: Add Acquire() and Install() D-Bus methods
These mirror the `sysupdate acquire` and `sysupdate update --offline`
verbs, which are themselves a split of `sysupdate update` into
downloading and installing stages.

The existing `sysupdated` `Update()` method is kept for now, for
convenience. It might be dropped in future.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Helps: https://github.com/systemd/systemd/issues/34814
2026-02-23 16:35:01 +00:00
Mike Yuan d39b103719 core: Introduce ConditionPathIsSocket= (#40791) 2026-02-23 17:07:28 +01:00
DaanDeMeyer f29edb227c repart: Use new mkfs.xfs support for populating from directories
xfsprogs 6.17.0 added support for populating xfs filesystems from
directories. As this supports extended attributes unlike our current
hack with protofiles. Let's make use of the new feature in mkfs-util.c

As there's no clean way to do feature detection on the mkfs.xfs binary,
we drop support for the old hack with protofiles that we had before.
2026-02-23 15:04:41 +00:00
Daan De Meyer a51e5bd1f1 core: Introduce ConditionPathIsSocket= 2026-02-23 13:08:49 +01:00
Daan De Meyer 54b745d7bb test-condition: Migrate to new assertion macros 2026-02-23 12:28:10 +01:00
Daan De Meyer a2a78602b0 mountfsd: Try to polkit auth when the verity key is not available
If we include a verity signature but the corresponding key is not in
the kernel keyring or userspace, try to get polkit auth similar to how
we do the same if the image doesn't pass the policy.
2026-02-23 12:11:04 +01:00
Luca Boccassi 0e3e62cfc7 Translations update from Fedora Weblate (#40789)
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)
2026-02-23 10:54:21 +00:00
Mike Yuan d8302c2fd9 journalctl-vl-server: allow querying units for specific uid in system scope
This also moves journal_add_unit_matches() back to
journalctl-filter.[ch], as I see more appropriate.
2026-02-23 10:43:00 +01:00
Mike Yuan bd994b2f81 journalctl-vl-server: do not output in reverse order
While at it, do not log from varlink method callback,
as per our usual style.
2026-02-23 10:21:57 +01:00
Mike Yuan 9d193c8f13 journalctl-vl-server: 'entry' is never NULL 2026-02-23 10:21:57 +01:00
Mike Yuan ffe69b3fa1 journalctl-vl-server: use SD_JSON_BUILD_PAIR_VARIANT 2026-02-23 10:21:57 +01:00
Mike Yuan fd0b6187be journalctl-vl-server: return proper error if unit pattern has no match
Note that SD_VARLINK_ERROR_INVALID_PARAMETERS requires
the invalid param name to be specified, hence we would
otherwise have reported an invalid INVALID_PARAMETERS
error ;)
2026-02-23 10:21:56 +01:00
Mike Yuan 4ed5e84bea logs-show: clean up journal_entry_to_json() a bit
* Make sure ret is initialized on success return
* Drop unneeded 'object' variable
* No need to ref/unref json objects when constructing
  intermediary array
2026-02-23 10:21:56 +01:00
Mike Yuan eaeceb5fb6 units/user/systemd-journalctl.socket: drop MaxConnectionsPerSource=
For AF_UNIX sockets connection sources are accounted for
based on UID, hence in user scope this effectively
limits total number of connections, which is not really
desirable.
2026-02-23 10:21:56 +01:00
Mike Yuan 2afe8e28f8 units/systemd-journalctl@.service: run with DynamicUser=yes
Follow-up for a109189fab

This follows the existing practice for
systemd-journal-{upload,gatewayd}.service,
as I think allocating a full-blown user
specifically for this purpose is an overkill.
And with DynamicUser=yes we can also take
advantage of implied sandboxing.
2026-02-23 10:21:56 +01:00
Mike Yuan 2619656950 units/systemd-journalctl@.service: require mount for /var/log/journal/ 2026-02-23 10:21:56 +01:00
Mike Yuan 5c247bbd57 units/systemd-pcrlock.socket: drop [Install] section
The socket is statically enabled.
2026-02-23 10:21:55 +01:00
Mike Yuan c71aa4047b TODO: drop completed entry 2026-02-23 10:21:55 +01:00
Ettore Atalan 1f0bdc7cf6 po: Translated using Weblate (German)
Currently translated at 100.0% (264 of 264 strings)

Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/de/
Translation: systemd/main
2026-02-23 09:07:38 +00:00
Yaron Shahrabani 174be83f79 po: Translated using Weblate (Hebrew)
Currently translated at 100.0% (264 of 264 strings)

Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/he/
Translation: systemd/main
2026-02-23 09:07:38 +00:00
Antonio Alvarez Feijoo 29a5ffb82b man/systemd.mstack: use <varname> instead of <variable>
Otherwise, `<variable>location</variable>` is rendered:

```
[2365/2925] Generating man/systemd.mstack.7 with a custom command
Element variable in namespace '' encountered in para, but no template matches.
```
2026-02-23 10:07:30 +01:00
Lennart Poettering 3a7486c9fc journalctl: add new varlink GetEntries endpoint (#40650)
journalctl: add new varlink read service to get entries

We already have some varlink support for the journal to perform
some actions like `Rotate`. It would be nice to be able to query
the journal via varlink too so this commit adds a new varlinkctl
based journal service that exposes a single GetEntries() call
to retrieve journal entries. Basic filtering is supported and
we can expand the API as needed.

This is a separate `io.systemd.JournalControl` [1] service from the
existing `io.systemd.Journald` to decouple read and write (thanks
to Lennart for suggesting this).

This also extracts some shared helper so that we do not duplicate
code when generating the json or when adding the filters.

[1] The name mirrors the bootctl->io.systemd.BootControl naming.
2026-02-22 15:14:09 +01:00
Luca Boccassi 05f5156ad1 core: validate ref_uid before checking in AttachProcesses method
ref_uid is initialized to invalid, and is only set in some
circumstances. The AttachProcesses will attempt to check it,
and assert that it is valid. Check beforehand.

Reported as YWH-PGM9780-89

Follow-up for 59857b672c
2026-02-22 15:13:02 +01:00
Michael Vogt 3660f0e7da TODO: dropped todo about journalctl varlink support 2026-02-21 13:02:39 +01:00
Michael Vogt a109189fab journalctl: add new varlink read service to get entries
We already have some varlink support for the journal to perform
some actions like `Rotate`. It would be nice to be able to query
the journal via varlink too so this commit adds a new varlinkctl
based journal service that exposes a single GetEntries() call
to retrieve journal entries. Basic filtering is supported and
we can expand the API as needed.

This is a separate `io.systemd.JournalControl` [1] service from the
existing `io.systemd.Journald` to decouple read and write (thanks
to Lennart for suggesting this).

This also extracts some shared helper so that we do not duplicate
code when generating the json or when adding the filters.

[1] The name mirrors the bootctl->io.systemd.BootControl naming.
2026-02-21 13:02:38 +01:00
Mike Yuan bd7ba0a645 parse-argument: make parse_tristate_argument() do something useful (#40652)
Alternative to #37751
2026-02-21 03:10:00 +01:00
Mike Yuan f04023d35f vmspawn: clean up OVMF secure boot support check a bit
find_ovmf_config() would do filtering based on arg_secure_boot
already, hence the mismatch can only occur if we're using
user-specified firmware. So be explicit about this in log.
2026-02-20 21:21:01 +01:00
Mike Yuan 39a5b957e1 vmspawn: use parse_tristate_argument_with_auto() 2026-02-20 21:21:01 +01:00
Mike Yuan 577e5e9a5e parse-argument: make parse_tristate_argument() do something useful
I expressed the issue I have with parse_tristate_argument()
in #37751: it doesn't add any value to direct use of parse_tristate();
on the contrary, it doesn't support means to reset the arg to "auto"/-1 state.
The mere reason it existed is that we need a int type ret param.

Since the previous attempt to address this mess failed, let's
try to make the function more useful by making it accept "auto".
I figure this is useful on its own.

As requested in
https://github.com/systemd/systemd/pull/40652#discussion_r2831833996,
the function name is suffixed with _with_auto() to establish
that "auto" is handled internally.
2026-02-20 21:20:45 +01:00
Ryan Zeigler 774e805959 Add BNCF NewBook 11 ACCEL_MOUNT_MATRIX to 60-sensor.hwdb
Corrects DE autorotation

Device description: https://www.bncfai.com/product/773/
2026-02-20 19:59:47 +00:00
Yu Watanabe e17ef43f9d man/report: fix typo
Follow-up for e83cbc9372.
2026-02-21 03:00:51 +09:00
Michael Vogt 8471eca549 machine: switch CleanPool to SD_VARLINK_REQUIRES_MORE
The CleanPool requires --more to be set and checks that in
`vl_method_clean_pool`. By switching to SD_VARLINK_REQUIRES_MORE
this will automatically be handled and is more clear to
the varlink users.

Based on the comment from Lennart in
https://github.com/systemd/systemd/pull/40650#discussion_r2832378002
and the work done by Mike in 09388a6b9e (thanks!).
2026-02-20 18:01:08 +01:00
Luca Boccassi 699007a44f repart: Report correct current disk size and error (#39813) 2026-02-20 17:00:28 +00:00
Antonio Alvarez Feijoo 16e7869cf3 mstack: parse --mkdir option
```
systemd-mstack: unrecognized option '--mkdir'
```

Follow-up for 8187cd18d6
2026-02-20 16:56:16 +01:00
Jim Spentzos e35b3494e1 po: Translated using Weblate (Greek)
Currently translated at 36.7% (97 of 264 strings)

Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/el/
Translation: systemd/main
2026-02-20 13:46:43 +00:00
Julian Sparber f94d3180b0 repart-varlink: Consider only managed parititions for size errors
Report DiskTooSmall only if partitions managed by repart don't fit the
disk. Because if the disk is already full with forigin partitions we
would always report DiskTooSmall instead of InsufficentFreeSpace.
2026-02-20 11:36:35 +01:00
Julian Sparber 9ee029c8f6 repart-varlink: Calculate the size of foreign partitions
To decide whether the disk is to small or has insufficient free space we
need to know how much of the disk is filled with foreign partitions.
The calculated size is used in a future commit.
2026-02-20 11:23:09 +01:00
Julian Sparber 5036c9f596 repart: Sum partitions size to get current disk size instead of using total size
When working on disks the disk may have a total size bigger then the
actual allocated size, therefore sum up the current partitions to
calculate the current disk size instead of asuming that the entire disk
is currently allocated.
2026-02-20 11:19:10 +01:00
Yu Watanabe c871afd311 Several fixlets for issues found by Coverity (#40765) 2026-02-20 19:13:37 +09:00
Lennart Poettering b33669da2b systemd-report: show some love (#40735) 2026-02-20 10:21:31 +01:00
Yu Watanabe ff3b44e780 Various improvements (#40759) 2026-02-20 16:31:38 +09:00
Lennart Poettering 91ad0225e9 update TODO 2026-02-20 08:25:12 +01:00
Lennart Poettering 9277393d7b report: install systemd-report binary to /usr/lib/systemd/ for now
The tool should not be considered stable, and those things we usually
place in /usr/lib/systemd, and not in $PATH.

We can move that to $PATH once we are confident it's gonna stay the way
it is.
2026-02-20 08:25:12 +01:00
Lennart Poettering f3aff0c20a ci: add proper CI test for systemd-report 2026-02-20 08:25:12 +01:00