Commit Graph
85440 Commits
Author SHA1 Message Date
Mike Yuan 4a6e5b0ae9 core: various cleanups for setup_input/output (#39860) 2025-12-18 15:56:42 +01:00
Mike Yuan 6e44160e0f docs/RELEASE: correct numbering without 7
Follow-up for b1192a01cd
2025-12-18 15:44:08 +01:00
Daan De Meyer 42b6f87a42 keyutil: Add extract-certificate
Useful to extract a certificate from a hardware token to a file, for
example in mkosi to ship the certificate from a hardware token in
/usr/lib/verity.d in an image
2025-12-18 13:57:32 +01:00
Daan De Meyer 9fc537437b keyutil: Rename public to extract-public 2025-12-18 13:56:38 +01:00
Daan De Meyer 8440492e90 openssl-util: Cast to const type 2025-12-18 13:56:38 +01:00
Daan De Meyer 8ecb7deafa openssl-util: Fix logging 2025-12-18 13:56:37 +01:00
Luca Boccassi 9e418cd075 inhibit: allow filtering and add --json support for --list (#39973) 2025-12-18 10:47:23 +00:00
Luca Boccassi 9a34971421 fido2: fix enrolling when UV is required ('alwaysUv')
When a Yubikey or other fido2 device has FIPS mode enabled, UV will
always be required and cannot be disabled. Unhelpfully, when it is not
sent down, the hardware token (not the library) returns a generic
FIDO_ERR_MISSING_PARAMETER:

$ systemd-cryptenroll --fido2-device=auto --fido2-with-client-pin=no foo
<...>
libfido2: rx: payload_len=1
libfido2: fido_rx: buf=0x55c9ce170940, len=1
libfido2: 0000: 14
libfido2: cbor_parse_reply: blob[0]=0x14
libfido2: fido_dev_get_assert_rx: adjust_assert_count
Failed to ask token for assertion: FIDO_ERR_MISSING_PARAMETER

This can be set even when the token doesn't support UV (as in, fingerprint
reader), in which case using the PIN is required.

Check if 'alwaysUv' is set, and if not already configured, force
either UV (if available) or PIN when enrolling.
2025-12-18 10:56:43 +01:00
Jeremy Kerr cc1ed77280 udev-builtin-net_id: Extend persistent naming support to MCTP interfaces
Now that we have Management Component Transport Protocol (MCTP) transports
available over USB, it would be helpful to apply udev's persistent
naming rules to MCTP interfaces, to follow the USB hub/port topology.

Enable persistent naming for ARPHRD_MCTP-type devices, using a "mc" name
prefix, and add appropriate definitions for the v260 naming sheme.
2025-12-18 10:54:51 +01:00
Popax21 f603bc37f4 nss-resolve: add env var to specify resolved ifindex
Adds a new `SYSTEMD_NSS_RESOLVE_INTERFACE` environment variable to the nss-resolve module, whose value is subsequently passed down to the `ifindex` resolved lookup option.
This allows name lookups to be constrained to a just single interface for e.g. captive portal browsers.
2025-12-18 10:53:27 +01:00
Lennart Poettering 18d90c1628 bash: clarfiy what 80-systemd-osc-context.sh is about in the spec 2025-12-18 10:50:23 +01:00
Lennart Poettering d91aed3b55 docs: add redirection of the osc context to uapi website 2025-12-18 10:50:23 +01:00
Zbigniew Jędrzejewski-Szmek d91a184509 core: use terminal_get_size_by_csi18 to query terminal size
This allows us to query the window size without moving the cursor. We have
various reports about the cursor being in an unexpected position and/or state.

Closes https://github.com/systemd/systemd/issues/37526.
2025-12-18 10:47:19 +01:00
Luca Boccassi f33d550d44 Add polkit support to varlinkctl and sd-sysext (#39796) 2025-12-18 09:10:53 +00:00
Vitaly Kuznetsov 9e78b1e817 TODO: add unimplemented Integrity= systemd-repart options 2025-12-18 09:12:54 +01:00
Vitaly Kuznetsov bb09cc02bd TEST-50-DISSECT: test 'encrypted' and 'encryptedwithintegrity' policies
Test the newly introduced 'encryptedwithintegrity' image policy and verify
that it's different from 'encrypted' one.
2025-12-18 09:12:54 +01:00
Vitaly Kuznetsov 771085291d dissect-image: introduce 'encryptedwithintegrity' policy
LUKS2 supports built-in integrity checking which may come very handy to
mitigate partial rollback attacks on the storage when only some specific
parts are restored to some old encrypted state. Specific use-cases like
Confidential VMs may want to mandate the usage of feature e.g. on the root
volume. Introduce "encryptedwithintegrity" image policy to support that.

Note, due to the current libcryptsetup limitations, checking whether the
feature is enabled or not for the 'file' case (e.g. DDI image as a raw file)
requires setting up a loop device. To avoid that and keep dissect fully
functional when working unpriviliged, implement a minimal custom LUKS header
parser.
2025-12-18 09:12:54 +01:00
Vitaly Kuznetsov cb2bc7575a TEST-58-REPART: add testcase for LUKS2 integrity
Create an encrypted partition with LUKS2 integrity checking enabled, verify
that dm-integrity mapping appears.
2025-12-18 09:12:54 +01:00
Vitaly Kuznetsov 1a4a34287f repart: add basic support for LUKS2 integrity verification
Authenticated disk encryption is experimentally supported by cryptsetup since
v2.0.0 and allows for automatic dm-integrity setup for LUKS devices. Add
support for the mode to systemd-repart. Currently, the option can only be used
in 'online' mode as libcryptsetup does not support creating integrity data
without the use of in-kernel dm-integrity infrastructure.

Integrity=/IntegrityAlgorithm= are added in the anticipation of other integrity
protection options, e.g. enabling dm-integrity for a plain unencrypted
partition.
2025-12-18 09:12:49 +01:00
Daan De Meyer 27aba70b3b core: two trivial cleanups (#40126)
Split out from #40093
2025-12-18 08:55:29 +01:00
Daan De Meyer 198898c07b docs: some updates to release process (#40128) 2025-12-18 08:53:43 +01:00
Luca Boccassi cb6ccb1c31 mkosi: update debian commit reference to 6f15bdaae7014c233b662ac4a33d464893b81b36
* 6f15bdaae7 Update architecture match for 50-pid-max.conf (v3)
* 333cc1fcc5 Downgrade depends to recommends for IPC endpoint of respective libnss modules
* ab99a1b51a Revert "Update architecture match for 50-pid-max.conf"
* b93d7f855a Update changelog for 259~rc3-1 release
* 95c7f8a3d6 Install new udev rule
* 89509d9692 d/t/tests-in-lxd: re-construct --pin-packages arguments for autopkgtest
* 6b77249c71 d/extra/dbus-1: rename systemd-localed-read-only.conf
* 819831c19a Update architecture match for 50-pid-max.conf
* 0ddff89e9d Mirror dmi_arches from meson.build into debian/udev.install
* 398e8791db d/t/control: pull in optional libs for boot-and-services too
* c727922ad5 Update changelog for 259~rc2-1 release
* 8faf105531 Install new varlinkctl bash completion script
* f4b4cea2be d/t/control: ensure unit-tests autopkgtest pulls in dlopened libraries for test
* 7e8aba9883 Update changelog for 259~rc1-1 release
* 5953c42402 Update symbols file for v259~rc1
* 353125ccfa Install new files for v259~rc1
* ca22d1ca4f Drop patches, all merged upstream
* 32c75efca2 d/t/unit-config: fix python decorator copypasta
* e32179d633 d/rules: disable sysv compat in upstream builds
* cf77bd44be Install new files for upstream build
* aa564e5d3b kernel-install: skip 55-initrd.install when an initrd is already staged
2025-12-18 08:53:03 +01:00
Luca Boccassi ea73b8887b docs: update mkosi config file path in release process
Follow-up for fb514c2f8f
2025-12-18 00:47:14 +00:00
Luca Boccassi b1192a01cd docs: add OBS step to release process
Version rewriting in obs-service-tar-scm is not happy with rc tags
2025-12-18 00:46:41 +00:00
Mike Yuan 16bae207c2 core/dbus-execute: respect write flags for empty assignments too 2025-12-18 00:39:59 +01:00
Mike Yuan 8619c65fcf core/service: const and pure'ify service_restart_usec_next() 2025-12-18 00:39:59 +01:00
Antonio Alvarez Feijoo 2824182a12 inhibit: allow filtering --list also by what, who and why
Currently the list can only be filtered by mode, so make use of the remaining
options available to filter the output.
2025-12-17 23:23:44 +00:00
Antonio Alvarez Feijoo c40ab2337f inhibit: add --json support for --list 2025-12-17 23:23:44 +00:00
Mike Yuan 7498c391ec core/exec-invoke: remove redundant accmode validation on stderr
Follow-up for 171ceb4a00

In setup_output() we assume stdout has been set up properly
before stderr, hence the stdout we're inheriting from must
be writable (or more precisely, would have been adjusted to be).
Hence no need to duplicate it.
2025-12-17 23:23:22 +00:00
Mike Yuan a8e1796b09 core/exec-invoke: split out maybe_inherit_stdout_from_stdin(), use exec_input_is_inheritable()
Note that exec_input_is_inheritable() rightfully refuses EXEC_INPUT_FILE,
in which case std_output would have been reset in service_fix_stdio()
already.

While at it, use the generic fallback logic of first trying user manager
stdout when stdin is not writable.
2025-12-17 23:23:22 +00:00
Mike Yuan e04382384d core/execute: introduce exec_input_is_inheritable() helper 2025-12-17 23:23:22 +00:00
Mike Yuan b34aee0440 core/exec-invoke: socket_fd must be set if any of stdio requests it
This is checked as one of the very first things in exec_invoke(),
hence remove the condition in fixup_input() and the whole
fixup_output().
2025-12-17 23:23:22 +00:00
Mike Yuan c8a6c42e53 core/exec-invoke: use path_equal() on for stdio files 2025-12-17 23:23:22 +00:00
Mike Yuan 4dac3c6d76 core/execute-serialize: clean up stdio serialization
* Do not interleave root_directory_as_fd with stdio fields
* Do not use different serialization key for different modes
  pointing to same path
* Escape stdio file paths (as per
  9be46b1da8)
2025-12-17 23:23:22 +00:00
Mike Yuan 27660b470f core/dbus-execute: path is required if stdio is specified as file
This partially reverts d6ff82d37c.
2025-12-17 23:23:22 +00:00
Mike Yuan eac3867764 core/exec-invoke: fix stdout and stderr sharing the same named fd
Previously such usage would be refused by exec_context_named_iofds()
with -ENOENT, however setup_output() carried relevant logic.
2025-12-17 23:23:22 +00:00
Luca Boccassi 34f41471fc sysext: add polkit support to varlink service 2025-12-17 23:22:05 +00:00
Luca Boccassi a2d53619c0 varlinkctl: add support for polkit interactive auth 2025-12-17 23:22:05 +00:00
Luca Boccassi 90f4c0473a core: set Result=start-limit-hit when a unit is rate limited
There is currently no way to figure out a rate limit was hit on a unit,
as the last result is stripped in order to keep reporting the first
result, which is useful in case of a watchdog failure, which is the
reason why it was changed as such.

But rate limiting is also an important information to provide to
users, so allow the Result property to reflect it when it
happens.
2025-12-18 00:19:09 +01:00
Luca Boccassi 2a1193d4cc Bump version in meson.version 2025-12-17 23:14:11 +00:00
Luca Boccassi 9ca433482f Finalize meson.version for v259 2025-12-17 23:02:36 +00:00
Luca Boccassi b262ded0bd Boot loader menu docs and tweaks (#39842) 2025-12-17 23:00:59 +00:00
Zbigniew Jędrzejewski-Szmek 3cdd80d3e0 sd-boot: correct typos 2025-12-17 22:55:38 +01:00
Zbigniew Jędrzejewski-Szmek 221a33c412 TODO: remove resolved entry
Done in https://github.com/uapi-group/specifications/commit/677b722bb8b84625b68162ba201c8461497f9585.
2025-12-17 22:55:38 +01:00
Zbigniew Jędrzejewski-Szmek 755637b04a docs/BLI: add missing descriptions of feature bits
Follow up for 2553a5482c,
92bb46c464,
e15d18b4c6,
a67f22c4a7,
e1f1b5fc62.
2025-12-17 22:55:38 +01:00
Zbigniew Jędrzejewski-Szmek 3e2b026da3 man/systemd-boot: say that /EFI/systemd/drivers is for hardware
In aad0d11e7c we stopped supporting XBOOTLDR
with a different fs driver. This was the primary example that comes to mind
when we talk about loading filesystem drivers in the firmware. Since we don't
want people to do load such drivers, use a different example.
2025-12-17 22:55:38 +01:00
Zbigniew Jędrzejewski-Szmek 1228429908 docs/BOOT_LOADER_INTERFACE: use full variable names once
We said in the header that "all EFI variables use the vendor UUID
4a67b082-0a4c-41cf-b6c7-440b29bb8c4f", but people not familiar with
UEFI might not know that this is concatenated with the variable name.
Let's use the full form once — when introducing the variable — to
make it easier to grep and search for.

While at it, use sembreaks in the document. This makes subsequent
changes much easier to review. (It also shows that some sentences
are rather long and thus hard to understand.)
2025-12-17 22:55:23 +01:00
Luca Boccassi 676c098d0a Chores for v259 (#40120) 2025-12-17 18:39:40 +00:00
Luca Boccassi cf0d7f8330 NEWS: finalize 2025-12-17 13:35:38 +00:00
Luca Boccassi f1a862a26d NEWS: update contributors list 2025-12-17 13:34:57 +00:00