]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 days agoboot: drop now-unused image_base param 40429/head
Zbigniew JÄ™drzejewski-Szmek [Tue, 17 Feb 2026 17:21:45 +0000 (18:21 +0100)] 
boot: drop now-unused image_base param

4 weeks agoboot: Fix UKI boot for kernels with non-zero ImageBase
cdown [Thu, 22 Jan 2026 12:16:49 +0000 (04:16 -0800)] 
boot: Fix UKI boot for kernels with non-zero ImageBase

The current code incorrectly subtracts ImageBase from section
VirtualAddress values when loading sections into memory. This is based
on a misunderstanding of the PE specification.

VirtualAddress in section headers is the address of the first byte of
the section relative to the image base when the section is loaded into
memory. In other words, VirtualAddress is already an RVA measured from
the image base, it is definitely NOT an absolute address that needs to
be adjusted.

So when loading a PE image into a newly allocated buffer, sections
should be copied to buffer + VirtualAddress, regardless of what
ImageBase says. The ImageBase field merely indicates the *preferred*
load address, it does not affect how section RVAs are interpreted.

This happens to not cause issues when ImageBase was 0 (since
VirtualAddress - 0 = VirtualAddress), which is why this bug went
undetected on modern kernels. However, it fails with kernels that have
non-zero ImageBase values.

So let's remove the nonsensical VirtualAddress < ImageBase check, and
remove the ImageBase subtractions from section loading offsets. This
lets all kernel UKIs work properly again.

Fixes: #40342
4 weeks 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

4 weeks 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.

4 weeks 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.

4 weeks 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.

4 weeks 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

4 weeks 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

4 weeks 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

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

4 weeks 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.

4 weeks 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)

4 weeks 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.

4 weeks 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

4 weeks 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.

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

4 weeks 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

4 weeks 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)

4 weeks 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.

4 weeks 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.

4 weeks 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()

4 weeks 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.

4 weeks 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()

4 weeks 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.

4 weeks 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.

4 weeks 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()

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

4 weeks 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

4 weeks 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

4 weeks 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()

4 weeks 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.

4 weeks 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.

4 weeks 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.

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

4 weeks 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)

4 weeks 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.

4 weeks 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

4 weeks 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.

4 weeks 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.

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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.

4 weeks 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)

4 weeks 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

4 weeks 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.

4 weeks 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

4 weeks 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.

4 weeks 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.

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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").

4 weeks 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.

4 weeks 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.

4 weeks 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.

4 weeks 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.

4 weeks 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.

4 weeks 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().

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

4 weeks 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

4 weeks 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.

4 weeks 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

4 weeks 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.

4 weeks 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.

4 weeks 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.

4 weeks 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

4 weeks 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

4 weeks 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)

4 weeks 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.

4 weeks 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.

4 weeks 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.

4 weeks 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.

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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()

4 weeks 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)

4 weeks 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.

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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)

4 weeks 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

4 weeks 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.

4 weeks 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

4 weeks 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

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

4 weeks 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.

4 weeks 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)

4 weeks 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.

4 weeks 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

4 weeks 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

4 weeks 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().

4 weeks 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

4 weeks 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

4 weeks 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.