NEWS: add new items for v261~rc1
This commit is contained in:
@@ -21,10 +21,11 @@ CHANGES WITH 261 in spe:
|
||||
|
||||
* systemd-nspawn's --user= option has been renamed to --uid=. The -u
|
||||
short option continues to work. The old --user NAME and --user=NAME
|
||||
form (with and without "=") are still accepted but deprecated; a warning
|
||||
is emitted suggesting --uid=NAME. The --user option (without an argument)
|
||||
has been repurposed as a standalone switch (without argument) to select
|
||||
the user service manager scope, matching --system.
|
||||
form (with and without "=") are still accepted but deprecated; a
|
||||
warning is emitted suggesting --uid=NAME. The --user option (without
|
||||
an argument) has been repurposed as a standalone switch (without
|
||||
argument) to select the user service manager scope, matching
|
||||
--system.
|
||||
|
||||
* Several configuration fields in the io.systemd.Unit varlink interface
|
||||
that were previously exposed as plain strings have been converted to
|
||||
@@ -52,31 +53,97 @@ CHANGES WITH 261 in spe:
|
||||
changed to restrict socket address families to AF_INET, AF_INET6 and
|
||||
AF_UNIX.
|
||||
|
||||
New features:
|
||||
Changes in the system and service manager:
|
||||
|
||||
* A new tmpfiles.d/root.conf has been added that sets permissions
|
||||
on the root directory (/) to 0555
|
||||
* PID1 now supports the kernel's Live Update Orchestration (LUO) /
|
||||
Kexec Handover (KHO) systems when present and enabled. System units'
|
||||
FD Stores are now preserved through kexec, and units will get back
|
||||
stashed (named) file descriptors after kexec, if the kernel supports
|
||||
the FD type (at the time of writing only memfds are supported).
|
||||
Units can also create their own LUO Sessions by talking to the kernel
|
||||
directly, and store them in their FD Stores, and those will be also
|
||||
preserved and passed down to the unit after kexec. Units must set
|
||||
'FileDescriptorStorePreserve=yes' in order to enable this feature.
|
||||
|
||||
* Networking to cloud IMDS services may be locked down for recognized
|
||||
clouds. This is recommended for secure installations, but typically
|
||||
conflicts with traditional IMDS clients such as cloud-init, which
|
||||
require direct IMDS access. The new meson option "-Dimds-network="
|
||||
can be used to change the default mode to "locked" at build-time.
|
||||
* User session managers now supports persisting user unit's FD Stores
|
||||
by receiving FDs via the notify socket, and passing them down via
|
||||
$SLISTEN_FDS when the user session is restarted, when the
|
||||
'FileDescriptorStorePreserve=yes' and 'FileDescriptorStoreMax='
|
||||
options are set in the user@.service unit. Combined with the LUO
|
||||
support, this lets user units persist state (e.g.: memfds) across
|
||||
not only user session restarts, but also kexec reboots.
|
||||
|
||||
* The manager exposes a new ReloadCount property on its D-Bus and
|
||||
Varlink interfaces (org.freedesktop.systemd1.Manager and
|
||||
io.systemd.Manager respectively). The counter increments after
|
||||
each successfully completed daemon-reload. It is not preserved
|
||||
across daemon-reexec.
|
||||
each successfully completed daemon-reload, and it is reset on
|
||||
daemon-reexec.
|
||||
|
||||
Changes in systemd-sysext/systemd-confext:
|
||||
* A new ConditionSecurity=measured-os condition has been added that
|
||||
checks whether the system was booted with measured-boot semantics
|
||||
(i.e. via systemd-stub or an equivalent verified-boot mechanism
|
||||
that measured the OS to the TPM).
|
||||
|
||||
* A new unit setting CPUSetPartition= has been added that allows
|
||||
configuring the cpuset cgroup partition type (e.g. "root",
|
||||
"isolated", "member") for a service.
|
||||
|
||||
* Two new optional sd_notify() messages have been introduced that
|
||||
allow services to be notified of I/O and CPU pressure events from
|
||||
PSI (Pressure Stall Information). The system manager forwards
|
||||
pressure events for the corresponding cgroup.
|
||||
|
||||
* A new RestrictFileSystemAccess= setting has been added that uses a
|
||||
BPF LSM program to restrict execution to only binares that are
|
||||
stored on a signed and verified dm-verity protected filesystem.
|
||||
|
||||
* The io.systemd.Unit.StartTransient Varlink method has been extended
|
||||
to accept SetCredentials, SetCredentialsEncrypted, Environment and
|
||||
WorkingDirectory fields, on par with what is already possible via
|
||||
the legacy D-Bus interface.
|
||||
|
||||
* A new set of Varlink methods has been added to the
|
||||
io.systemd.Manager interface to request system shutdown:
|
||||
PowerOff(), Reboot(), SoftReboot(), Halt() and Kexec(). These
|
||||
complement the existing D-Bus interfaces.
|
||||
|
||||
* The io.systemd.Manager.ListUnitsByNames() Varlink method allows
|
||||
querying multiple units in one call and supports a result limit.
|
||||
|
||||
* A new DefaultMemoryZSwapWriteback= manager setting has been added
|
||||
that provides a system-wide default for the existing
|
||||
MemoryZSwapWriteback= per-unit setting.
|
||||
|
||||
* A new io.systemd.Job Varlink interface exposes information about
|
||||
pending and running manager jobs.
|
||||
|
||||
Changes in systemd-tmpfiles, systemd-sysusers and similar early-boot
|
||||
tools:
|
||||
|
||||
* A new tmpfiles.d/root.conf has been added that sets permissions
|
||||
on the root directory (/) to 0555.
|
||||
|
||||
* systemd-tmpfiles gained a new --inline option to accept
|
||||
tmpfiles.d directives on the command line.
|
||||
|
||||
* New directive types 'k/K' have been added to systemd-tmpfiles for
|
||||
setting file capabilities.
|
||||
|
||||
* systemd-firstboot can now set the static hostname from a system
|
||||
credential (firstboot.hostname).
|
||||
|
||||
Changes in systemd-sysext and systemd-confext:
|
||||
|
||||
* New initrd services systemd-sysext-sysroot.service and
|
||||
systemd-confext-sysroot.service are provided. These services are
|
||||
used to merge system and configuration extensions for the main system
|
||||
from the initrd. This overcomes the limitation that system and
|
||||
configuration extensions merged from the main system itself cannot be
|
||||
used to modify the resources which are used in the early boot.
|
||||
used to merge system and configuration extensions for the main
|
||||
system from the initrd. This overcomes the limitation that system
|
||||
and configuration extensions merged from the main system itself
|
||||
cannot be used to modify the resources which are used in the
|
||||
early boot.
|
||||
|
||||
* A kernel command line kill switch is now honored that disables
|
||||
systemd-sysext and systemd-confext merging entirely.
|
||||
|
||||
Changes in systemd-networkd and networkctl:
|
||||
|
||||
@@ -84,6 +151,321 @@ CHANGES WITH 261 in spe:
|
||||
dump acquired DHCP leases. This may be useful for inspecting the
|
||||
DHCP options provided by the server.
|
||||
|
||||
* systemd-networkd implements the io.systemd.service.Reload() Varlink
|
||||
method, and exposes new io.systemd.Network.Link.Describe(),
|
||||
Reconfigure(), Renew() and ForceRenew() methods. 'networkctl' now
|
||||
uses these Varlink methods in preference to the legacy D-Bus API
|
||||
where possible.
|
||||
|
||||
* A new IPv4SrcValidMark= setting has been added to .network files.
|
||||
|
||||
* The VRF.Table= setting now accepts symbolic route table names (as
|
||||
configured via RouteTable= in networkd.conf) in addition to
|
||||
numeric table IDs.
|
||||
|
||||
* New DHCPServerPoolSize= and DHCPServerPoolOffset= properties have
|
||||
been added to the D-Bus interface, mirroring the existing
|
||||
configuration file options.
|
||||
|
||||
* The DHCPv4 server gained support for serving the SIP server option
|
||||
(RFC 3361) to clients.
|
||||
|
||||
* The Varlink Describe() output now reports interface bit rates.
|
||||
|
||||
Changes in systemd-resolved:
|
||||
|
||||
* New 'DNSCacheSize=', 'MulticastDNSCacheSize=' and 'LLMNRCacheSize='
|
||||
settings are now supported to allow overriding the default caches
|
||||
sizes for the respective protocols.
|
||||
|
||||
* Additional local resource records may now be defined via drop-in
|
||||
configuration files, complementing the existing global definitions.
|
||||
|
||||
* Insecure DNSSEC answers using unsupported signature or digest
|
||||
algorithms are now correctly accepted as insecure, rather than
|
||||
being rejected outright.
|
||||
|
||||
* When StaleRetentionSec= is set, the resolver no longer flushes its
|
||||
cache on server switch or re-probe, keeping potentially useful
|
||||
stale entries available.
|
||||
|
||||
* /etc/hosts entries are now re-read on reload (SIGHUP / D-Bus
|
||||
Reload / Varlink Reload).
|
||||
|
||||
Changes in systemd-udevd, hwdb and udev rules:
|
||||
|
||||
* The DMI ID device (/sys/class/dmi/id) is now tagged so that
|
||||
early-boot consumers can reliably order against it.
|
||||
|
||||
* A new hwdb database describes basic IMDS endpoints for known
|
||||
cloud providers (see also systemd-imdsd above).
|
||||
|
||||
Changes in systemd-boot, systemd-stub, bootctl, ukify and BLS:
|
||||
|
||||
* A new "boot secret" mechanism has been added: systemd-boot can
|
||||
provision a per-system secret in an EFI variable that is locked
|
||||
down so that the OS cannot read it back. This allows the boot
|
||||
loader to attest its identity to the booted system without giving
|
||||
the system the means to impersonate it on systems without a TPM2.
|
||||
|
||||
* systemd-stub now auto-detects the active EFI serial console
|
||||
device and appends an appropriate "console=" parameter to the
|
||||
kernel command line, simplifying serial-console UKI deployments.
|
||||
|
||||
* A new "extra" type-1 Boot Loader Specification stanza is parsed
|
||||
and used to deliver additional initrds to a UKI without modifying
|
||||
its contents. The generic "addon" handling has been generalized
|
||||
so that all UKI sidecar artifacts (initrds, command-line
|
||||
overlays, devicetree blobs, etc.) follow the same lookup rules.
|
||||
|
||||
* systemd-boot will never auto-boot a non-default UKI profile,
|
||||
preventing accidental boots into alternative profiles after a
|
||||
single timeout expiry.
|
||||
|
||||
* El Torito CDROM boot catalog partition UUIDs are now discovered
|
||||
and exposed via the same mechanism as GPT/MBR partitions,
|
||||
enabling unified ISO image dissection.
|
||||
|
||||
* bootctl gained a new 'link' verb (with a matching Varlink API)
|
||||
that installs a UKI on the ESP by symlinking it from
|
||||
/usr/lib/modules/ instead of copying. A new
|
||||
'--print-efi-architecture' option prints the EFI architecture
|
||||
identifier of the running system, which is useful from packaging
|
||||
scripts.
|
||||
|
||||
Changes in systemd-repart:
|
||||
|
||||
* A new EncryptKDF= setting controls the KDF used for LUKS2
|
||||
partitions (e.g. argon2id, argon2i, pbkdf2).
|
||||
|
||||
* A new VolumeName= setting allows specifying the LUKS2 volume
|
||||
name independently of the on-disk partition label.
|
||||
|
||||
* A new BlockDeviceReplace= setting allows partitions to
|
||||
atomically replace the contents of an existing block device.
|
||||
|
||||
* A new --grain-size= command line option overrides the alignment
|
||||
granularity used when placing partitions.
|
||||
|
||||
* A new --el-torito= command line option causes a minimal El
|
||||
Torito boot catalog to be written for EFI boot on hybrid ISO
|
||||
images.
|
||||
|
||||
* --shrink now uses mkfs.btrfs's native minimal-filesystem support
|
||||
when available.
|
||||
|
||||
* A new persistent activation flag for LUKS2 partitions causes the
|
||||
allow-discards option to be persisted in the LUKS2 header.
|
||||
|
||||
Changes in systemd-sysupdate:
|
||||
|
||||
* Partial-and-pending UpdateSet states are now correctly recognized
|
||||
in additional code paths, and partial versions may be returned
|
||||
as the next candidate as well as targeted by vacuuming.
|
||||
|
||||
* systemd-sysupdate now emits READY=1 via sd_notify() after the
|
||||
install step completes, allowing for tighter integration with
|
||||
orchestration tooling.
|
||||
|
||||
* systemd-sysupdate is now installed in /usr/bin/ alongside the
|
||||
other user-facing tools, as it is no longer considered experimental.
|
||||
|
||||
Changes in systemd-nspawn, systemd-vmspawn, systemd-machined:
|
||||
|
||||
* systemd-nspawn now supports persisting the payload's system manager
|
||||
FD Store by receiving FDs via the notify socket, and passing them
|
||||
down via $SLISTEN_FDS when the container is restarted, when the
|
||||
'FileDescriptorStorePreserve=yes' and 'FileDescriptorStoreMax='
|
||||
options are set in the unit inside which systemd-nspawn is running.
|
||||
Combined with the LUO support in PID1, this lets containers persist
|
||||
state (e.g.: memfds) across not only container restarts, but also
|
||||
kexec reboots.
|
||||
|
||||
* systemd-nspawn gained new --forward-journal= and
|
||||
--forward-journal-NAME= options to forward journal entries from
|
||||
the payload to specified journal sockets.
|
||||
|
||||
* systemd-vmspawn gained a new --bind-volume= option that binds host
|
||||
paths into the VM.
|
||||
|
||||
* systemd-vmspawn gained a new --cxl= option that configures CXL
|
||||
memory devices and adds support for memory hotplug.
|
||||
|
||||
* systemd-vmspawn gained a new --console-transport= option that
|
||||
controls how the VM console is presented (PTY, native, headless,
|
||||
etc.); a PTY is now provided for the native console mode, and
|
||||
headless console operation is supported.
|
||||
|
||||
* systemd-vmspawn gained a new --efi-nvram-template= option that
|
||||
selects the EFI variable store template.
|
||||
|
||||
* systemd-vmspawn gained a new --firmware-features= option that
|
||||
enables or disables individual firmware features (with a
|
||||
"~feature" prefix for negation).
|
||||
|
||||
* systemd-vmspawn now supports direct kernel boot without UEFI
|
||||
firmware.
|
||||
|
||||
* systemd-vmspawn gained support for new disk types 'nvme',
|
||||
'virtio-scsi' and 'scsi-cd' (for ISO/CD-ROM images).
|
||||
|
||||
* systemd-vmspawn now exposes a QMP-to-Varlink bridge that makes
|
||||
the running QEMU instance reachable to other tools at runtime.
|
||||
|
||||
* The io.systemd.MachineInstance Varlink interface gained
|
||||
AddStorage(), RemoveStorage() and ReplaceStorage() methods for
|
||||
runtime storage manipulation, implemented by systemd-vmspawn.
|
||||
|
||||
* systemd-vmspawn now pre-allocates PCIe root ports to allow PCIe
|
||||
device hotplug, with multifunction packing where supported.
|
||||
|
||||
* systemd-vmspawn now uses the QEMU built-in vdagent (clipboard,
|
||||
resolution sync) instead of spicevmc.
|
||||
|
||||
* systemd-vmspawn now searches XDG_DATA_DIRS for QEMU firmware
|
||||
descriptors.
|
||||
|
||||
* systemd-vmspawn gained a new --print-profiles command that falls
|
||||
back to a non-JSON representation when the output is not JSON.
|
||||
|
||||
* systemd-vmspawn's --grow-image now detects and rejects qcow2
|
||||
images, where the operation is not supported.
|
||||
|
||||
* systemd-vmspawn now propagates the host TERM environment variable
|
||||
into the VM.
|
||||
|
||||
* A new 'storagectl' command line tool and an accompanying
|
||||
io.systemd.StorageProvider Varlink interface have been added,
|
||||
alongside the new generic providers systemd-storage-fs@.service and
|
||||
systemd-storage-block@.service. These allow exposing storage
|
||||
resources (filesystems, block devices) in a unified manner for use
|
||||
as managed user storage.
|
||||
|
||||
* systemd-machined Machine.List/Register output now includes a
|
||||
'controlAddress' field describing the manager's bus address,
|
||||
where known.
|
||||
|
||||
* Querying metadata of registered machines is now gated behind
|
||||
dedicated polkit actions
|
||||
(org.freedesktop.machine1.inspect-machines and inspect-images).
|
||||
|
||||
* machinectl gained 'bind-volume' / 'unbind-volume' verbs to
|
||||
manage runtime bind mounts of host paths into running machines,
|
||||
and new verbs to control the lifecycle of VMs (pause, resume,
|
||||
power-off, etc.) via the io.systemd.MachineInstance Varlink
|
||||
interface.
|
||||
|
||||
Changes in systemd-coredump and coredumpctl:
|
||||
|
||||
* 'coredumpctl info' has gained JSON output (--json=).
|
||||
|
||||
* The crashing thread's TID and name are now captured and
|
||||
recorded alongside the existing PID/comm metadata.
|
||||
|
||||
Changes in systemd-logind:
|
||||
|
||||
* A new io.systemd.Shutdown Varlink interface has been introduced
|
||||
to request system shutdown. The peer connection identifier of
|
||||
the requester is logged.
|
||||
|
||||
Changes in systemd-creds, systemd-cryptsetup and
|
||||
systemd-cryptenroll:
|
||||
|
||||
* systemd-creds only locks against the public-key TPM2 PCR when
|
||||
booting on UEFI firmware that supports TPMs, avoiding spurious
|
||||
errors on systems without TPM.
|
||||
|
||||
* libcryptsetup is now loaded via dlopen() in the cryptsetup
|
||||
binaries, eliminating the hard runtime dependency for systems that do
|
||||
not actually use it.
|
||||
|
||||
Changes in libsystemd:
|
||||
|
||||
* A new public 'sd-dlopen' header-only API has been added that
|
||||
provides macros (SD_ELF_NOTE_DLOPEN()) for annotating dlopen'd
|
||||
dependencies via the UAPI.12 ELF metadata specification
|
||||
(https://uapi-group.org/specifications/specs/elf_dlopen_metadata/).
|
||||
This header is licensed under MIT-0 to facilitate embedding it
|
||||
directly in other projects.
|
||||
|
||||
* A new 'sd_json_parse_fd' API is now available to facilitate parsing
|
||||
FDs out of Varlink connections.
|
||||
|
||||
* sd-varlink gained a protocol upgrade mechanism, exposed via the
|
||||
new sd_varlink_call_and_upgrade() and
|
||||
sd_varlink_reply_and_upgrade() API. Internally the upgrade fd
|
||||
handling and MSG_PEEK semantics for upgradable sockets have
|
||||
been reworked, and the upgrade API always returns two file
|
||||
descriptors.
|
||||
|
||||
* The 'ret' argument of sd_varlink_idl_parse() is now optional.
|
||||
|
||||
* sd-varlink's per-UID connection limit has been scaled down to
|
||||
128.
|
||||
|
||||
* Enumeration types have been introduced throughout the
|
||||
well-known Varlink interfaces: ManagedOOMMode in
|
||||
io.systemd.oom; class and whom in io.systemd.Machine;
|
||||
configuration, scheduling and mount settings in
|
||||
io.systemd.Unit; configuration settings in io.systemd.Manager.
|
||||
|
||||
* varlinkctl gained a new 'serve' verb that wraps an arbitrary
|
||||
command as a Varlink server, and a new '--upgrade' option
|
||||
(along with '--exec') to consume the protocol upgrade API.
|
||||
|
||||
* A new JsonStream transport-layer module has been added for
|
||||
consumers building higher-level JSON-over-stream protocols on
|
||||
top of sd-json.
|
||||
|
||||
* sd-path now exposes an XDG 'projects' user directory.
|
||||
|
||||
* sd-device gained a number of helpers, including
|
||||
sd_device_get_sysattr_safe_string(), sd_device_get_sysattr_u8(),
|
||||
and sd_device_get_sysattr_u16().
|
||||
|
||||
Other changes:
|
||||
|
||||
* A new systemd-imdsd service has been introduced that makes cloud
|
||||
Instance Metadata Service (IMDS) data accessible locally. It is
|
||||
accompanied by a 'systemd-imds' client tool, a generator that hooks
|
||||
IMDS retrieval into cloud guests, a hwdb database describing basic
|
||||
IMDS endpoints for known clouds (including AWS, Azure, Google
|
||||
Cloud, Oracle Cloud, Tencent Cloud and Alibaba ECS), and TPM
|
||||
measurements of the retrieved data so that IMDS-provided values can
|
||||
be used as attestation inputs. Networking to cloud IMDS services
|
||||
may also be locked down for recognized clouds; the new meson option
|
||||
"-Dimds-network=" can change the default mode to "locked" at build
|
||||
time. This is recommended for secure installations, but typically
|
||||
conflicts with traditional IMDS clients such as cloud-init, which
|
||||
require direct IMDS access.
|
||||
|
||||
* The systemd-report framework introduced in v260 has been
|
||||
substantially extended. Basic system metrics
|
||||
(PhysicalMemoryBytes, CPUsOnline) are now provided by a new
|
||||
systemd-report-basic@.service that is enabled by default via its
|
||||
report-basic.socket activation unit. Per-cgroup metrics (CPU time,
|
||||
etc.) and per-service metrics are exposed through dedicated Varlink
|
||||
services. systemd-report gained the ability to upload collected
|
||||
reports via a "varlink socket directory" of HTTP destinations, and
|
||||
to inject custom HTTP headers when doing so.
|
||||
|
||||
* 'systemctl kexec' gained a new --kernel-cmdline= argument that
|
||||
overrides the kernel command line for kexec invocations.
|
||||
|
||||
* 'systemctl kexec' now prefers invoking the 'kexec_file_load' system
|
||||
call directly, and uses the 'kexec' binary only as a fallback if
|
||||
that is not available, so that on most systems the dependency on
|
||||
'kexec-tools' is no longer necessary.
|
||||
|
||||
* fstab-generator now supports swap on network block devices.
|
||||
|
||||
* libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk
|
||||
and libcryptsetup are now consistently loaded via dlopen()
|
||||
throughout the code base, further reducing the set of mandatory
|
||||
dependencies from all binaries.
|
||||
|
||||
* The unused dependency on libgpg-error has been dropped.
|
||||
|
||||
CHANGES WITH 260:
|
||||
|
||||
Feature Removals and Incompatible Changes:
|
||||
|
||||
Reference in New Issue
Block a user