]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
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)

8 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.

8 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

8 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.

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

8 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

8 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)

8 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.

8 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.

8 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()

8 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.

8 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()

8 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.

8 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.

8 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()

8 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

8 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

8 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

8 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()

8 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.

8 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.

8 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

9 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

9 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

9 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").

10 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.

10 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.

10 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.

10 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.

10 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.

10 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().

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

10 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

10 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.

10 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

10 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.

10 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.

10 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.

10 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

10 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

10 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)

10 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.

10 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.

10 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.

10 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.

10 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

10 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

10 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

10 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

10 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

10 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()

10 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)

10 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.

10 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

10 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

10 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

10 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)

10 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

10 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

11 days agocryptenroll,cryptsetup,shutdown: only call mlockall if we have CAP_IPC_LOCK
cyclopentane [Fri, 16 Jan 2026 23:54:51 +0000 (00:54 +0100)] 
cryptenroll,cryptsetup,shutdown: only call mlockall if we have CAP_IPC_LOCK

Calling mlockall in an unprivileged process most notably had the effect
of making systemd-cryptenroll OOM while trying to open a normal-sized
argon2 keyslot due to it hitting RLIMIT_MEMLOCK.

11 days agocore: a few cleanups, follow-ups for MemoryTHP= (#40382)
Mike Yuan [Sun, 18 Jan 2026 17:25:22 +0000 (18:25 +0100)] 
core: a few cleanups, follow-ups for MemoryTHP= (#40382)

11 days agocore/exec-invoke: dedup error handling 40382/head
Mike Yuan [Tue, 6 Jan 2026 21:42:37 +0000 (22:42 +0100)] 
core/exec-invoke: dedup error handling

Also, do not log about errno if it's suffciently encoded
in the log text already.

11 days agoshared/varlink-io.systemd.Unit: MemoryTHP is not nullable
Mike Yuan [Tue, 6 Jan 2026 21:42:11 +0000 (22:42 +0100)] 
shared/varlink-io.systemd.Unit: MemoryTHP is not nullable

11 days agocore: rearrange MemoryTHP=
Mike Yuan [Tue, 6 Jan 2026 21:39:04 +0000 (22:39 +0100)] 
core: rearrange MemoryTHP=

* Place related logic closer to MemoryKSM=, do not interleave
  it with various BPF delegation knobs
* MemoryTHP= is a execute directive, not namespace

11 days agocore/unit: drop unneeded unit_modify_nft_set() call during coldplug
Mike Yuan [Fri, 9 Jan 2026 18:06:07 +0000 (19:06 +0100)] 
core/unit: drop unneeded unit_modify_nft_set() call during coldplug

We re-realize all unit cgroups upon daemon-reload, and
cgroup_context_apply() would take care of NFT set refreshing.
No need to duplicate that in unit_coldplug().

11 days agocore/exec-credential: group write_credential() with maybe_decrypt_and_write_credential()
Mike Yuan [Tue, 6 Jan 2026 21:48:54 +0000 (22:48 +0100)] 
core/exec-credential: group write_credential() with maybe_decrypt_and_write_credential()

As requested in
https://github.com/systemd/systemd/pull/40093#discussion_r2661389365

11 days agoinclude: update linux kernel headers from v6.19-rc5
Yu Watanabe [Sat, 17 Jan 2026 03:32:34 +0000 (12:32 +0900)] 
include: update linux kernel headers from v6.19-rc5

11 days agohwdb: set touchpad resolution for all ThinkPad T49x chassis laptops
novenary [Sun, 18 Jan 2026 11:11:19 +0000 (13:11 +0200)] 
hwdb: set touchpad resolution for all ThinkPad T49x chassis laptops

Confirmed with owners of T495 and T14 Gen2i.
P14s should be identical.

11 days agojournal-file: do not trigger assertion on removed or corrupted journal file
Yu Watanabe [Sun, 18 Jan 2026 10:15:31 +0000 (19:15 +0900)] 
journal-file: do not trigger assertion on removed or corrupted journal file

When a journal file is removed or corrupted, then the value `p`, which is
read from Object.data.entry_offset, may be zero.

Note, journal_file_move_to_object() checks the passed offset and return
-EBADMSG if it is invalid.

Fixes the issue reported at
https://github.com/systemd/systemd/pull/40372#issuecomment-3762907261.

11 days agofd-util: introduce XAT_FDROOT fd shortcut for the root dir (#39244)
Daan De Meyer [Sun, 18 Jan 2026 10:57:11 +0000 (11:57 +0100)] 
fd-util: introduce XAT_FDROOT fd shortcut for the root dir (#39244)

12 days agomountfsd: fix potential memleak on malicious json message
Yu Watanabe [Sun, 18 Jan 2026 07:06:06 +0000 (16:06 +0900)] 
mountfsd: fix potential memleak on malicious json message

This also makes json_log_oom() used on OOM.

Follow-up for 78b40aea611256228e898fc6a6dab414a1798889.

12 days agoSeveral follow-ups for removal of SysV compat (#40371)
Yu Watanabe [Sun, 18 Jan 2026 09:02:53 +0000 (18:02 +0900)] 
Several follow-ups for removal of SysV compat (#40371)

12 days agodocs,man: more SysV compat removal notes 40371/head
Mike Yuan [Sat, 17 Jan 2026 02:03:33 +0000 (11:03 +0900)] 
docs,man: more SysV compat removal notes

12 days agomkosi/opensuse: do not build/install systemd-sysvcompat package
Yu Watanabe [Sat, 17 Jan 2026 01:59:05 +0000 (10:59 +0900)] 
mkosi/opensuse: do not build/install systemd-sysvcompat package

The package is now empty. It is not necessary to build it.

This also drops unnecessary modifications for files.*.