]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
6 days agojournal: do not use typecasts for range checks 40448/head
Lennart Poettering [Wed, 21 Jan 2026 22:48:29 +0000 (23:48 +0100)] 
journal: do not use typecasts for range checks

6 days agojournal: some whitespace fixes
Lennart Poettering [Wed, 21 Jan 2026 22:48:14 +0000 (23:48 +0100)] 
journal: some whitespace fixes

6 days agoupdate TODO
Lennart Poettering [Fri, 23 Jan 2026 21:19:18 +0000 (22:19 +0100)] 
update TODO

7 days agopam_systemd: remove handling of obsolete "existing" attr from CreateSession() call...
Mike Yuan [Fri, 23 Jan 2026 16:50:44 +0000 (17:50 +0100)] 
pam_systemd: remove handling of obsolete "existing" attr from CreateSession() call (#40432)

7 days agohwdb: Update Lenovo Legion Go Models
Derek J. Clark [Thu, 22 Jan 2026 20:52:03 +0000 (12:52 -0800)] 
hwdb: Update Lenovo Legion Go Models
- Different BIOS versions of the Legion Go 2 can init the keyboard
  device as set 1 (appears as raw set 2) or as set 2 (appears as
  translated set 2). Add the Legion Go 2 to the Translated list.
- While at it, specify the models in a more verbose manner for
  posterity.

Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
7 days agoansi-color: new option SYSTEMD_COLORS=auto-16/auto-256/auto-24bit (#40303)
Peter Oliver [Fri, 23 Jan 2026 12:54:31 +0000 (12:54 +0000)] 
ansi-color: new option SYSTEMD_COLORS=auto-16/auto-256/auto-24bit (#40303)

Setting SYSTEMD_COLORS=auto-16 is like SYSTEMD_COLORS=16 if output is to
a non-dumb TTY, and like SYSTEMD_COLORS=no otherwise.

Relates to
https://github.com/systemd/systemd/issues/15498#issuecomment-1682025186

7 days agohostnamed: after unescaping fancy name, validate it's valid UTF-8
Lennart Poettering [Thu, 22 Jan 2026 21:50:43 +0000 (22:50 +0100)] 
hostnamed: after unescaping fancy name, validate it's valid UTF-8

The fancy name could contain arbitrary bytes, in escaped fashion. Before
using it, let's validate that this contains only valid UTF-8.

(Note that D-Bus might kick us off the bus if we don't ensure everything
we send around is UTF-8).

(While we are at it, do the same in PID 1, even though it's not that
important there)

Addresses this issue found by @YHNdnzj:

https://github.com/systemd/systemd/pull/40367#discussion_r2714614301

Follow-up for: #40367

7 days agoman/fstab-generator: correct root= options
Antonio Alvarez Feijoo [Fri, 23 Jan 2026 11:19:41 +0000 (12:19 +0100)] 
man/fstab-generator: correct root= options

Remove duplicate "fstab" option, and add missing "tmpfs" and "bind:" options.

7 days agopam_systemd: remove handling of obsolete "existing" attr from CreateSession() call 40432/head
Mike Yuan [Thu, 22 Jan 2026 19:41:24 +0000 (20:41 +0100)] 
pam_systemd: remove handling of obsolete "existing" attr from CreateSession() call

Follow-up for b80120c4cba7d134b5437a58437a23fdf7ab2084

After the mentioned commit, logind returns an error if the process
already lives in a session, and register_session() short-circuits
without setting systemd.existing flag. Hence systemd.existing
is either false or unset for pam_sm_close_session(), making
the whole logic effectively NOP. Kill it with fire.

7 days agohostnamed: use INDEXES_TO_MASK where appropriate
Mike Yuan [Thu, 22 Jan 2026 18:25:53 +0000 (19:25 +0100)] 
hostnamed: use INDEXES_TO_MASK where appropriate

Addresses https://github.com/systemd/systemd/pull/40367#discussion_r2714368627

7 days agopam_systemd: fix regression introduced in v258 by preserving the FIFO fd
Franck Bui [Mon, 19 Jan 2026 17:24:12 +0000 (18:24 +0100)] 
pam_systemd: fix regression introduced in v258 by preserving the FIFO fd

Upstream commit 3180c4d introduced a version incompatibility between
pam_systemd.so v258 and logind v257. This is problematic because such version
mismatches can occur in practice: logind still cannot be restarted during a
systemd package upgrade (it's a long-standing limitation, see
https://github.com/systemd/systemd/issues/17308).

When pam_systemd requests a new session, logind v257 returns a FIFO
fd. pam_systemd.so v258 ignores this fd and closes it. logind interprets the
closure as the session leader exiting and immediately terminates the session.

This patch partially reverts commit 3180c4d and restores the handling of the
FIFO fd in pam_systemd. The change is limited to the D-Bus APIs, since the
varlink API was only introduced in logind v258.

Follow-up for 3180c4d46151673a9c985e60f205d4c76a81573f.

8 days agomeson: Drop minimum meson version required for clang-tidy
Daan De Meyer [Wed, 21 Jan 2026 14:54:58 +0000 (15:54 +0100)] 
meson: Drop minimum meson version required for clang-tidy

8 days agoos-release: add a new FANCY_NAME= field to /etc/os-release, similar to PRETTY_NAME...
Lennart Poettering [Wed, 21 Jan 2026 22:57:39 +0000 (23:57 +0100)] 
os-release: add a new FANCY_NAME= field to /etc/os-release, similar to PRETTY_NAME, that may carry ansi sequences + more unicode chars (#40367)

It's sometimes useful include non-ascii unicode chars in an os name, and
give it some ansi coloring. Since we usualy don't want to show that,
introduce a new field for it, and show it at boot and in thostnamectl
only, with safe fallbacks if colors/emojis are not available.

8 days agounits/systemd-portabled: enable NoNewPrivileges=
Mike Yuan [Wed, 21 Jan 2026 19:26:31 +0000 (20:26 +0100)] 
units/systemd-portabled: enable NoNewPrivileges=

As with all other daemons we ship.

8 days agomountfsd: Make singleFileSystem non-nullable
Daan De Meyer [Wed, 21 Jan 2026 18:39:33 +0000 (19:39 +0100)] 
mountfsd: Make singleFileSystem non-nullable

It's always set, so no need to be nullable.

8 days agohostnamectl: show fancy name if available 40367/head
Lennart Poettering [Wed, 14 Jan 2026 17:23:03 +0000 (18:23 +0100)] 
hostnamectl: show fancy name if available

8 days agohostnamed: expose fancy OS name as a field
Lennart Poettering [Mon, 12 Jan 2026 12:46:47 +0000 (13:46 +0100)] 
hostnamed: expose fancy OS name as a field

8 days agopid1: show fancy name field at boot, if specified
Lennart Poettering [Mon, 12 Jan 2026 12:44:54 +0000 (13:44 +0100)] 
pid1: show fancy name field at boot, if specified

8 days agoman: introduce FANCY_NAME field
Lennart Poettering [Mon, 12 Jan 2026 12:40:27 +0000 (13:40 +0100)] 
man: introduce FANCY_NAME field

8 days agoformat-table: add new string cell type that accepts ANSI sequences
Lennart Poettering [Thu, 15 Jan 2026 07:51:05 +0000 (08:51 +0100)] 
format-table: add new string cell type that accepts ANSI sequences

For various usecases it's useful that we can embed ANSI sequences in
cells of tables. For example, I hope we can eventually switch "systemctl
status" output to use the table formatter, and multiple of its fields
contain ANSI sequences (since they pack multiple different pieces
information into the same field, and highlight parts of it to
communicate relevance of distinct parts).

Add a distinct cell type for this, which gets special processing when we
output to a terminal that doesn't support ANSI sequences, and to JSON:
we strip the sequences.

8 days agoTrivial follow-ups for recently merged PRs (#40417)
Mike Yuan [Wed, 21 Jan 2026 18:54:32 +0000 (19:54 +0100)] 
Trivial follow-ups for recently merged PRs (#40417)

9 days agoportable: Enable unpriv operation (#40091)
Daan De Meyer [Wed, 21 Jan 2026 15:46:53 +0000 (16:46 +0100)] 
portable: Enable unpriv operation (#40091)

This does not yet support directory images properly
as systemd itself does not support unpriv directory
images properly yet.

9 days agofdset: do not call fd_get_path() if debug logging is off 40417/head
Mike Yuan [Wed, 21 Jan 2026 14:39:22 +0000 (15:39 +0100)] 
fdset: do not call fd_get_path() if debug logging is off

Follow-up for 89065ada83af55ed9e2350c2df7e315e2e6ad043

9 days agonetwork/dhcp4: send release message before stopping the client
Yu Watanabe [Tue, 20 Jan 2026 09:04:33 +0000 (18:04 +0900)] 
network/dhcp4: send release message before stopping the client

Otherwise, the socket is already closed and sending release will be
anyway skipped.

With this patch, release message is sent before stopping the client.
```
Jan 20 18:29:41 systemd[1]: Stopping systemd-networkd.service - Network Management...
Jan 20 18:29:41 systemd-networkd[3821255]: wlp59s0: DHCPv4 client: RELEASE
Jan 20 18:29:41 systemd-networkd[3821255]: wlp59s0: DHCPv4 client: STOPPED
Jan 20 18:29:41 systemd-networkd[3821255]: wlp59s0: DHCP lease lost
```

Fixes #39299.

9 days agofdset: sort includes
Mike Yuan [Wed, 21 Jan 2026 14:49:47 +0000 (15:49 +0100)] 
fdset: sort includes

9 days agosysupdate-resource: on hash mismatch the best before marker is not ignored
Mike Yuan [Wed, 21 Jan 2026 14:35:39 +0000 (15:35 +0100)] 
sysupdate-resource: on hash mismatch the best before marker is not ignored

Hence use a less ambiguous wording.

Follow-up for d0badc0a619e15c67d38f65730ac210316ece84c
Addresses https://github.com/systemd/systemd/pull/40393#discussion_r2709953179

9 days agoportable: Enable unpriv operation 40091/head
Daan De Meyer [Tue, 2 Dec 2025 10:17:13 +0000 (11:17 +0100)] 
portable: Enable unpriv operation

This does not yet support directory images properly
as systemd itself does not support unpriv directory
images properly yet.

The user profiles are a copy of the system profiles but without
DynamicUser=yes (can't be used by user managers) and without
ProtectHome=yes (this masks /home which breaks StateDirectory= which
is lcoated inside /home)

9 days agopam_systemd_home: Use PAM_TEXT_INFO for token prompts
Vunny Sodhi [Wed, 21 Jan 2026 10:27:55 +0000 (12:27 +0200)] 
pam_systemd_home: Use PAM_TEXT_INFO for token prompts

The prompts asking the user to physically authenticate
or confirm presence on a security token are informational
requests for action, not error conditions.

This commit changes the message type to PAM_TEXT_INFO,
which is more appropriate for guiding the user through
the authentication process.

9 days agoshared/fdset: add detailed debug logging to fdset_new_fill()
AshishKumar Mishra [Wed, 21 Jan 2026 08:43:29 +0000 (14:13 +0530)] 
shared/fdset: add detailed debug logging to fdset_new_fill()

Currently, when fdset_new_fill() fails to open /proc/self/fd or
encounters an error while processing individual file descriptors
(such as fcntl or fstat failures), it returns a silent error code.

For debugging rarely reproducible failures it becomes difficult to
know the exact cause of failure
This commit updates the function to use log_debug_errno() for all
error paths and hence  provides better visibility into why FD collection
failed, including the path of the problematic FD (via fd_get_path)
and its inode type.

9 days agoportable: Split out receive_portable_metadata()
Daan De Meyer [Tue, 2 Dec 2025 08:29:26 +0000 (09:29 +0100)] 
portable: Split out receive_portable_metadata()

9 days agoportable: Make extract_now() operate on a dirfd
Daan De Meyer [Mon, 1 Dec 2025 22:52:29 +0000 (23:52 +0100)] 
portable: Make extract_now() operate on a dirfd

Preparation for making portabled support unpriv
operation.

9 days agoportable: Use report_errno_and_exit()
Daan De Meyer [Tue, 2 Dec 2025 08:39:13 +0000 (09:39 +0100)] 
portable: Use report_errno_and_exit()

9 days agomountfsd: Communicate whether the image is a single filesystem
Daan De Meyer [Tue, 20 Jan 2026 21:43:08 +0000 (22:43 +0100)] 
mountfsd: Communicate whether the image is a single filesystem

Various parts of the image dissection logic make use of whether the
thing is a single file system or not, so communicate this info back
from mountfsd.

9 days agomountfsd: Add relaxExtensionReleaseChecks
Daan De Meyer [Tue, 20 Jan 2026 21:41:40 +0000 (22:41 +0100)] 
mountfsd: Add relaxExtensionReleaseChecks

We currently pass this around as a mount option in pid1, which means
privileges are required by mountfsd to mount images that make use of it.
Add an explicit argument for it in varlink instead and remove it client
side from the mount options to remove the need for privileges.

9 days agopath-lookup: Add config_directory_generic()
Daan De Meyer [Tue, 2 Dec 2025 09:28:28 +0000 (10:28 +0100)] 
path-lookup: Add config_directory_generic()

9 days agodissect-image: Add more debug logging
DaanDeMeyer [Tue, 23 Dec 2025 11:44:12 +0000 (12:44 +0100)] 
dissect-image: Add more debug logging

9 days agodissect-image: Make make_image_name() public
DaanDeMeyer [Tue, 23 Dec 2025 11:43:51 +0000 (12:43 +0100)] 
dissect-image: Make make_image_name() public

9 days agodissect-image: Generalize foreign tree logic from import
Daan De Meyer [Mon, 15 Dec 2025 14:08:15 +0000 (15:08 +0100)] 
dissect-image: Generalize foreign tree logic from import

9 days agoloop-util: Make path optional in loop_device_make_by_path_at()
DaanDeMeyer [Mon, 22 Dec 2025 21:13:09 +0000 (22:13 +0100)] 
loop-util: Make path optional in loop_device_make_by_path_at()

9 days agotest: Set SYSTEMD_NSS_LOG_LEVEL=info
DaanDeMeyer [Tue, 23 Dec 2025 21:08:09 +0000 (22:08 +0100)] 
test: Set SYSTEMD_NSS_LOG_LEVEL=info

Currently, our test logs are flooded with useless NSS varlink debug
logs coming from nss-systemd talking to each varlink userdb service
individually. Let's set SYSTEMD_NSS_LOG_LEVEL=info to get rid of these
verbose logs.

9 days agonss-util: Add support for $SYSTEMD_NSS_LOG_LEVEL
DaanDeMeyer [Tue, 23 Dec 2025 21:06:31 +0000 (22:06 +0100)] 
nss-util: Add support for $SYSTEMD_NSS_LOG_LEVEL

When setting SYSTEMD_LOG_LEVEL=debug and debugging a tool that happens
to do NSS lookups, the resulting logs from varlink are obnoxiously
verbose. Let's parse a separate log level environment variable in NSS
to allow overriding the log level for NSS specifically so these noisy
logs can be silenced.

9 days agomkosi: Install libucontext in Arch/Fedora images
Daan De Meyer [Wed, 21 Jan 2026 10:25:36 +0000 (11:25 +0100)] 
mkosi: Install libucontext in Arch/Fedora images

Split out of #39771

We don't use make use of libucontext yet but merging this early makes
sure my mkosi cached images don't get invalidated every time I switch
between my other work and the fiber branch.

9 days agoreread-partition-table: fix typo
Mike Yuan [Wed, 21 Jan 2026 01:15:09 +0000 (02:15 +0100)] 
reread-partition-table: fix typo

9 days agoprompt-util: trivial header cleanups (#40407)
Mike Yuan [Wed, 21 Jan 2026 00:38:19 +0000 (01:38 +0100)] 
prompt-util: trivial header cleanups (#40407)

9 days agomkdir: reset mtime *after* fchown()
Mike Yuan [Tue, 20 Jan 2026 17:54:25 +0000 (18:54 +0100)] 
mkdir: reset mtime *after* fchown()

Follow-up for 34c3d574742e867ef97e79509e4051a82f1b7d9b

Also, drop pointless shortcut.

9 days agoprompt-util: use our own sd-varlink header 40407/head
Mike Yuan [Tue, 20 Jan 2026 23:10:08 +0000 (00:10 +0100)] 
prompt-util: use our own sd-varlink header

9 days agoprompt-util: drop unneeded inclusion of stdbool.h
Mike Yuan [Tue, 20 Jan 2026 23:09:24 +0000 (00:09 +0100)] 
prompt-util: drop unneeded inclusion of stdbool.h

Our -forward headers have it covered.

9 days agosysupdate: add simple "freshness" validation to systemd-sysupdate
Lennart Poettering [Mon, 19 Jan 2026 14:52:26 +0000 (15:52 +0100)] 
sysupdate: add simple "freshness" validation to systemd-sysupdate

In order to make "freeze" attacks against the update logic harder let's
add the ability to encode a "Best Before" date into SHA256SUMS directory
listings: if the current time is already beyond that time, we'll ignore
the SHA256SUMS as "stale" and fail the upgrade. Or in other words: the
freeze attack will now result in a client-side error eventually, instead
of success state.

The best before data is encoded in an optional pseudo-file listed in SHA256SUMS:
any file named BEST-BEFORE-YYYY-MM-DD.

9 days agobootctl,sbsign: fix $SOURCE_DATE_EPOCH parsing (#40404)
Mike Yuan [Tue, 20 Jan 2026 18:13:50 +0000 (19:13 +0100)] 
bootctl,sbsign: fix $SOURCE_DATE_EPOCH parsing (#40404)

A more comprehensive fix for #40403

Closes #40403

10 days agobootctl,sbsign: fix $SOURCE_DATE_EPOCH parsing 40404/head
Mike Yuan [Tue, 20 Jan 2026 14:28:59 +0000 (15:28 +0100)] 
bootctl,sbsign: fix $SOURCE_DATE_EPOCH parsing

This fixes two things:

* $SOURCE_DATE_EPOCH is previously treated as usec, while it's in seconds
* >= 0 is passed to log_debug_errno(), triggering assertion

Replaces #40403

10 days agoinstall-file: add a generalized parser for $SOURCE_DATE_EPOCH
Mike Yuan [Tue, 20 Jan 2026 14:20:57 +0000 (15:20 +0100)] 
install-file: add a generalized parser for $SOURCE_DATE_EPOCH

10 days agostat-util: make proc_mounted() not update errno
Yu Watanabe [Tue, 20 Jan 2026 09:41:11 +0000 (18:41 +0900)] 
stat-util: make proc_mounted() not update errno

Typically, proc_mounted() is used in error handling. Hence, it is better
to make it not update the original errno.

Currently, there are two places that returns wrong error code:
- pidref_get_capability() in src/basic/capability-util.c
```c
        _cleanup_fclose_ FILE *f = fopen(path, "re");
        if (!f) {
                if (errno == ENOENT && proc_mounted() == 0)
                        return -ENOSYS;

                return -errno;
        }
```
- fdset_new_fill() in src/shared/fdset.c
```c
        d = opendir("/proc/self/fd");
        if (!d) {
                if (errno == ENOENT && proc_mounted() == 0)
                        return -ENOSYS;

                return -errno;
        }
```

Rather than fixing them, let's make proc_mounted() not update errno,
otherwise we may make a similar failure in a future.

10 days agocore/dbus-execute: fix memleak on Mount/ExtensionImages parse failure (#40398)
Mike Yuan [Tue, 20 Jan 2026 02:10:34 +0000 (03:10 +0100)] 
core/dbus-execute: fix memleak on Mount/ExtensionImages parse failure (#40398)

10 days agobless-boot-generator: skip if current system is entered via soft-reboot
Mike Yuan [Mon, 19 Jan 2026 23:33:19 +0000 (00:33 +0100)] 
bless-boot-generator: skip if current system is entered via soft-reboot

Fixes #40386

10 days agoresolve: include current DNS server in JSON again (#40396)
Yu Watanabe [Tue, 20 Jan 2026 00:41:51 +0000 (09:41 +0900)] 
resolve: include current DNS server in JSON again (#40396)

Fixes a regression caused by c6b6ac63ea2e63eb86f63b18a25cda872716ac0b.

10 days agocore/dbus-execute: use strextendf_with_separator() where appropriate 40398/head
Mike Yuan [Mon, 19 Jan 2026 22:21:39 +0000 (23:21 +0100)] 
core/dbus-execute: use strextendf_with_separator() where appropriate

10 days agocore/dbus-execute: fix memleak on Mount/ExtensionImages parse failure
Mike Yuan [Mon, 19 Jan 2026 22:18:44 +0000 (23:18 +0100)] 
core/dbus-execute: fix memleak on Mount/ExtensionImages parse failure

Define mount_image_free_many() in our usual fashion for use in
CLEANUP_ARRAY and ensure proper cleanup on error paths.

10 days agotpm2: allow use of recoverable sealing keys
safforddr [Tue, 13 Jan 2026 18:27:20 +0000 (13:27 -0500)] 
tpm2: allow use of recoverable sealing keys

In some use cases it is desirable to use a recoverable (ie duplicatable)
sealing key. Currently objects have the attribute TPMA_OBJECT_FIXEDTPM
and TPMA_OBJECT_FIXEDPARENT hard coded, which will not work with a
recoverable sealing key. This patch sets the object's attributes from
the sealing key's attributes, so that both types of sealing keys will work.

10 days agoIntroduce 'fixate-volume-key' option to repart/cryptsetup to pin the exact LUKS volum...
Lennart Poettering [Mon, 19 Jan 2026 20:59:47 +0000 (21:59 +0100)] 
Introduce 'fixate-volume-key' option to repart/cryptsetup to pin the exact LUKS volume key hash (#40343)

Add an option to generate the expected volume key hash for LUKS volumes
by systemd-repart
and put it to crypttab, make systemd-cryptsetup check it upon attaching.
The format of the hash
matches what's currently being measured to TPM2 PCR with
tpm2-measure-pcr=.

Closes #40123

10 days agocore: follow-ups for changes to MountOptions (#40395)
Lennart Poettering [Mon, 19 Jan 2026 20:59:19 +0000 (21:59 +0100)] 
core: follow-ups for changes to MountOptions (#40395)

Follow-up for #39449

10 days agosd-varlink: ensure that "any" actually means "any but null"
Lennart Poettering [Mon, 19 Jan 2026 19:06:00 +0000 (20:06 +0100)] 
sd-varlink: ensure that "any" actually means "any but null"

The new "any" type was implemented by accident that it actually meant
"any but null" – unless marked as "any?" in which case it actually meant
truly any, including null. The spec change in
https://github.com/varlink/varlink.github.io/pull/43 otoh suggested that
"any" really means anything, and "any?" apparently too.

I think the implementation in code makes more sense than the spec change
however, hence let's add some checks/tests to ensure the behaviour of
the code is made explicitly and cared for.

I will prep a spec change to make the spec follow the code on this too.

Follow-up for: #39918

10 days agotest: check that currentServer field is set in resolvectl JSON status 40396/head
Nick Rosbrook [Mon, 19 Jan 2026 18:48:07 +0000 (13:48 -0500)] 
test: check that currentServer field is set in resolvectl JSON status

10 days agoresolve: include current DNS server in JSON again
Nick Rosbrook [Mon, 19 Jan 2026 18:29:52 +0000 (13:29 -0500)] 
resolve: include current DNS server in JSON again

The current_dns_server_json object in dns_configuration_json_append() is
always NULL, because the logic to dump the current DNS server to JSON
was removed by mistake in a re-factoring commit. Add that logic back.

Fixes c6b6ac63ea ("resolve: drop unnecessary preparation of empty arrays").

11 days agovmspawn: use indexed loop
Yu Watanabe [Mon, 19 Jan 2026 14:14:26 +0000 (23:14 +0900)] 
vmspawn: use indexed loop

Previously, the index is obtained from the pointer offset. The
pointer offset is expressed by ptrdiff_t and may be different from
ssize_t.

Let's avoid to use FOREACH_ARRAY() but use an indexed loop.
This also renames `mount` to `m` to avoid conflict with `mount()`.

Fixes #40380.

11 days agoTEST-58-REPART: Add a test for fixate_folume_key 40343/head
Vitaly Kuznetsov [Tue, 13 Jan 2026 16:43:22 +0000 (17:43 +0100)] 
TEST-58-REPART: Add a test for fixate_folume_key

The test checks that the expected hash is correctly recorded to the
generated crypttab and also checks that systemd-cryptsetup handles
the option correctly.

11 days agorepart: Add fixate_volume_key crypttab option generation
Vitaly Kuznetsov [Wed, 14 Jan 2026 08:51:33 +0000 (09:51 +0100)] 
repart: Add fixate_volume_key crypttab option generation

Add an option to capture the expected LUKS volume key hash and
record it to the generated crypttab.

11 days agocryptsetup: Add fixate-volume-key option to pin the expected volume key hash
Vitaly Kuznetsov [Wed, 14 Jan 2026 08:51:24 +0000 (09:51 +0100)] 
cryptsetup: Add fixate-volume-key option to pin the expected volume key hash

The expected hash (SHA265 HMAC signature) uses the exact same algorithm which
is used to calculate sha256 PCR bank digest when 'tpm2-measure-pcr=' is used.

11 days agocore/dbus-util: several cleanups for bus_read_mount_options() 40395/head
Mike Yuan [Tue, 6 Jan 2026 21:02:17 +0000 (22:02 +0100)] 
core/dbus-util: several cleanups for bus_read_mount_options()

* Make sure ret_options is initialized on success.
* Return empty mount options as-is rather than NULL-ing it -
  dbus property parser for RootImageOptions relies on it
  for resetting options for a specific partition designator.
* Format partition:options properly with strextendf, currently
  multiple ":" will be emitted.
* Allow separator to be unset if in_out_format_str is not
  needed.

11 days agocore/varlink-execute: skip empty mount options
Mike Yuan [Tue, 6 Jan 2026 21:24:25 +0000 (22:24 +0100)] 
core/varlink-execute: skip empty mount options

This keeps things in line with bus_append_mount_options().

11 days agocore/dbus-execute: constify MountOptions
Mike Yuan [Tue, 6 Jan 2026 21:01:49 +0000 (22:01 +0100)] 
core/dbus-execute: constify MountOptions

11 days agodissect-image: use consistent log level
Mike Yuan [Mon, 19 Jan 2026 15:27:59 +0000 (16:27 +0100)] 
dissect-image: use consistent log level

11 days agojournal/audit: do not use strjoina() for arbitrary length of received string
Yu Watanabe [Mon, 19 Jan 2026 13:56:24 +0000 (22:56 +0900)] 
journal/audit: do not use strjoina() for arbitrary length of received string

Otherwise, when a long message is received, the assertion in strjoina()
may be triggered.

Fixes oss-fuzz#476768320 (https://issues.oss-fuzz.com/issues/476768320).
Fixes #40388.

11 days agoportable: pin attached image via image-policy (#40152)
Luca Boccassi [Mon, 19 Jan 2026 16:24:44 +0000 (16:24 +0000)] 
portable: pin attached image via image-policy (#40152)

When attaching images generate a policy in the portable drop-in that
matches the partition types and content found while dissecting, so that
it can no longer be changed later without a reattach

11 days agoaudit-type: include alloc-util.h for newa() (#40389)
Yu Watanabe [Mon, 19 Jan 2026 15:31:39 +0000 (00:31 +0900)] 
audit-type: include alloc-util.h for newa() (#40389)

The macro audit_type_name_alloca() needs newa() which is defined in
alloc-util.h.

11 days agotree-wide: use consistent format of short comment for constant argument
Yu Watanabe [Mon, 19 Jan 2026 15:20:01 +0000 (00:20 +0900)] 
tree-wide: use consistent format of short comment for constant argument

Follow-ups for recent changes after 93378148d48fa700c7f53b5f8969787af2a47ccb.

11 days agoportable: pin attached image via image-policy 40152/head
Luca Boccassi [Fri, 19 Dec 2025 17:02:03 +0000 (17:02 +0000)] 
portable: pin attached image via image-policy

When attaching images generate a policy in the portable drop-in
that matches the partition types and content found while dissecting,
so that it can no longer be changed later without a reattach.

11 days agoimage-policy: add helper to create policy from dissected image
Luca Boccassi [Fri, 19 Dec 2025 17:01:32 +0000 (17:01 +0000)] 
image-policy: add helper to create policy from dissected image

Pin policies to exactly what was found while dissecting

11 days agoimage-policy: add image_policy_union helper
Luca Boccassi [Fri, 19 Dec 2025 16:53:18 +0000 (16:53 +0000)] 
image-policy: add image_policy_union helper

Similar to image_policy_intersect but is the union of all used policies
instead

11 days agoMore legacy kernel support removal; follow-ups for XAT_FDROOT (#40384)
Yu Watanabe [Mon, 19 Jan 2026 14:10:17 +0000 (23:10 +0900)] 
More legacy kernel support removal; follow-ups for XAT_FDROOT (#40384)

11 days agobusctl: handle `--limit-messages` option under the `wait` verb
zefr0x [Sat, 17 Jan 2026 19:59:22 +0000 (22:59 +0300)] 
busctl: handle `--limit-messages` option under the `wait` verb

Main focus was to not introduce breaking change or duplicated argument.
The `--limit-messages=` option that is used under the `monitor` verb is
reused here. However, both `wait` and `monitor` have contradicting
default behaviors, so it's not the cleanest thing to do.

There was some post-commit discussion about the API in #33961, but the
final name adopted in #34928 wasn't that flexible either to fit nicely
here in the `wait` verbe.

Additionally, there wasn't consideration in #34555 for having uniform
behavrious, so we ended with `wait` verb and `--limit-messages=` option,
rather than `receive` verb with default of continuously receving signals
withtout exit so `--limit-messages=` make more sence and be expectable.

11 days agotpm2-util: make tpm2_pcr_extend_bytes() declaration match its implementation
Vitaly Kuznetsov [Mon, 19 Jan 2026 12:42:34 +0000 (13:42 +0100)] 
tpm2-util: make tpm2_pcr_extend_bytes() declaration match its implementation

tpm2_pcr_extend_bytes() has differences in parameter names between the
declaration and the implementation, in particular, 'event' in the header is
named 'event_type' in the implementation.

11 days agocore/cgroup: obsolete DefaultMemoryMin/Low= 40384/head
Mike Yuan [Sat, 17 Jan 2026 00:21:34 +0000 (01:21 +0100)] 
core/cgroup: obsolete DefaultMemoryMin/Low=

Now that our kernel baseline is v5.7 and memory_recursiveprot
is universally enabled, remove userspace workarounds.

11 days agocore/cgroup: do not consider cgroup_context_has_io_config() if only IOAccounting=yes
Mike Yuan [Mon, 19 Jan 2026 01:05:33 +0000 (02:05 +0100)] 
core/cgroup: do not consider cgroup_context_has_io_config() if only IOAccounting=yes

This makes things in line with unit_has_memory_config(),
and suppresses pointless application of IO configs.

11 days agocore/cgroup: drop trusted.survive_final_kill_signal fallback for kernel < 5.7
Mike Yuan [Sun, 18 Jan 2026 21:40:30 +0000 (22:40 +0100)] 
core/cgroup: drop trusted.survive_final_kill_signal fallback for kernel < 5.7

11 days agocore/namespace: remove availability checks for procfs hidepid=/subset= opts
Mike Yuan [Sun, 18 Jan 2026 21:54:17 +0000 (22:54 +0100)] 
core/namespace: remove availability checks for procfs hidepid=/subset= opts

11 days agostat-util: O_NOCTTY is nop with O_PATH
Mike Yuan [Mon, 19 Jan 2026 00:15:18 +0000 (01:15 +0100)] 
stat-util: O_NOCTTY is nop with O_PATH

11 days agostat-util: do not use RET_NERRNO for our own function
Mike Yuan [Mon, 19 Jan 2026 00:13:01 +0000 (01:13 +0100)] 
stat-util: do not use RET_NERRNO for our own function

Follow-up for 95abe4beff08636681069623ffdf16cfa34c7cf8

11 days agofs-util: optimize xopenat(XAT_FDROOT, ...) a bit
Mike Yuan [Sun, 18 Jan 2026 23:53:48 +0000 (00:53 +0100)] 
fs-util: optimize xopenat(XAT_FDROOT, ...) a bit

Follow-up for ef582ab201c2942813960ad3c451df3642d85558

* Open / with O_PATH
* Shortcut to fd_reopen() directly if path is empty

11 days agofs-util: group access_fd() with access_nofollow()
Mike Yuan [Sun, 18 Jan 2026 22:04:39 +0000 (23:04 +0100)] 
fs-util: group access_fd() with access_nofollow()

11 days agofs-util: drop fallback for kernels without AT_EMPTY_PATH support (< 5.8)
Mike Yuan [Sun, 18 Jan 2026 22:02:19 +0000 (23:02 +0100)] 
fs-util: drop fallback for kernels without AT_EMPTY_PATH support (< 5.8)

11 days agomountpoint-util: assume MS_NOSYMFOLLOW is available
Mike Yuan [Sun, 18 Jan 2026 21:44:56 +0000 (22:44 +0100)] 
mountpoint-util: assume MS_NOSYMFOLLOW is available

Since our kernel baseline is v5.10 now.

11 days agofirewall-util: drop fallback for kernel < 5.8
Mike Yuan [Sun, 18 Jan 2026 21:58:45 +0000 (22:58 +0100)] 
firewall-util: drop fallback for kernel < 5.8

11 days agonetlink-util: remove support for kernel < 5.5
Mike Yuan [Sun, 18 Jan 2026 21:34:16 +0000 (22:34 +0100)] 
netlink-util: remove support for kernel < 5.5

11 days agonspawn: drop compat glue for kernel < 3.14
Mike Yuan [Sun, 18 Jan 2026 21:32:20 +0000 (22:32 +0100)] 
nspawn: drop compat glue for kernel < 3.14

11 days agoREADME: kcmp() is unnecessary if we have F_DUPFD_QUERY (v6.10)
Mike Yuan [Mon, 19 Jan 2026 11:49:02 +0000 (12:49 +0100)] 
README: kcmp() is unnecessary if we have F_DUPFD_QUERY (v6.10)

11 days agoREADME: CONFIG_DEVPTS_MULTIPLE_INSTANCES has been dropped in v4.7
Mike Yuan [Sun, 18 Jan 2026 21:31:25 +0000 (22:31 +0100)] 
README: CONFIG_DEVPTS_MULTIPLE_INSTANCES has been dropped in v4.7

11 days agorepart: Generate fstab and crypttab late
Vitaly Kuznetsov [Mon, 12 Jan 2026 16:05:59 +0000 (17:05 +0100)] 
repart: Generate fstab and crypttab late

The immediate need for the change is to allow to capture the expected
LUKS volume key hash and record it to the generated crypttab but it
also seems to make sense to not generate crypttab/fstab before we know
that partition creation succeeded as fstab/crypttab entries are bogus
otherwise.

11 days agomkosi/opensuse: remove resolved TODO
Mike Yuan [Sun, 18 Jan 2026 23:46:01 +0000 (00:46 +0100)] 
mkosi/opensuse: remove resolved TODO

Follow-up for ff9c4ace709a1274b8f7e2569161da559c43fbd5

11 days agorecurse-dir: remove stale comment
Mike Yuan [Sun, 18 Jan 2026 22:09:09 +0000 (23:09 +0100)] 
recurse-dir: remove stale comment

Follow-up for 6393b847f459dba14d2b615ee93babb143168b57

11 days agoTODO: remove completed entries
Mike Yuan [Mon, 19 Jan 2026 02:04:54 +0000 (03:04 +0100)] 
TODO: remove completed entries