]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 weeks agoconf-files: introduce CONF_FILES_WARN flag and set it at various places 40290/head
Yu Watanabe [Tue, 6 Jan 2026 04:44:04 +0000 (13:44 +0900)] 
conf-files: introduce CONF_FILES_WARN flag and set it at various places

Closes #40285.

2 weeks agoudevadm: log path prefixed with the specified root directory
Yu Watanabe [Tue, 13 Jan 2026 08:45:35 +0000 (17:45 +0900)] 
udevadm: log path prefixed with the specified root directory

2 weeks agoudevadm: gracefully handle when a maked file is specified to udevadm verify/cat
Yu Watanabe [Tue, 13 Jan 2026 06:48:56 +0000 (15:48 +0900)] 
udevadm: gracefully handle when a maked file is specified to udevadm verify/cat

Previously, since 7cb4508c5af465ab1be1b103e6c2b613eb58e63c, if a masked
file is specified, the commands failed.
Let's warn that the file is masked and ignore the file.

2 weeks agotest: add test case for masked files in cat_files()
gvenugo3 [Sat, 10 Jan 2026 19:46:18 +0000 (19:46 +0000)] 
test: add test case for masked files in cat_files()

Add a test case to verify that cat_files() correctly handles symlinks
to /dev/null (masked configuration files) and returns success (0)
instead of failing.

This test complements the fix for issue #40313.

Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
2 weeks agopretty-print: do not fail when cat_files() tries to show a masked file
Yu Watanabe [Tue, 13 Jan 2026 06:39:39 +0000 (15:39 +0900)] 
pretty-print: do not fail when cat_files() tries to show a masked file

Before 661b5bfd216e383ac7836261eea9671875e6709b, cat_files() does not
check if a file is regular. If the file is a symlink to /dev/null, then
cat_files() simply shows an empty contents for the file.
With the offending commit, as the CHASE_MUST_BE_REGULAR flag is set,
hence when we found a masked file, the function fails.

Fixes #40313.
Fixes regression caused by 661b5bfd216e383ac7836261eea9671875e6709b.

Co-authored-by: gvenugo3 <gvenugo3@asu.edu>
2 weeks agoconf-files: make conf_file_new() take ConfFilesFlags rather than ChaseFlags
Yu Watanabe [Tue, 13 Jan 2026 06:26:41 +0000 (15:26 +0900)] 
conf-files: make conf_file_new() take ConfFilesFlags rather than ChaseFlags

No functional change, preparation for later commit.

2 weeks agoconf-files: use empty_to_root()
Yu Watanabe [Tue, 13 Jan 2026 07:48:42 +0000 (16:48 +0900)] 
conf-files: use empty_to_root()

No functional change. For consistency with conf_file_chase_and_verify().

2 weeks agoconf-files: split out several helper functions from files_add()
Yu Watanabe [Tue, 13 Jan 2026 05:39:28 +0000 (14:39 +0900)] 
conf-files: split out several helper functions from files_add()

No functional change, preparation for later commit.

2 weeks agocore/dbus-manager: propagate meaningful dbus errors from EnqueueMarkedJobs
Franck Bui [Wed, 14 Jan 2026 09:40:46 +0000 (10:40 +0100)] 
core/dbus-manager: propagate meaningful dbus errors from EnqueueMarkedJobs

Previously, when `systemctl reload-or-restart --marked` failed the following
error was shown:

  Failed to start jobs: Failed to enqueue some jobs, see logs for details: Invalid argument

but no details were actually logged.

This change records failure reasons in the journal to help users identify root causes:

  # journalctl -b -e
  [...]
  systemd[1]: Queuing reload/restart jobs for marked units…
  systemd[1]: Operation refused, unit klogd.service may be requested by dependency only (it is configured to refuse manual start/stop).

2 weeks agohwdb: Add GPD Pocket 4 chassis quirk
Florian Klink [Fri, 16 Jan 2026 11:30:05 +0000 (13:30 +0200)] 
hwdb: Add GPD Pocket 4 chassis quirk

See https://github.com/systemd/systemd/issues/7390#issuecomment-573607402

2 weeks agosd-varlink: Add SD_VARLINK_ANY
Daan De Meyer [Wed, 26 Nov 2025 11:55:18 +0000 (12:55 +0100)] 
sd-varlink: Add SD_VARLINK_ANY

This allows representing fields that can be either an integer or
a string, like the "value" field we'll be adding in
https://github.com/systemd/systemd/pull/39202.

Upstream spec change: https://github.com/varlink/varlink.github.io/pull/43

2 weeks agoSplit up the giant switch statement in homectl's parse_argv (#40059)
Zbigniew Jędrzejewski-Szmek [Fri, 16 Jan 2026 13:31:08 +0000 (14:31 +0100)] 
Split up the giant switch statement in homectl's parse_argv (#40059)

This is in preparation for later changes. The 1500+ line switch statement was very
hard to work with and had quite a bit of duplicated code. This is a rework that
splits outs parts into functions. I split this up into a bunch of commits so that it
can be reasonably reviewed. When viewed as one giant commit, diff just shows
a giant block of removed code and a giant block of added code.

In some cases I wasn't sure why one or the other of the identity arrays is used…
I preserved existing behaviour in all cases.

2 weeks agomanager: add EnqueueMarkedJobs varlink method
Luca Boccassi [Mon, 17 Nov 2025 00:16:44 +0000 (00:16 +0000)] 
manager: add EnqueueMarkedJobs varlink method

Same as the D-Bus method. Returns array of job IDs.

2 weeks agovpick: Fix pick_filter_image_any
Daan De Meyer [Sat, 20 Dec 2025 20:38:09 +0000 (21:38 +0100)] 
vpick: Fix pick_filter_image_any

Currently, pick_filter_image_any matches any image
with any suffix, which is way more than it should
be doing. It should only be matching images with
the .raw suffix.

Let's address this shortcoming by allowing to pass
multiple filters to path_pick(), and define
pick_filter_image_any as the combination of the
raw and directory image filters.

Fixes #40083

2 weeks agosd-boot: allow setting the `timeout` via SMBIOS 11
Michael Vogt [Wed, 14 Jan 2026 12:09:10 +0000 (13:09 +0100)] 
sd-boot: allow setting the `timeout` via SMBIOS 11

Allow configuring the menu timeout used by sd-boot by setting
`io.systemd.boot.timeout=<value>` as SMBIOS type 11 string.

This takes precedence over the setting from the config file
and the EFI var.

Useful for e.g. integration tests that want to control that
a generic image boots faster.

2 weeks agotree-wide: lock in all memory pages when mlockall() is utilized, and on demand
Mike Yuan [Sat, 10 Jan 2026 19:46:25 +0000 (20:46 +0100)] 
tree-wide: lock in all memory pages when mlockall() is utilized, and on demand

When employing MCL_FUTURE we don't actually want it to impose
immediate population of malloc()-ed pages. Hence let's set
MCL_ONFAULT everywhere.

Additionally, specify MCL_CURRENT to ensure future memory allocations
on already mapped pages are covered too. (Addresses
https://github.com/systemd/systemd/pull/40319#discussion_r2693726196)

Note that in shutdown the mlockall() is done to avoid keeping swap space
busy, hence a dedicated call w/ MCL_CURRENT and w/o MCL_ONFAULT is made.

2 weeks agocore: only activate transaction that contain useful jobs
Michal Sekletar [Fri, 9 Jan 2026 16:18:41 +0000 (17:18 +0100)] 
core: only activate transaction that contain useful jobs

If no real jobs were added to the transaction, do not activate it.
The JOB_NOP anchor does not perform any useful work and activating
such transaction only wastes resources.

Fixes #9751

2 weeks agoman/systemd.service: Expand docs on RestartSteps (#40309)
Zbigniew Jędrzejewski-Szmek [Thu, 15 Jan 2026 10:41:17 +0000 (11:41 +0100)] 
man/systemd.service: Expand docs on RestartSteps (#40309)

2 weeks agoboot/initrd: fix typo
Mike Yuan [Thu, 15 Jan 2026 10:35:58 +0000 (11:35 +0100)] 
boot/initrd: fix typo

Follow-up for 80ab99d4d200c29727b573df6bccc49cc9dca6a4

2 weeks agohwdb: add HP EliteBoard Mic mute key mapping
Dirk Su [Thu, 15 Jan 2026 02:23:56 +0000 (10:23 +0800)] 
hwdb: add HP EliteBoard Mic mute key mapping

2 weeks agoefi: use 'struct iovec' more, pass initrds down with it
Lennart Poettering [Wed, 14 Jan 2026 17:22:29 +0000 (18:22 +0100)] 
efi: use 'struct iovec' more, pass initrds down with it

2 weeks agomailmap: deduplicate some frequent contributors
Zbigniew Jędrzejewski-Szmek [Tue, 13 Jan 2026 16:34:24 +0000 (17:34 +0100)] 
mailmap: deduplicate some frequent contributors

2 weeks agodocs: Document practice of using comments for argument names
DaanDeMeyer [Thu, 1 Jan 2026 20:09:26 +0000 (21:09 +0100)] 
docs: Document practice of using comments for argument names

2 weeks agointegration tests: do not adjust log level of udevd in the test script
Yu Watanabe [Thu, 8 Jan 2026 02:30:19 +0000 (11:30 +0900)] 
integration tests: do not adjust log level of udevd in the test script

Similar to 5c60d3011feac20dcc3c66fe2bcafa0a889e33d1, but for udevd.

2 weeks agonetwork: drop fallback logic for kernel older than v5.6
Yu Watanabe [Tue, 13 Jan 2026 01:27:41 +0000 (10:27 +0900)] 
network: drop fallback logic for kernel older than v5.6

Now our baseline is kernel v5.10.

2 weeks agoudev: silence notification failures (#40275)
Zbigniew Jędrzejewski-Szmek [Wed, 14 Jan 2026 15:26:00 +0000 (16:26 +0100)] 
udev: silence notification failures (#40275)

Closes #39943.

2 weeks agoman: fix copy/paste issue in systemd-vmspawn.xml
Michael Vogt [Wed, 14 Jan 2026 08:01:46 +0000 (09:01 +0100)] 
man: fix copy/paste issue in systemd-vmspawn.xml

The systemd-vmspawn man page has a note that the `--notify-ready`
defaults to "true" and then says that this is unlike "systemd-vmspawn"
where it defaults to "false". This appears to be a copy/paste issue
and here we want "unlike systemd-nspawn".

2 weeks agoman: drop duplicate "the"
Christian Hesse [Tue, 13 Jan 2026 23:00:01 +0000 (00:00 +0100)] 
man: drop duplicate "the"

2 weeks agohomectl: add argument comments 40059/head
Zbigniew Jędrzejewski-Szmek [Sun, 4 Jan 2026 15:18:25 +0000 (16:18 +0100)] 
homectl: add argument comments

2 weeks agohomectl: let drop_from_identity take multiple args
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 15:14:23 +0000 (16:14 +0100)] 
homectl: let drop_from_identity take multiple args

The only functional change should be that we deduplicate arg_identity_filter.

2 weeks agohomectl: trivial simplification
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:48:48 +0000 (15:48 +0100)] 
homectl: trivial simplification

2 weeks agohomectl: split out helpers parse_uid_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:46:38 +0000 (15:46 +0100)] 
homectl: split out helpers parse_uid_field

Yet another very similar function, but without generics it's hard to deduplicate
those.

2 weeks agohomectl: split out helpers parse_{fido2_device,pkcs11_token_uri}_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:42:51 +0000 (15:42 +0100)] 
homectl: split out helpers parse_{fido2_device,pkcs11_token_uri}_field

Both implement the 'list' verb.

2 weeks agohomectl: split out helper parse_tmpfs_limit_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:39:37 +0000 (15:39 +0100)] 
homectl: split out helper parse_tmpfs_limit_field

2 weeks agohomectl: split out helper parse_capability_set_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:35:39 +0000 (15:35 +0100)] 
homectl: split out helper parse_capability_set_field

2 weeks agohomectl: split out helper parse_rebalance_weight
Zbigniew Jędrzejewski-Szmek [Mon, 12 Jan 2026 10:43:06 +0000 (11:43 +0100)] 
homectl: split out helper parse_rebalance_weight

2 weeks agohomectl: split out helper parse_auto_resize_mode_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:33:41 +0000 (15:33 +0100)] 
homectl: split out helper parse_auto_resize_mode_field

2 weeks agohomectl: split out helpers parse_{time,timestamp}_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:29:35 +0000 (15:29 +0100)] 
homectl: split out helpers parse_{time,timestamp}_field

2 weeks agohomectl: split out helper parse_group_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:26:08 +0000 (15:26 +0100)] 
homectl: split out helper parse_group_field

2 weeks agohomectl: split out helper parse_weight_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:24:47 +0000 (15:24 +0100)] 
homectl: split out helper parse_weight_field

2 weeks agohomectl: split out helpers parse_{disk,sector}_size_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:23:00 +0000 (15:23 +0100)] 
homectl: split out helpers parse_{disk,sector}_size_field

2 weeks agohomectl: split out helper parse_language_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:20:47 +0000 (15:20 +0100)] 
homectl: split out helper parse_language_field

2 weeks agohomectl: split out helper parse_environment_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:18:38 +0000 (15:18 +0100)] 
homectl: split out helper parse_environment_field

2 weeks agohomectl: split out helper parse_rlimit_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:17:17 +0000 (15:17 +0100)] 
homectl: split out helper parse_rlimit_field

2 weeks agohomectl: fix confusion between "FOO" and "RLIMIT_FOO" as json keys
Zbigniew Jędrzejewski-Szmek [Thu, 11 Dec 2025 09:47:46 +0000 (10:47 +0100)] 
homectl: fix confusion between "FOO" and "RLIMIT_FOO" as json keys

We parse RLIMIT_FOO, FOO, and LimitFOO all the same. But the keys in the
JSON dict are supposed to be "RLIMIT_FOO". We were creating such keys,
but then filtering them using "FOO", i.e. the filtering was not effective.

Using strjoina since both strings are under our control.

2 weeks agohomectl: split out helper parse_nice_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:16:00 +0000 (15:16 +0100)] 
homectl: split out helper parse_nice_field

2 weeks agohomectl: split out helpers that extend parse_string_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:13:15 +0000 (15:13 +0100)] 
homectl: split out helpers that extend parse_string_field

2 weeks agohomectl: split out helper parse_mode_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 14:04:44 +0000 (15:04 +0100)] 
homectl: split out helper parse_mode_field

2 weeks agohomectl: split out helper parse_boolean_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 13:59:58 +0000 (14:59 +0100)] 
homectl: split out helper parse_boolean_field

2 weeks agohomectl: split out helpers parse_{unsigned,u64,size}_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 13:53:06 +0000 (14:53 +0100)] 
homectl: split out helpers parse_{unsigned,u64,size}_field

2 weeks agoBump kernel requirements to >= 5.10, and recommend >= 5.14 (#38977)
Yu Watanabe [Tue, 13 Jan 2026 03:18:15 +0000 (12:18 +0900)] 
Bump kernel requirements to >= 5.10, and recommend >= 5.14 (#38977)

Then, this drops several unnecessary code for older kernels.

2 weeks agobasic: move BPF_JMP_A to override/linux/bpf_insn.h
calm329 [Mon, 12 Jan 2026 18:20:22 +0000 (10:20 -0800)] 
basic: move BPF_JMP_A to override/linux/bpf_insn.h

Move the BPF_JMP_A macro from override/linux/bpf.h to
override/linux/bpf_insn.h. The bpf.h override conflicts with libbpf's
-I/usr/include/bpf/uapi include path. Since bpf_insn.h is not typically
installed at /usr/include/linux/ or /usr/include/bpf/uapi/linux/, the
override works without conflicts.

Fixes #40331

2 weeks agoprocess-util: drop unnecessary E2BIG error handling 38977/head
Yu Watanabe [Mon, 5 Jan 2026 04:24:44 +0000 (13:24 +0900)] 
process-util: drop unnecessary E2BIG error handling

E2BIG is returned when the kernel does not support CLONE_INTO_CGROUP,
but the flag is supported since kernel v5.7.

2 weeks agomount-setup: memory_recursiveprot is supported since kernel v5.7
Yu Watanabe [Mon, 5 Jan 2026 04:24:43 +0000 (13:24 +0900)] 
mount-setup: memory_recursiveprot is supported since kernel v5.7

Our baseline on kernel is 5.10. Hence we can unconditionally use it.

2 weeks agofd-util: drop close_all_fds_by_proc()
Yu Watanabe [Mon, 5 Jan 2026 04:24:42 +0000 (13:24 +0900)] 
fd-util: drop close_all_fds_by_proc()

With the previous commit, now the function is used only on OOM.
In that case, let's do like close_all_fds_without_malloc().

2 weeks agofd-util: close_range() is available since kernel 5.9
Yu Watanabe [Mon, 5 Jan 2026 04:24:41 +0000 (13:24 +0900)] 
fd-util: close_range() is available since kernel 5.9

Our baseline on kernel is 5.10, hence we can always use it.

2 weeks agostat-util: STATX_TYPE and STATX_INO should be always set
Yu Watanabe [Mon, 5 Jan 2026 04:24:41 +0000 (13:24 +0900)] 
stat-util: STATX_TYPE and STATX_INO should be always set

2 weeks agofd-util,mountpoint-util: STATX_MNT_ID is supported since kernel 5.10
Yu Watanabe [Mon, 5 Jan 2026 04:24:40 +0000 (13:24 +0900)] 
fd-util,mountpoint-util: STATX_MNT_ID is supported since kernel 5.10

Our baseline on kernel is 5.10, hence we can assume it works.

2 weeks agomountpoint-util: make is_mount_point_at() take usual dir_fd + path style arguments
Yu Watanabe [Mon, 5 Jan 2026 04:24:39 +0000 (13:24 +0900)] 
mountpoint-util: make is_mount_point_at() take usual dir_fd + path style arguments

2 weeks agotree-wide: statx() supports STATX_ATTR_MOUNT_ROOT since kernel 5.8
Yu Watanabe [Mon, 5 Jan 2026 04:24:37 +0000 (13:24 +0900)] 
tree-wide: statx() supports STATX_ATTR_MOUNT_ROOT since kernel 5.8

Our baseline on kernel is 5.10, hence we can unconditionally use it.

2 weeks agorandom-util: assume getrandom(GRND_INSECURE) works
Yu Watanabe [Mon, 5 Jan 2026 04:24:27 +0000 (13:24 +0900)] 
random-util: assume getrandom(GRND_INSECURE) works

GRND_INSECURE was added in kernel 5.6, and our baseline on kernel is
5.10. Let's assume it always works. Even if it does not work, we have
further fallback logics. So, this should be safe.

2 weeks agoBump required minimum kernel version to 5.10 and the recommended baseline to 5.14.
Yu Watanabe [Mon, 5 Jan 2026 04:24:21 +0000 (13:24 +0900)] 
Bump required minimum kernel version to 5.10 and the recommended baseline to 5.14.

The previous minimum required version 5.4 will be EOL on 2025-12.
Let's bump the required minimum kernel version to the next LTS release 5.10
(released on 2020-12-13, EOL on 2026-12, CIP support until 2031-01).

The new recommended baseline 5.14 is the version that CentOS 9 uses.
CentOS 9 will EOL on 2027-05.

See also #38608.

2 weeks agounits: Fix the missing dependency in systemd-pcrproduct
Marc Pervaz Boocha [Sun, 11 Jan 2026 06:28:27 +0000 (11:58 +0530)] 
units: Fix the missing dependency in systemd-pcrproduct

NvPCR need to read from /var/lib/nvpcr and the current unit file is
executed before /var is mounted. This adds the dep back so its always
runs after /var is mounted like systemd-tpm2-setup.service

2 weeks agostub: Fix NULL pointer deref when there are no initrds
Hans de Goede [Mon, 12 Jan 2026 13:56:36 +0000 (14:56 +0100)] 
stub: Fix NULL pointer deref when there are no initrds

When n_all_initrds == 0, then all_initrds is unmodified from its initial
value of:

_cleanup_free_ struct iovec *all_initrds = NULL;

and in the else block of the "if (n_all_initrds > 1)" the NULL is
dereferenced:

final_initrd = all_initrds[0];

Leading to the stub crashing due to a NULL pointer deref.

Fix this by initializing final_initrd to all 0s and only
running the else block if (n_all_initrds == 1).

2 weeks agonetwork: ignore -EINVAL from bpf_get_current_comm()
Yu Watanabe [Mon, 12 Jan 2026 10:46:58 +0000 (19:46 +0900)] 
network: ignore -EINVAL from bpf_get_current_comm()

Hopefully fixes #40051.

2 weeks agotree-wide: use full paths to tools defined in config.h
Antonio Alvarez Feijoo [Mon, 12 Jan 2026 14:54:41 +0000 (15:54 +0100)] 
tree-wide: use full paths to tools defined in config.h

2 weeks agomachined: Don't insist on 0:0 for the state directory
Daan De Meyer [Mon, 12 Jan 2026 12:16:53 +0000 (13:16 +0100)] 
machined: Don't insist on 0:0 for the state directory

We now support running machined unprivileged, so don't pass in 0:0
as the uid/gid unconditionally but just use the UID/GID we're running
as.

2 weeks agomkfs-util: set hash_seed to seed derived value for reproducibility
ZauberNerd [Sun, 11 Jan 2026 14:32:33 +0000 (15:32 +0100)] 
mkfs-util: set hash_seed to seed derived value for reproducibility

When creating ext2/ext3/ext4 filesystems, mke2fs generates a random
hash_seed for htree directory indexing. This causes non-reproducible
images even when SOURCE_DATE_EPOCH is set and the same filesystem UUID
is used.

Set the hash_seed explicitly to match the filesystem UUID, ensuring
that repeated builds with the same seed produce bit-for-bit identical
images.

Also add a test case in TEST-58-REPART to verify ext4 reproducibility
by creating the same partition twice and comparing the results.

See https://vdwaa.nl/mkosi-reproducible-arch-images.html

I used claude ai to help me with this change.

2 weeks agohomectl: split out helper parse_string_field
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 13:41:29 +0000 (14:41 +0100)] 
homectl: split out helper parse_string_field

2 weeks agohomectl: split out parser parse_ssh_authorized_keys
Zbigniew Jędrzejewski-Szmek [Mon, 8 Dec 2025 15:40:35 +0000 (16:40 +0100)] 
homectl: split out parser parse_ssh_authorized_keys

The idea is to split out helpers to make parse_argv() itself more
manageable. If possible, the helpers will be reused in many places. But
even if not, as in this case, it seems good to split out the code for a
specific option. Always, the sd_json_variant** pointer or pointers that
are operated on are selected in the caller. This way it is easier to see
which of the identity variables is used and if two different ones are
used.

2 weeks agoman: fix indentation
Yu Watanabe [Mon, 12 Jan 2026 09:19:43 +0000 (18:19 +0900)] 
man: fix indentation

2 weeks agomkosi: /bin/bash -> /usr/bin/env bash
Maximilian Bosch [Sat, 10 Jan 2026 20:13:31 +0000 (21:13 +0100)] 
mkosi: /bin/bash -> /usr/bin/env bash

This is analogous to a change in mkosi[1] with the same motivation: some
scripts are run to bootstrap the distribution tree and are thus running
directly on the host system which may not have `/bin/bash` (e.g. NixOS).

As with the `mkosi` change, do that for each shebang for consistency
reasons.

[1] https://github.com/systemd/mkosi/commit/8d2cd50e5192cada7211724ecff3514f0c85cf0f

3 weeks agoman/systemd.service: Note RestartSteps only works with RestartSec= set 40309/head
Matthijs Kooijman [Thu, 8 Jan 2026 22:37:08 +0000 (23:37 +0100)] 
man/systemd.service: Note RestartSteps only works with RestartSec= set

Setting Restart=0 seems reasonable to have no delay on the first
restart, if you do not realize this is impossible with an exponential
restart. So explicitly mention that RestartSec must be set.

3 weeks agoman/systemd.service: Note RestartSteps are exponential
Matthijs Kooijman [Thu, 8 Jan 2026 22:34:03 +0000 (23:34 +0100)] 
man/systemd.service: Note RestartSteps are exponential

3 weeks agocore: fix typo
Yu Watanabe [Thu, 8 Jan 2026 03:20:19 +0000 (12:20 +0900)] 
core: fix typo

Follow-up for 32614b9aab5a5c9b5be22b635fefdbccef90adc3.

3 weeks agomeson: do not install standalone binaries if the meson option is disabled
Luca Boccassi [Wed, 7 Jan 2026 18:29:02 +0000 (19:29 +0100)] 
meson: do not install standalone binaries if the meson option is disabled

A recent commit made the standalone binaries always buildable
on demand, but as a side effect due to how 'meson install' works,
they are always built and installed by 'meson install' even
if the standalone-binaries= option is disabled.
Fix it so that 'meson install' only installs them if the
option is explicitly enabled, while still allowing
building them on demand.

Follow-up for 54492552a1ba96e5160a8e9f867e1c49ffc87bc0

3 weeks agoman: do not manually update man/rules/meson.build
Yu Watanabe [Tue, 6 Jan 2026 18:13:52 +0000 (03:13 +0900)] 
man: do not manually update man/rules/meson.build

Follow-up for 25393c7c907b2c460a8a34d7dc6a1bdbcac8e9d4.

3 weeks agocore: change mount options settings so that last defined wins (#39449)
Yu Watanabe [Tue, 6 Jan 2026 19:11:29 +0000 (04:11 +0900)] 
core: change mount options settings so that last defined wins (#39449)

3 weeks agoDrop support for sysvinit scripts (#39770)
Yu Watanabe [Tue, 6 Jan 2026 17:51:53 +0000 (02:51 +0900)] 
Drop support for sysvinit scripts (#39770)

As announced by a few releases now, finally drop support for sysvinit scripts.

3 weeks agoNEWS: note mount image options rule changes 39449/head
Luca Boccassi [Tue, 6 Jan 2026 17:00:20 +0000 (18:00 +0100)] 
NEWS: note mount image options rule changes

3 weeks agocore: change mount options settings so that last defined wins
Luca Boccassi [Sat, 25 Oct 2025 17:40:44 +0000 (18:40 +0100)] 
core: change mount options settings so that last defined wins

Currently mount options are handled in such a way that the first
definition for a given partition wins, and documented as such.
Change them so that they behave like other options, and the
last specified wins.
Applies to RootImageOptions=, MountImages= and ExtensionImages=.
Switch from a linked list to an array indexed by the partition
specifier to store them.

3 weeks agocore: add support for disabling THPs (#39085)
Yu Watanabe [Tue, 6 Jan 2026 16:36:20 +0000 (01:36 +0900)] 
core: add support for disabling THPs (#39085)

Transparent Hugepages (THP) is a Linux kernel feature that manages
memory using larger pages (2MB on x86, compared to the default 4KB). The
main goal is to improve memory management efficiency and system
performance, especially for memory-intensive applications. However, it
can cause drawbacks in some scenarios, such as memory regression and
latency spikes. THP policy is governed for the entire system via
/sys/kernel/mm/transparent_hugepage/enabled.
However, it can be overridden for individual workloads via prctl(2) call.
MemoryTHP= is used to disable THPs at exec-invoke to stop providing THPs
for workloads where the drawbacks outweigh the advantages. When set to
"disable", MemoryTHP= disables THPs completely for the process,
irrespective of global THP controls.

[1] https://man7.org/linux/man-pages/man2/PR_SET_THP_DISABLE.2const.html
[2] https://man7.org/linux/man-pages/man2/madvise.2.html
[3] https://github.com/torvalds/linux/commit/9dc21bbd62edeae6f63e6f25e1edb7167452457b

3 weeks agohwdb: add matrix for ASUS 2-in-1 T101HA
francescoza6 [Wed, 31 Dec 2025 17:30:54 +0000 (18:30 +0100)] 
hwdb: add matrix for ASUS 2-in-1 T101HA

The matrix tested working in monitor-sensor (06 gen 2026),
corrects accel values and not just display output.

3 weeks agosrc/test: add unittest for MemoryTHP= 39085/head
Usama Arif [Sun, 21 Sep 2025 19:59:38 +0000 (20:59 +0100)] 
src/test: add unittest for MemoryTHP=

This checks if the prctl is set correctly when the property name
is passed to systemd-run.

3 weeks agocore: introduce MemoryTHP= unit file setting
Usama Arif [Mon, 15 Sep 2025 12:33:28 +0000 (13:33 +0100)] 
core: introduce MemoryTHP= unit file setting

Transparent Hugepages (THP) is a Linux kernel feature that manages
memory using larger pages (2MB on x86, compared to the default 4KB).
The main goal is to improve memory management efficiency and system
performance, especially for memory-intensive applications.
However, it can cause drawbacks in some scenarios, such as memory
regression and latency spikes. THP policy is governed for the entire
system via /sys/kernel/mm/transparent_hugepage/enabled.
However, it can be overridden for individual workloads via prctl(2)
call.
MemoryTHP= is used to disable THPs at exec-invoke to stop
providing THPs for workloads where the drawbacks outweigh the advantages.
When set to "disable", MemoryTHP= disables THPs completely for the
process, irrespecitive of global THP controls.
When set to "madvise", MemoryTHP= disables THPs for the process except
when specifically madvised by the process with MADV_HUGEPAGE or MADV_COLLAPSE.

3 weeks agoDrop support for sysvinit scripts 39770/head
Luca Boccassi [Mon, 17 Nov 2025 14:44:18 +0000 (14:44 +0000)] 
Drop support for sysvinit scripts

As announced by a few releases now, finally drop support for
sysvinit scripts.
Keep rc-local generator for now, as it's really a distinct
feature even though from the same era.

3 weeks agorc-local and sysvinit are independent, adjust meson/units/docs
Luca Boccassi [Mon, 17 Nov 2025 14:58:27 +0000 (14:58 +0000)] 
rc-local and sysvinit are independent, adjust meson/units/docs

They are separate and independent settings, so adjust meson rules
and unit files accordingly. It is possible to enable support for
rc-local script without support for sysvinit scripts, and viceversa.
This will become useful later when sysvinit scripts support is
removed.

3 weeks agohwdb: Add missing vendor names for older AYANEO devices
Derek J. Clark [Tue, 6 Jan 2026 04:07:21 +0000 (20:07 -0800)] 
hwdb: Add missing vendor names for older AYANEO devices
Adds AYADEVICE and AYA NEO vendor names. Early founders editon and 2021 models used these DMI values instead of AYANEO

3 weeks agohwdb: Add missing scancodes for Lenovo Legion devices
Derek J. Clark [Tue, 6 Jan 2026 03:01:30 +0000 (19:01 -0800)] 
hwdb: Add missing scancodes for Lenovo Legion devices

Adds missing scancodes for Lenovo Legion Go, Go S, and Go 2. When long
pressing the power button the device should issue a LEFTMETA + F16
combo. The LEFTMETA code fires properly, but the F16 is not mapped.

Go and Go S devices detect as AT Translated Set 2 Keyboard, while Go 2
detects as AT Raw Set 2 Keyboard, hence the multiple entries.

Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
3 weeks agoman/kernel-install: /proc/cmdline is not used as a fallback in container
Alexis-Emmanuel Haeringer [Mon, 5 Jan 2026 22:03:03 +0000 (23:03 +0100)] 
man/kernel-install: /proc/cmdline is not used as a fallback in container

3 weeks agoman: fix typo
Yu Watanabe [Mon, 5 Jan 2026 23:48:00 +0000 (08:48 +0900)] 
man: fix typo

3 weeks agopstore: fix typo
Yu Watanabe [Mon, 5 Jan 2026 23:45:22 +0000 (08:45 +0900)] 
pstore: fix typo

3 weeks agoimport: update comment: implementor -> implementer
Yu Watanabe [Mon, 5 Jan 2026 23:43:02 +0000 (08:43 +0900)] 
import: update comment: implementor -> implementer

Both implementor and implementer are correct, but we use implementer at
other places.

3 weeks agosysusers: document u! version support
Tobias Stoeckmann [Mon, 5 Jan 2026 21:56:17 +0000 (22:56 +0100)] 
sysusers: document u! version support

Document at which version the exclamation mark suffix is supported.
Version 215 at the end of the list item is a bit misleading.

3 weeks agoNEWS: fix typo
Zbigniew Jędrzejewski-Szmek [Mon, 5 Jan 2026 09:05:09 +0000 (10:05 +0100)] 
NEWS: fix typo

3 weeks agoTEST-13-NSPAWN: remove pulled image on exit
Yu Watanabe [Mon, 5 Jan 2026 12:21:59 +0000 (21:21 +0900)] 
TEST-13-NSPAWN: remove pulled image on exit

Otherwise, if the VM is unexpectedly rebooted, then `importctl --user pull-tar`
may fail as the file may already exist.
```
[  123.351751] TEST-13-NSPAWN.sh[3946]: + run0 -u testuser importctl --user pull-tar file:///var/tmp/image-tar/kurps.tar.gz nurps --verify=checksum -m
[  123.541603] TEST-13-NSPAWN.sh[4311]: Enqueued transfer job 3. Press C-c to continue download in background.
[  123.552456] TEST-13-NSPAWN.sh[4311]: Pulling 'file:///var/tmp/image-tar/kurps.tar.gz', saving as 'nurps'.
[  123.552788] TEST-13-NSPAWN.sh[4311]: Operating on image directory '/home/testuser/.local/state/machines'.
[  123.819942] TEST-13-NSPAWN.sh[4311]: Got 1% of file:///var/tmp/image-tar/kurps.tar.gz.
[  124.156557] TEST-13-NSPAWN.sh[4311]: * shutting down connection #0
[  124.156896] TEST-13-NSPAWN.sh[4311]: * Could not open file /var/tmp/image-tar/kurps.tar.gz.sha256
[  124.157223] TEST-13-NSPAWN.sh[4311]: * closing connection #-1
[  124.159198] TEST-13-NSPAWN.sh[4311]: * Could not open file /var/tmp/image-tar/kurps.nspawn
[  124.159493] TEST-13-NSPAWN.sh[4311]: * closing connection #-1
[  124.159818] TEST-13-NSPAWN.sh[4311]: Acquired 68.5M.
[  124.160395] TEST-13-NSPAWN.sh[4311]: Download of file:///var/tmp/image-tar/kurps.tar.gz complete.
[  124.160664] TEST-13-NSPAWN.sh[4311]: Transfer failed: Could not read a file:// file
[  124.160923] TEST-13-NSPAWN.sh[4311]: Settings file could not be retrieved, proceeding without.
[  124.404733] TEST-13-NSPAWN.sh[4311]: * shutting down connection #1
[  124.405162] TEST-13-NSPAWN.sh[4311]: Acquired 79B.
[  124.406170] TEST-13-NSPAWN.sh[4311]: Download of file:///var/tmp/image-tar/SHA256SUMS complete.
[  124.406734] TEST-13-NSPAWN.sh[4311]: SHA256 checksum of file:///var/tmp/image-tar/kurps.tar.gz is valid.
[  124.455446] TEST-13-NSPAWN.sh[4311]: Failed to rename to final image name to /home/testuser/.local/state/machines/.tar-file:\x2f\x2f\x2fvar\x2ftmp\x2fimage-tar\x2fkurps\x2etar\x2egz: File exists
[  124.457251] TEST-13-NSPAWN.sh[4311]: Exiting.
```
Workaround for issue #38240.

3 weeks agomkosi: stop using noble-proposed for qemu
Nick Rosbrook [Mon, 5 Jan 2026 14:29:53 +0000 (09:29 -0500)] 
mkosi: stop using noble-proposed for qemu

The qemu update migrated to noble-updates a couple weeks ago, so it is
no longer necessary to enable noble-proposed (or add the associated apt
pinning config).

3 weeks agojournal-remote test: add -Z in mkdir for journal-{remote,upload}.conf.d
Cathy Hu [Mon, 5 Jan 2026 15:13:15 +0000 (16:13 +0100)] 
journal-remote test: add -Z in mkdir for journal-{remote,upload}.conf.d

Otherwise on SELinux enabled systems with the "targeted" policy
the type is not set correctly when run via unconfined user and
the test fails.

3 weeks agoukify: omit .osrel section when --os-release= is empty
Nick Rosbrook [Fri, 19 Dec 2025 16:01:49 +0000 (11:01 -0500)] 
ukify: omit .osrel section when --os-release= is empty

The primary motivation for this is to allow users of ukify to build
UKI-like objects, without having them later be detected as a UKI by
tools like kernel-install and bootctl.

The common code used by these tools to determine if a PE binary is a UKI
checks that both .osrel and .linux sections are present. Hence, adding
a mechansim to skip .osrel provides a way to avoid being labeled a UKI.

3 weeks agoshared/edit-util: ignore ENOTDIR when trying editors
Pablo Fraile Alonso [Thu, 25 Dec 2025 12:32:43 +0000 (13:32 +0100)] 
shared/edit-util: ignore ENOTDIR when trying editors