]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 months agoTODO: fix typo
Yu Watanabe [Thu, 19 Feb 2026 16:11:27 +0000 (01:11 +0900)] 
TODO: fix typo

Follow-up for 3bbada87e290f3f0c2ca17f4f10396ec037b03c9.

2 months agoimportd: add support for downloading OCI images (#39621)
Lennart Poettering [Thu, 19 Feb 2026 15:43:11 +0000 (16:43 +0100)] 
importd: add support for downloading OCI images (#39621)

This adds the ability to download OCI images via importd.

Not a fan of the OCI format tbh, in particular its security properties
are a bit sad. But I guess it exists and is very popular, hence we might
as well add support for it, even if it comes at much weaker security
properties than DDIs.

Fixes #36447

2 months agoBring Bash profile for reporting context via Operating System Commands (OSC) into...
Lennart Poettering [Thu, 19 Feb 2026 14:50:24 +0000 (15:50 +0100)] 
Bring Bash profile for reporting context via Operating System Commands (OSC) into compliance with specifications (#40696)

This script fails to comply with the spec it's designed to implement,
[UAPI.15 OSC 3008: Hierarchical Context
Signalling](https://uapi-group.org/specifications/specs/osc_context/),
and fails the correctly utilize the specs provided by
[POSIX.1-2024](https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/mindex.html)
and [man 1
bash](https://www.man7.org/linux/man-pages//man1/bash.1.html); improve
compliance.

Changes are made in small atomic commits, with more detailed
descriptions of the work done in each message.

2 months agoelf2efi: modernize typing annotations 40755/head
Zbigniew Jędrzejewski-Szmek [Thu, 19 Feb 2026 13:22:18 +0000 (14:22 +0100)] 
elf2efi: modernize typing annotations

We still need Union and Optional as long as compat with Python 3.9
is needed.

2 months agoelf2efi: make mypy-clean
Zbigniew Jędrzejewski-Szmek [Thu, 19 Feb 2026 13:17:29 +0000 (14:17 +0100)] 
elf2efi: make mypy-clean

2 months agoelf2efi: import whole module, not individual symbols
Zbigniew Jędrzejewski-Szmek [Thu, 19 Feb 2026 12:32:31 +0000 (13:32 +0100)] 
elf2efi: import whole module, not individual symbols

When reading the code, it was hard to figure out if the given name was
imported or a local class. And the renaming of imports also made it
harder to look things up online. Arguably, the deeply nested import
structure and inconsistent naming in elftools is partially to blame:
there is just no good way to make this look nice. But anyway, let's use
the usual style of importing the module and using names prefixed with
the module path so that the origin of imported names is clear.

elfutils.elf.elffile is importered separately, because a) it needs to be
imported separately anyway bxecause the module does lazy imports
internally, a) the name already indicates the origin, c) is used in
quite a few places so the shorter name is nice.

2 months agogenerate-sym-test: skip everything that is not a file
Zbigniew Jędrzejewski-Szmek [Thu, 19 Feb 2026 12:01:01 +0000 (13:01 +0100)] 
generate-sym-test: skip everything that is not a file

The generator looks for files in the filesystem, and it sometimes fails
on emacs "lock files" which are a symlink. Ignore those.

2 months agometrics: fix casing for metrics names (take 2)
Yaping Li [Wed, 18 Feb 2026 21:58:11 +0000 (13:58 -0800)] 
metrics: fix casing for metrics names (take 2)

Change the casing for metrics names to mimic properties exposed via
varlink/dbus: Use PascalCase.

2 months agomachine: Fix cid passed to machine_add_from_params()
Daan De Meyer [Thu, 19 Feb 2026 09:16:37 +0000 (10:16 +0100)] 
machine: Fix cid passed to machine_add_from_params()

The default value is VMADDR_CID_ANY, not zero.

2 months agoupdate TODO 39621/head
Lennart Poettering [Wed, 18 Feb 2026 23:01:03 +0000 (00:01 +0100)] 
update TODO

2 months agoci: drop 'Ex' suffix from transient props
Lennart Poettering [Tue, 17 Feb 2026 14:03:07 +0000 (15:03 +0100)] 
ci: drop 'Ex' suffix from transient props

The "Ex" is mostly internal, and our parsers will append it
automatically when needed

2 months agoci: add test for OCI downloading
Lennart Poettering [Wed, 26 Nov 2025 08:07:28 +0000 (09:07 +0100)] 
ci: add test for OCI downloading

2 months agoman: document everything we just added
Lennart Poettering [Thu, 27 Nov 2025 08:36:34 +0000 (09:36 +0100)] 
man: document everything we just added

2 months agomountpoint-util: fix typo in comment
Lennart Poettering [Wed, 18 Feb 2026 07:29:13 +0000 (08:29 +0100)] 
mountpoint-util: fix typo in comment

2 months agoportable: fix log levels
Lennart Poettering [Mon, 16 Feb 2026 08:39:40 +0000 (09:39 +0100)] 
portable: fix log levels

portable_extract_by_path() and install_image() can't agree whether to be
of the "logging" or "non-logging" kind

2 months agodiscover-image: make sure we can remove mstacks
Lennart Poettering [Fri, 28 Nov 2025 17:26:56 +0000 (18:26 +0100)] 
discover-image: make sure we can remove mstacks

2 months agocore: introduce PinnedResource
Lennart Poettering [Thu, 27 Nov 2025 07:07:31 +0000 (08:07 +0100)] 
core: introduce PinnedResource

This introduces PinnedResources as a structure combining pinned
references to a root directory, root image, or root mstack. This is not
only easier to work with, but essential to make certain unpriv things
work, as we need some mechanism to pin resources before we drop into a
userns which might possibly not provide access anymore to those
resources.

Hence this does two things: introduce the new structure, and immediately
hook it up so that we pin things properly before dropping into userns,
and then makes use of this after dropping the right way, and enables
unpriv userns operation.

The concept is generic enough to eventually implement extension images +
mount images with the same structure, but in order to keep the changes
managable this is left for another time.

(This also makes one further clean-up: client-side verity-reuse checks
are moved server side if we are unpriv. Previously we'd do them client
side, but they were doomed to fail because of lack of privs. Hence let's
drop the client side if we are unpriv and purely do them server-side in
that case.)

2 months agomountfsd,nsresource: allow recycling mountfsd/nsresourced client connections
Lennart Poettering [Fri, 28 Nov 2025 15:28:42 +0000 (16:28 +0100)] 
mountfsd,nsresource: allow recycling mountfsd/nsresourced client connections

So far we opened a new Varlink connection for every mountfsd/nsresourced
method call. Given each tool only does a very small number of calls
(usually 1…5) on them and the connections are cheap this is not too
wasteful. Nonetheless, let's do something about it, and allow reusing
the connection for multiple calls.

This not only makes things a bit more efficient, but has one more
important benefit: Varlink connections pin the security context of the
client when connecting. This means that varlink method calls done with a
connection established while some code was privileged will still operate
as privieged once privs are dropped, until the connection is closed.
This pinning effect is really nice, as it gives us behaviour in a
"capability system" like scheme. Later code is going to use that to
continue doing certain priv userns ops even after unsharing userns and
becoming fully unpriv.

2 months agonamespace: extend bind mount ignore field to permission issues
Lennart Poettering [Fri, 28 Nov 2025 15:18:07 +0000 (16:18 +0100)] 
namespace: extend bind mount ignore field to permission issues

A later commit will add transient allocation of user namespaces with
dynamic UID range assignment. That creates certain permission issues.
Let's hence allow them to be handled gracefully in case the 'ignore'
field is set for a mount.

2 months agonamespace: port mount_private_apivfs() to fsopen() and friends
Lennart Poettering [Fri, 28 Nov 2025 11:21:41 +0000 (12:21 +0100)] 
namespace: port mount_private_apivfs() to fsopen() and friends

This is not just refactoring, but has the big benefit that it makes us
indepdendent from a temporary directory we might not have enough access
to create. (This matters with the new PrivateUsers=managed).

2 months agoprivate
Lennart Poettering [Thu, 19 Feb 2026 14:03:50 +0000 (15:03 +0100)] 
private

2 months agocore: add PrivateUsers=managed
Lennart Poettering [Thu, 27 Nov 2025 07:58:26 +0000 (08:58 +0100)] 
core: add PrivateUsers=managed

2 months agoimportctl: add 'pull-oci' client API
Lennart Poettering [Tue, 25 Nov 2025 14:32:23 +0000 (15:32 +0100)] 
importctl: add 'pull-oci' client API

2 months agoimportd: add bus/varlink api for downloading OCIs
Lennart Poettering [Tue, 25 Nov 2025 14:33:36 +0000 (15:33 +0100)] 
importd: add bus/varlink api for downloading OCIs

2 months agorun: support RootMStack= on the client side for systemd-run
Lennart Poettering [Tue, 25 Nov 2025 08:01:58 +0000 (09:01 +0100)] 
run: support RootMStack= on the client side for systemd-run

2 months agoportable: support .mstack images
Lennart Poettering [Tue, 25 Nov 2025 08:01:36 +0000 (09:01 +0100)] 
portable: support .mstack images

2 months agopid1: introduce RootMStack= for using an mstack as root dir for a service
Lennart Poettering [Mon, 24 Nov 2025 21:23:41 +0000 (22:23 +0100)] 
pid1: introduce RootMStack= for using an mstack as root dir for a service

2 months agotree-wide: move logging from varlink clients in nsresource.c/dissect-image.c into...
Lennart Poettering [Mon, 16 Feb 2026 08:37:58 +0000 (09:37 +0100)] 
tree-wide: move logging from varlink clients in nsresource.c/dissect-image.c into callers

These calls are "library-like", hence better should only debug log on
their own, not more.

2 months agonspawn: add support for running mstack container images
Lennart Poettering [Wed, 12 Nov 2025 15:46:59 +0000 (16:46 +0100)] 
nspawn: add support for running mstack container images

2 months agodiscover-image: add support for discovering mstack images
Lennart Poettering [Wed, 12 Nov 2025 15:47:57 +0000 (16:47 +0100)] 
discover-image: add support for discovering mstack images

2 months agoadd mstack tool for accessing mstacks from the command line
Lennart Poettering [Mon, 10 Nov 2025 11:13:11 +0000 (12:13 +0100)] 
add mstack tool for accessing mstacks from the command line

2 months agovpick: add generic definition for mstack image pick filters
Lennart Poettering [Tue, 18 Nov 2025 21:33:59 +0000 (22:33 +0100)] 
vpick: add generic definition for mstack image pick filters

2 months agomstack: introduce "mstack" concept
Lennart Poettering [Sun, 9 Nov 2025 20:16:44 +0000 (21:16 +0100)] 
mstack: introduce "mstack" concept

2 months agopull: add OCI support
Lennart Poettering [Fri, 7 Nov 2025 07:35:59 +0000 (08:35 +0100)] 
pull: add OCI support

2 months agocore: introduce exec_context_with_rootfs_strict() as a stricter version of exec_conte...
Lennart Poettering [Tue, 17 Feb 2026 14:46:45 +0000 (15:46 +0100)] 
core: introduce exec_context_with_rootfs_strict() as a stricter version of exec_context_with_rootfs()

We have two very similar checks in place: in some contexts we want to
know if *any* RootDirectory= is configured, in the other we want to
suppress if it is configured to our regular root. Let's add a helper for
both (even if we only need it once), to make the mirrored behaviour
clear.

2 months agocore: use exec_context_with_rootfs() at one more place
Lennart Poettering [Tue, 17 Feb 2026 14:46:58 +0000 (15:46 +0100)] 
core: use exec_context_with_rootfs() at one more place

2 months agotar-util: add support for extracting OCI compatible whiteouts, and turn them into...
Lennart Poettering [Fri, 7 Nov 2025 07:33:32 +0000 (08:33 +0100)] 
tar-util: add support for extracting OCI compatible whiteouts, and turn them into overlayfs whiteouts

2 months agopull-job: make sure pull_job_restart() can be used to fetch the same resource again...
Lennart Poettering [Fri, 7 Nov 2025 07:32:39 +0000 (08:32 +0100)] 
pull-job: make sure pull_job_restart() can be used to fetch the same resource again, just with new headers

Let's flush out all response state from the job, but let's keep the
request data previously configured, in particular the headers set. This
is useful to re-request a resource, just with a slightly modified or
identical URL.

2 months agopull-job: add helpers to detect requests for authentication, and accept bearer tokens
Lennart Poettering [Fri, 7 Nov 2025 07:31:34 +0000 (08:31 +0100)] 
pull-job: add helpers to detect requests for authentication, and accept bearer tokens

2 months agopull-job: add 'description' field to PullJob
Lennart Poettering [Thu, 6 Nov 2025 09:46:07 +0000 (10:46 +0100)] 
pull-job: add 'description' field to PullJob

This is shown in the output in place of the URL if non-NULL. This is
useful for OCI's hash-based URLs, which alone are very opaque to read.

2 months agopull-job: optionally free userdata when we destroy a PullJob
Lennart Poettering [Thu, 6 Nov 2025 08:32:56 +0000 (09:32 +0100)] 
pull-job: optionally free userdata when we destroy a PullJob

2 months agopull-job: add interface for controlling Accept: header sent to http server
Lennart Poettering [Wed, 5 Nov 2025 15:48:46 +0000 (16:48 +0100)] 
pull-job: add interface for controlling Accept: header sent to http server

2 months agopull-job: keep track of content type reported by server
Lennart Poettering [Wed, 5 Nov 2025 15:47:59 +0000 (16:47 +0100)] 
pull-job: keep track of content type reported by server

2 months agouid-range: add uid_range_base() that returns the lowest entry
Lennart Poettering [Thu, 19 Feb 2026 14:02:48 +0000 (15:02 +0100)] 
uid-range: add uid_range_base() that returns the lowest entry

2 months agobasic: define Architecture typedef in basic-forward.h
Lennart Poettering [Mon, 16 Feb 2026 08:34:37 +0000 (09:34 +0100)] 
basic: define Architecture typedef in basic-forward.h

2 months agoudev: grant read access to PTP devices for unprivileged users
Carolina Jubran [Mon, 16 Feb 2026 09:24:53 +0000 (11:24 +0200)] 
udev: grant read access to PTP devices for unprivileged users

Change the default udev rule for /dev/ptp* from 0660 to 0664,
allowing unprivileged users read-only access.

NIC telemetry and hardware logs often use device timestamps that must
be correlated with host time via read-only PTP ioctls (e.g.
cross-timestamp queries). Requiring privileged access makes these
workflows unnecessarily restrictive.

Older kernels lacked proper permission checks in some PTP ioctls.
Kernel commit b4e53b15c04e3852949003752f48f7a14ae39e86 ("ptp: Add PHC
file mode checks. Allow RO adjtime() without FMODE_WRITE.") introduces
the necessary file mode validation, ensuring that read access does not
permit clock modification or configuration changes, which still require
write permissions.

This commit has been backported to all actively maintained stable
kernel branches.

Related to #31034

2 months agoNEWS: mention python requirement bump
Yu Watanabe [Thu, 19 Feb 2026 13:23:04 +0000 (22:23 +0900)] 
NEWS: mention python requirement bump

2 months agoopenssl-util: pass the UI callback for interactive PIN prompts
Kai Lüke [Thu, 19 Feb 2026 07:01:06 +0000 (16:01 +0900)] 
openssl-util: pass the UI callback for interactive PIN prompts

Observed with the tpm2 provider and the tpm2tss engine was that the
auth process failed because the provider/engine could not ask for the
PIN through the callback, resulting in:
  "Failed to load private key from ...: Input/output error"
Apparently the default UI method is not enough and the key setup
functions expect an explicit method.
Pass the existing UI method through as callback for the key setup.

2 months agoxorg/50-systemd-user: import XAUTHORITY only if set
Dmytro Bagrii [Thu, 19 Feb 2026 00:27:47 +0000 (02:27 +0200)] 
xorg/50-systemd-user: import XAUTHORITY only if set

The warning will still be reported if XAUTHORITY is set but not exported.
However, such scenario is unlikely for xinitrc.d scripts environment.

Fixes #40745

Signed-off-by: Dmytro Bagrii <dimich.dmb@gmail.com>
2 months agope-binary: wrap remaining LE fields with byte-swap macros
Oblivionsage [Wed, 18 Feb 2026 17:22:48 +0000 (18:22 +0100)] 
pe-binary: wrap remaining LE fields with byte-swap macros

Follow-up to 02cab70acf5ca67e838d0d34860baacbf9fc3b6c. pe_hash(),
section_offset_cmp() and uki_hash() still had a bunch of raw accesses
to LE fields (e_lfanew, SizeOfHeaders, PointerToRawData, SizeOfRawData,
VirtualSize, certificate_table->Size) without le32toh(), so they'd
produce garbage on big-endian.

Also wrap VirtualSize in bootspec.c for consistency.

2 months agovpick: Make suffix a single string again instead of a strv
Daan De Meyer [Wed, 18 Feb 2026 20:27:45 +0000 (21:27 +0100)] 
vpick: Make suffix a single string again instead of a strv

This was made a strv to handle either directories or raw images but
since we now handle that via multiple PickFilter instances, we don't
need suffixes to be a strv anymore.

2 months agoudev: rules: integration add spi bus for input dev
David Santamaría Rogado [Wed, 18 Feb 2026 20:24:16 +0000 (21:24 +0100)] 
udev: rules: integration add spi bus for input dev

This bus is used for internal input devices let's set the ID_BUS
property accordingly to tag devices over SPI as internal.

Follow-up for a4381cae8bfacb1160967ac499c2919da7ff8c2b.

2 months agotest: skip dnf signature checks in TEST-88-UPGRADE
Luca Boccassi [Wed, 18 Feb 2026 19:55:41 +0000 (19:55 +0000)] 
test: skip dnf signature checks in TEST-88-UPGRADE

Fixes failure on Rawhide:

TEST-88-UPGRADE.sh[512]: Transaction failed: Rpm transaction failed.
TEST-88-UPGRADE.sh[512]: Warning: skipped OpenPGP checks for 15 packages from repository: @commandline
TEST-88-UPGRADE.sh[512]:   - package systemd-shared-260~devel-20260218150812.fc45.x86_64 does not verify: no signature

2 months agotest: assorted fixes for integration tests (#40737)
Luca Boccassi [Wed, 18 Feb 2026 20:42:15 +0000 (20:42 +0000)] 
test: assorted fixes for integration tests (#40737)

2 months agomachined: Skip root user namespace check for user managers
Daan De Meyer [Wed, 18 Feb 2026 14:58:39 +0000 (15:58 +0100)] 
machined: Skip root user namespace check for user managers

You can register whatever process you want in the user machined instance
that is running in the same namespace as pid 1 as machined won't be allowed
to do anything privileged anyway that could be dangerous when running as a user
instance.

We have to skip the check as we user machined instances don't have
privileges to inspect pid1's user namespaces.

2 months agopcrextend: fix memory leak
Lennart Poettering [Wed, 18 Feb 2026 15:54:58 +0000 (16:54 +0100)] 
pcrextend: fix memory leak

Follow-up for: #40648
Addresses: https://github.com/systemd/systemd/pull/40648#issuecomment-3917469644

2 months agoTag accel devices for uaccess-render
Mario Limonciello (AMD) [Sun, 15 Feb 2026 13:28:47 +0000 (07:28 -0600)] 
Tag accel devices for uaccess-render

accel devices are used for things like NPUs and should be tagged
for the logged in user just like GPUs are.

2 months agotest: cover both verity verification mechanisms in TEST-70-TPM2-nvpcr 40737/head
Luca Boccassi [Wed, 18 Feb 2026 16:20:33 +0000 (16:20 +0000)] 
test: cover both verity verification mechanisms in TEST-70-TPM2-nvpcr

Follow-up for 521a523ce0cdcf0d529bd566f3d64ae93f10419d

2 months agotest: move check for verity kernel keyring support to util.sh
Luca Boccassi [Wed, 18 Feb 2026 16:11:34 +0000 (16:11 +0000)] 
test: move check for verity kernel keyring support to util.sh

2 months agotest: do not fail TEST-86-MULTI-PROFILE-UKI if full TPM2 support not available
Luca Boccassi [Wed, 18 Feb 2026 15:39:11 +0000 (15:39 +0000)] 
test: do not fail TEST-86-MULTI-PROFILE-UKI if full TPM2 support not available

On a mkosi run on GHA:

[    9.547863] TEST-86-MULTI-PROFILE-UKI.sh[458]: + /usr/lib/systemd/systemd-measure --current
[    9.552790] TEST-86-MULTI-PROFILE-UKI.sh[463]: Measuring boot phases: enter-initrd, enter-initrd:leave-initrd, enter-initrd:leave-initrd:sysinit, enter-initrd:leave-initrd:sysinit:ready
[    9.553086] TEST-86-MULTI-PROFILE-UKI.sh[463]: Found container virtualization none.
[    9.553308] TEST-86-MULTI-PROFILE-UKI.sh[463]: Reading EFI variable /sys/firmware/efi/efivars/LoaderTpm2ActivePcrBanks-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
[    9.553486] TEST-86-MULTI-PROFILE-UKI.sh[463]: Loaded shared library 'libtss2-esys.so.0' via dlopen().
[    9.553676] TEST-86-MULTI-PROFILE-UKI.sh[463]: Loaded shared library 'libtss2-rc.so.0' via dlopen().
[    9.553867] TEST-86-MULTI-PROFILE-UKI.sh[463]: Loaded shared library 'libtss2-mu.so.0' via dlopen().
[    9.554050] TEST-86-MULTI-PROFILE-UKI.sh[463]: Sorry, system lacks full TPM2 support.
[FAILED] Failed to start TEST-86-MULTI-PROFILE-UKI.service - TEST-86-MULTI-PROFILE-UKI.

2 months agostub: more hardening against malformed images
Luca Boccassi [Wed, 18 Feb 2026 15:05:44 +0000 (15:05 +0000)] 
stub: more hardening against malformed images

Avoid issues with malformed images.

Reported on various yeswehack.com reports

YWH-PGM9780-73
YWH-PGM9780-68
YWH-PGM9780-67
YWH-PGM9780-87

2 months agovmspawn: Don't keep tpmstate around in auto mode if ephemeral
Daan De Meyer [Wed, 18 Feb 2026 13:02:53 +0000 (14:02 +0100)] 
vmspawn: Don't keep tpmstate around in auto mode if ephemeral

2 months agoBump minimum version of python to 3.9 (#40711)
Zbigniew Jędrzejewski-Szmek [Wed, 18 Feb 2026 12:33:29 +0000 (13:33 +0100)] 
Bump minimum version of python to 3.9 (#40711)

2 months agobash completion: various machinectl/portablectl fixes (#40719)
Luca Boccassi [Wed, 18 Feb 2026 11:08:29 +0000 (11:08 +0000)] 
bash completion: various machinectl/portablectl fixes (#40719)

2 months agobuild(deps): bump super-linter/super-linter in the actions group
dependabot[bot] [Wed, 18 Feb 2026 10:42:50 +0000 (10:42 +0000)] 
build(deps): bump super-linter/super-linter in the actions group

Bumps the actions group with 1 update: [super-linter/super-linter](https://github.com/super-linter/super-linter).

Updates `super-linter/super-linter` from 8.4.0 to 8.5.0
- [Release notes](https://github.com/super-linter/super-linter/releases)
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/super-linter/super-linter/compare/12562e48d7059cf666c43a4ecb0d3b5a2b31bd9e...61abc07d755095a68f4987d1c2c3d1d64408f1f9)

---
updated-dependencies:
- dependency-name: super-linter/super-linter
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2 months agobash completion: add --user/--system to portablectl 40719/head
Luca Boccassi [Tue, 17 Feb 2026 21:53:14 +0000 (21:53 +0000)] 
bash completion: add --user/--system to portablectl

2 months agobash completion: add missing machinectl parameters
Luca Boccassi [Tue, 17 Feb 2026 21:50:59 +0000 (21:50 +0000)] 
bash completion: add missing machinectl parameters

2 months agobash completion: fix machinectl completion when mixing machines and files
Luca Boccassi [Tue, 17 Feb 2026 20:56:16 +0000 (20:56 +0000)] 
bash completion: fix machinectl completion when mixing machines and files

2 months agobash completion: add --system/--user to machinectl
Luca Boccassi [Tue, 17 Feb 2026 20:59:50 +0000 (20:59 +0000)] 
bash completion: add --system/--user to machinectl

2 months agoci: set dependabot cooldown period, disable persisting credentials for actions/checko...
Luca Boccassi [Wed, 18 Feb 2026 10:39:11 +0000 (10:39 +0000)] 
ci: set dependabot cooldown period, disable persisting credentials for actions/checkout (#40728)

github/dependabot: set cooldown period
github/workflows: disable persisting credentials for actions/checkout

2 months agometrics: add networkd related metrics (#40619)
Yu Watanabe [Wed, 18 Feb 2026 10:26:55 +0000 (19:26 +0900)] 
metrics: add networkd related metrics (#40619)

This adds support for networkd related metrics. The output looks like this:
```
{
"name" : "io.systemd.Network.addressState",
"object" : "lo",
"value" : "off"
}
{
"name" : "io.systemd.Network.adminState",
"object" : "lo",
"value" : "unmanaged"
}
{
"name" : "io.systemd.Network.carrierState",
"object" : "lo",
"value" : "carrier"
}
{
"name" : "io.systemd.Network.ipv4AddressState",
"object" : "lo",
"value" : "off"
}
{
"name" : "io.systemd.Network.ipv6AddressState",
"object" : "lo",
"value" : "off"
}
{
"name" : "io.systemd.Network.managedInterfaces",
"value" : 0
}
{
"name" : "io.systemd.Network.operationalState",
"object" : "lo",
"value" : "carrier"
}
```

2 months agoRevert "check-os-release.py compatible with Python < 3.8" 40711/head
Yu Watanabe [Tue, 17 Feb 2026 11:40:55 +0000 (20:40 +0900)] 
Revert "check-os-release.py compatible with Python < 3.8"

This reverts commit ce0a056abc41168e1b45537505ca9f65bf6f5c30.

2 months agoRevert "tools: make update-dbus-docs compatible with Python 3.7"
Yu Watanabe [Tue, 17 Feb 2026 11:40:24 +0000 (20:40 +0900)] 
Revert "tools: make update-dbus-docs compatible with Python 3.7"

This reverts commit 668b3a42fe9e250912bd3efa4460ed691452d9bf.

Now we require Python 3.9 or newer.

2 months agoRevert "generate-bpf-delegate-configs: fix compatibility with Python 3.7"
Yu Watanabe [Tue, 17 Feb 2026 11:33:54 +0000 (20:33 +0900)] 
Revert "generate-bpf-delegate-configs: fix compatibility with Python 3.7"

This reverts commit dee77ac201741709b2323cae73aeeaff60fd8521.

Now we require Python 3.9 or newer.

2 months agoRevert "meson: fix compatibility with Python 3.7"
Yu Watanabe [Tue, 17 Feb 2026 11:31:10 +0000 (20:31 +0900)] 
Revert "meson: fix compatibility with Python 3.7"

This reverts commit 2793d6acf063ae8fe506a1684e5a24ce83267e6d.

Now we require Python 3.9 or newer.

2 months agoBump minimum version of python to 3.9
Jörg Behrmann [Tue, 17 Feb 2026 09:20:05 +0000 (10:20 +0100)] 
Bump minimum version of python to 3.9

This was announced in fd8c62075197e4f4702bb6e4537116a64cb539b7 and every
still-supported distributo release provides at least 3.9, as tracked by #38608.

2 months agomeson: ukify unconditionally requires pefile module
Yu Watanabe [Tue, 17 Feb 2026 12:07:27 +0000 (21:07 +0900)] 
meson: ukify unconditionally requires pefile module

Follow-up for 3fc5eed47091363247012454df458e1a3303bf12.

2 months agometrics: add networkd related metrics 40619/head
Yaping Li [Tue, 10 Feb 2026 01:08:01 +0000 (17:08 -0800)] 
metrics: add networkd related metrics

2 months agonetwork: use higher log level when we cannot bind resolve hook varlink socket
Yu Watanabe [Wed, 18 Feb 2026 08:53:35 +0000 (17:53 +0900)] 
network: use higher log level when we cannot bind resolve hook varlink socket

2 months agomeson,test: sort unit files
Yu Watanabe [Wed, 18 Feb 2026 03:10:50 +0000 (12:10 +0900)] 
meson,test: sort unit files

2 months agogithub/workflows: disable persisting credentials for actions/checkout 40728/head
Dmitry V. Levin [Wed, 18 Feb 2026 08:00:00 +0000 (08:00 +0000)] 
github/workflows: disable persisting credentials for actions/checkout

Set `persist-credentials: false` for actions/checkout.

By default, using `actions/checkout` causes a credential to be persisted on
disk.  Subsequent steps may accidentally publicly persist the credential, e.g.
by including it in a publicly accessible artifact via actions/upload-artifact.
However, even without this, persisting the credential on disk is non-ideal
unless actually needed.

Link: https://docs.zizmor.sh/audits/#artipacked
2 months agogithub/dependabot: set cooldown period
Dmitry V. Levin [Wed, 18 Feb 2026 08:00:00 +0000 (08:00 +0000)] 
github/dependabot: set cooldown period

By default, Dependabot does not perform any cooldown on dependency updates.
In other words, a regularly scheduled Dependabot run may perform an update
on a dependency that was just released moments before the run began.
This presents both stability and supply-chain security risks.

To mitigate these risks, explicitly set Dependabot cooldown period to 7 days.

Link: https://docs.zizmor.sh/audits/#dependabot-cooldown
2 months agobootspec: add missing else
Yu Watanabe [Wed, 18 Feb 2026 01:53:57 +0000 (10:53 +0900)] 
bootspec: add missing else

Otherwise, OOM error will never checked, and the "preferred" setting
always emits warning that the field is unknown.

Follow-up for 450e0dce02d754d7af599dd99ab40b9363072760.
Fixes CID#1645063.

2 months agoudev: rules: integration fix
David Santamaría Rogado [Tue, 17 Feb 2026 22:57:49 +0000 (23:57 +0100)] 
udev: rules: integration fix

ID_INTEGRATION is not being updated with hwdb entries, asign the new
value to it when hwdb has been imported.

We still need the 65-integration.rule assignment for devices that aren't
in hwdb.

While at it remove unneeded check in 70-touchpad.rules, as it was not
added for 70-joystick.rules with the statement if ID_INPUT_* is set and
ID_INPUT not, there is a bug elsewhere. And remove unneeded gotos in
both files.

Follow-up for a4381cae8bfacb1160967ac499c2919da7ff8c2b.

2 months agosysupdate: Use partition types for pending/partial partitions
Daan De Meyer [Tue, 17 Feb 2026 19:57:01 +0000 (20:57 +0100)] 
sysupdate: Use partition types for pending/partial partitions

Fixes #40658

2 months agoREADME: mention about musl requirements
Yu Watanabe [Wed, 18 Feb 2026 02:03:18 +0000 (11:03 +0900)] 
README: mention about musl requirements

2 months agope-binary: fix missing le16toh() on NumberOfSections in pe_hash/uki_hash
Oblivionsage [Tue, 17 Feb 2026 18:39:05 +0000 (19:39 +0100)] 
pe-binary: fix missing le16toh() on NumberOfSections in pe_hash/uki_hash

pe_hash() and uki_hash() pass pe_header->pe.NumberOfSections directly
to typesafe_qsort() and FOREACH_ARRAY() without le16toh(). On
big-endian (s390x), NumberOfSections=3 gets read as 0x0300 (768),
while pe_load_sections() correctly converts it and only allocates 3
sections. This makes qsort process 768 elements on a 3-element
buffer, causing a heap-buffer-overflow (confirmed with ASAN on
native s390x).

Wrap all three raw usages with le16toh() to match pe_load_sections().

2 months agoverity: measure all root hashes as we activate to a new NvPCR (#40648)
Lennart Poettering [Tue, 17 Feb 2026 22:44:46 +0000 (23:44 +0100)] 
verity: measure all root hashes as we activate to a new NvPCR (#40648)

2 months agoupdate TODO 40648/head
Lennart Poettering [Wed, 11 Feb 2026 17:27:42 +0000 (18:27 +0100)] 
update TODO

2 months agoci: add simple test that ensures the verity nvpcr measurements are made
Lennart Poettering [Tue, 17 Feb 2026 20:59:30 +0000 (21:59 +0100)] 
ci: add simple test that ensures the verity nvpcr measurements are made

2 months agogpt-auto-generator: enable nvpcr logic by default
Lennart Poettering [Wed, 11 Feb 2026 15:29:59 +0000 (16:29 +0100)] 
gpt-auto-generator: enable nvpcr logic by default

Let's enable this kind of measurement by default if people buy into UKIs
and stuff, just like volume key measurement is now enabled by default.

2 months agoveritysetup: optionally measure Verity once we activated it
Lennart Poettering [Wed, 11 Feb 2026 12:13:21 +0000 (13:13 +0100)] 
veritysetup: optionally measure Verity once we activated it

As in the previous commit, also enable the measurement logic when
activating Verity via veritsetup rather than the dissection logic.

The logic stays close to the interface of cryptsetup for measuring the
volume key.

2 months agodissect-image: measure Verity before making use of them
Lennart Poettering [Wed, 11 Feb 2026 12:12:26 +0000 (13:12 +0100)] 
dissect-image: measure Verity before making use of them

Let's hook up the dissection logic with the new measurement infra, and
issue the measurement after successfully unlock an image, but before
returning to the caller.

Note that ideally we'd do this measurement in the kernel, so that we can
place it after authenticating the root hash, but before activating the
medium. One day we should be able to do that via eBPF based on userspace
policies, but for now, this would require too much kernel rework.

Let's however make sure our measurements only contain data that the
kernel could know too, so that we hopefully can move these measurements
to the kernel without changing their formatting.

2 months agopcrextend-util: add helpers for measuring roothash/signature of Verity volumes
Lennart Poettering [Wed, 11 Feb 2026 12:11:38 +0000 (13:11 +0100)] 
pcrextend-util: add helpers for measuring roothash/signature of Verity volumes

This adds infrastructure for measuring Verity root hashes from
userspace, along with he issuer/serial of the signatures used to unlock
them.

We measure the triplet of volume name, root hash and issuer/serial. if
confext/sysext use different signing keys then this ensures the event
log carry information about the type of image measures.

2 months agopkcs7-util: add helpers for extracting signer info from PKCS7 signatures
Lennart Poettering [Wed, 11 Feb 2026 12:10:47 +0000 (13:10 +0100)] 
pkcs7-util: add helpers for extracting signer info from PKCS7 signatures

Once we start measuring Verity volumes as we activate them we want to
include information about the signature keys used, so that we can have
distinct ones for confext and for sysext and ther purposes and thus have
a cryptograpically protected hint about the kind of image we have
activated in the event log.

Ideally we'd measure a fingerprint of the signing certificate here, but
we don't have that here typically (as PKCS7 signatures used here
typically do not embed that), hence use the next best thing: the issuer
name and the serial number.

2 months agotpm2-setup: introduce nvpcr for measuring Verity images
Lennart Poettering [Wed, 11 Feb 2026 12:13:00 +0000 (13:13 +0100)] 
tpm2-setup: introduce nvpcr for measuring Verity images

I thnk it's crucial we start to measure Verity images as we activate
them, so that the event log has a full trace of the compisition of the
system. hence let's introduce a new NvPCR for this purpse, under the
name "verity".

2 months agocryptsetup: extend HAVE_TPM2 conditioning to cover more
Lennart Poettering [Wed, 11 Feb 2026 12:10:05 +0000 (13:10 +0100)] 
cryptsetup: extend HAVE_TPM2 conditioning to cover more

If TPM2 support is off, any check for TPM2 support will fail, hence we
can just suppress it.

2 months agopcrextend: allow access to the userspace event type field when measuring something
Lennart Poettering [Wed, 11 Feb 2026 13:28:02 +0000 (14:28 +0100)] 
pcrextend: allow access to the userspace event type field when measuring something

It think we should move most measurements out of the individual tools
requesting them and into the pcrextend service via Varlink, so that
fewer components require access to the TPM.

This only works however, if we can actually write full-blown event log
records via this mechanism, and for that we still were missing access to
the userspace event type we insert into the event log. Add that.

2 months agocryptsetup: move default choice of nvpcr for keyslots from generator into cryptsetup
Lennart Poettering [Wed, 11 Feb 2026 15:29:19 +0000 (16:29 +0100)] 
cryptsetup: move default choice of nvpcr for keyslots from generator into cryptsetup

Let's pick the default NvPCR name to use inside of cryptsetup itself, instead
of in the generator. I think this is the better choice, since it means
the default can also be used if the regular verittab generator is used
instead of the gpt-auto generator.

2 months agosystemd-boot: add a preferred setting that's similar to default but avoids booting...
r-vdp [Sun, 11 Jan 2026 18:49:34 +0000 (19:49 +0100)] 
systemd-boot: add a preferred setting that's similar to default but avoids booting known-bad entries

Motivation:
Currently, when setting the default boot pattern, boot assessment status
is not taken into account. This means that with boot assessment enabled,
when an explicit boot entry is configured as the default entry using an
EFI var, as is common for instance in A/B boot schemes, the configured
entry will be booted indefinitly, regardless of the entry's boot
assessment status.
In order to allow for this use case in combination with boot assessment,
we introduce a new `preferred` keyword, both in the config file and in the
bootctl CLI, that acts very similar to the existing `default` keyword but
takes boot assessment into account and never selects any entries that
have been marked as bad.
If the preferred pattern does not resolve to any bootable entry, and a
default pattern is also specified, then the default pattern will be
considered next, and we may then still select a known-bad entry to be
booted.

Fixes: https://github.com/systemd/systemd/issues/31215
Fixes: https://github.com/systemd/systemd/issues/40192