]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 days agomkosi: update debian commit reference to ecec6127927ca59726e3d3535a2b2344f585cf74 31627/head
Luca Boccassi [Mon, 2 Feb 2026 15:28:55 +0000 (16:28 +0100)] 
mkosi: update debian commit reference to ecec6127927ca59726e3d3535a2b2344f585cf74

ecec612792 Stop installing /var/lib/systemd/
120f84266d d/rules: use --no-also for networkd and journald
41780703f2 d/rules: do not restart sockets, it fails if the service is running
5f219fbd65 Increase number of sections of sd-stub on amd64 too
5832d7f614 d/systemd.postinst: use --no-dbus for daemon-reexec

4 days agoDon't install systemdstatedir (/var/lib/systemd)
Max Gautier [Tue, 5 Mar 2024 08:54:47 +0000 (09:54 +0100)] 
Don't install systemdstatedir (/var/lib/systemd)

systemdstatedir is created by tmpfiles conf (tmpfiles.d/systemd.conf.in)
already.
By shipping it, systemd prevents the effect of tmpfiles.d/var.conf.in:

q /var 0755 - - -

This should helps implementing the "Hermetic /usr" pattern.

Links: https://0pointer.net/blog/fitting-everything-together.html

4 days agomkosi: workaround issue in mdadm-4.5 + linux-6.18
Yu Watanabe [Sat, 31 Jan 2026 17:37:07 +0000 (02:37 +0900)] 
mkosi: workaround issue in mdadm-4.5 + linux-6.18

After debian updated the kernel from 6.17 to 6.18, mdadm command fails
with the following:
```
+ mdadm --create /dev/md/mdmirror ...
mdadm: size set to 64512K
mdadm: Can't open /sys/module/md_mod/parameters/legacy_async_del_gendisk
mdadm: init md module parameters fail
```

This seems a bug in mdadm, and fix is already merged in the upstream:
https://github.com/md-raid-utilities/mdadm/pull/228
Until the fix is backported, let's workaround the issue.

See also: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1125390

4 days agodiscover-image: fix typo in log message
Antonio Alvarez Feijoo [Mon, 2 Feb 2026 13:18:42 +0000 (14:18 +0100)] 
discover-image: fix typo in log message

5 days agopo: Translated using Weblate (Greek)
Jim Spentzos [Sun, 1 Feb 2026 15:58:28 +0000 (15:58 +0000)] 
po: Translated using Weblate (Greek)

Currently translated at 35.9% (95 of 264 strings)

Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/el/
Translation: systemd/main

5 days agoUpdate the "portability and stability" document (#40502)
Mike Yuan [Sun, 1 Feb 2026 11:43:18 +0000 (12:43 +0100)] 
Update the "portability and stability" document (#40502)

5 days agomeson: conditionalize tmpfiles.d/legacy.conf 40502/head
Zbigniew Jędrzejewski-Szmek [Sat, 31 Jan 2026 16:48:18 +0000 (17:48 +0100)] 
meson: conditionalize tmpfiles.d/legacy.conf

This is a compat interface, so let downstream like Arch drop it easily.

5 days agounits: restore runlevel[0-6].target aliases
Zbigniew Jędrzejewski-Szmek [Wed, 28 Jan 2026 15:37:18 +0000 (16:37 +0100)] 
units: restore runlevel[0-6].target aliases

This partially reverts commit e58ba80a40fb6e96543d56774a5bc5aa9cdadbf3. Those
aliases were removed as part of the removal of sysvinit compat, but the removal
was immediately reported as a regression by users. In particular, users can
have one of those set as the default target, or use those names in Wants= or
Requires= dependencies. At least in Fedora, the removal was immediately
reverted.

When looking at our "portability and stability promise", I noticed that those
units are explicitly listed in the promise. Let's restore them upstream. They
are conditionalized under a new -Dcompat-sysv-interfaces=bool option, so that
downstreams like Arch that wasnt to strictly avoid legacy interfaces can easily
disable them. They are dropped from the docs, like we do for all deprecated
interfaces.

5 days agoboot: fix typo in variable name
Yu Watanabe [Sun, 1 Feb 2026 02:57:43 +0000 (02:57 +0000)] 
boot: fix typo in variable name

Fixed by GitHub Copilot.

6 days agodocs/PORTABILITY_AND_STABILITY: update the policy
Zbigniew Jędrzejewski-Szmek [Wed, 28 Jan 2026 15:29:37 +0000 (16:29 +0100)] 
docs/PORTABILITY_AND_STABILITY: update the policy

The kernel has a "don't break userspace" policy [1] which is very easy
to understand and like (even if the details are complicated). We had a
complicated policy statement, but the actual practice is that we'll
generally avoid changes that cause problems for users. So the whole
detailed table is more of a guideline than something that we can rely
on.

To improve public perception, and to align the docs with practice, let's
make a general promise to keep stability, and change the existing table
to a "guideline" that tells people which interfaces to use and which not
to use so that use and development of systemd don't conflict or create
pain.

The existing document was very long, and I think it'll have a bigger
impact if it shorter. In particular, the chart is dropped, because it
was of limited use and severly outdated, because we have added many new
interfaces and components without updating it. Adding the missing
elements (and then keeping it updated) would be a lot of effort. The
chart would be most useful to somebody trying to build a systemd
reimplementation, but there haven't been many attempts like this, so
let's save the work and drop it and make the document shorter.

I also dropped the mentions of Debian. Back in the day, we did indeed
adopt many Debian conventions for config files and such, but over the
years the scope of the project has grown quite a bit and that part
of systemd is a small fraction now. And we've adopted conventions
and ideas from many other places too, so we don't mention Debian
specifically.

[1] https://docs.kernel.org/admin-guide/reporting-regressions.html

6 days agoemacs: drop obsolete emacs property
Zbigniew Jędrzejewski-Szmek [Wed, 28 Jan 2026 09:42:15 +0000 (10:42 +0100)] 
emacs: drop obsolete emacs property

New emacs warns on every open about the old attribute. Let's assume that
everybody who uses emacs uses the latest version, so we can drop the compat.

6 days agoquirks: keyboard: d330 keyboard rework
David Santamaría Rogado [Thu, 29 Jan 2026 22:26:55 +0000 (23:26 +0100)] 
quirks: keyboard: d330 keyboard rework

change matches to generic input devices one as name can't be used
because these keyboards have multiple names and also they are used in
multiple devices. This way will be possible to define more detachable
keyboards in an easy way for multiple devices.

Known USB ids for D330 series are: 17EF:60C3, 17EF:60C6 and 17EF:60C8.

Also mark that the tablet part keys and the keyboard doesn't have any
LED to let interfaces decide to expose on-screen indicators.

7 days agobus-unit-util: convert StandardInputText to StandardInputData
Yu Watanabe [Fri, 30 Jan 2026 18:30:44 +0000 (03:30 +0900)] 
bus-unit-util: convert StandardInputText to StandardInputData

Fixes #40527.

7 days agobus-unit-util: make ExecSearchPath= accepts colon separated list
Yu Watanabe [Fri, 30 Jan 2026 11:52:39 +0000 (20:52 +0900)] 
bus-unit-util: make ExecSearchPath= accepts colon separated list

Unlike other settings that takes multiple values, the setting takes
colon separated list of paths, but when specified as a DBus property,
it previously accepted space separated list of paths.
Let's also make the DBus property accepts colon separated lists.

Fixes #40513.

7 days agomachine: skip reading properties through DBus when not connected
Yu Watanabe [Fri, 30 Jan 2026 12:34:02 +0000 (21:34 +0900)] 
machine: skip reading properties through DBus when not connected

When machined is started earlier than DBus service, the execution is
blocked by reading properties through DBus for a while. Let's return
earlier if the DBus connection is not ready.

Fixes issue reported in #40414.

7 days agonetwork: slightly improve log message
Yu Watanabe [Fri, 30 Jan 2026 13:09:51 +0000 (22:09 +0900)] 
network: slightly improve log message

7 days agodocs: fix typo, grammar, and broken links (#40498)
Yu Watanabe [Fri, 30 Jan 2026 16:21:04 +0000 (01:21 +0900)] 
docs: fix typo, grammar, and broken links (#40498)

7 days agoA few test fixes (#40524)
Yu Watanabe [Fri, 30 Jan 2026 16:19:38 +0000 (01:19 +0900)] 
A few test fixes (#40524)

These are some patches we currently have in Ubuntu for the development
release. A couple are related to Ubuntu switching to uutils coreutils by
default.

7 days agoman: OnSuccessJobMode= default is fail (#40509)
Graham Reed [Fri, 30 Jan 2026 16:18:46 +0000 (16:18 +0000)] 
man: OnSuccessJobMode= default is fail (#40509)

For the feature added in 294446dcb98eaa1ced5839da674c2065b1367a3a,
with OnSuccessJobMode= added to the docs in
e87abe82069bb4f473e853a8a15e1cf18365c04a.

7 days agogh: mention that there are packages from main available in issue template
Luca Boccassi [Fri, 30 Jan 2026 14:58:05 +0000 (14:58 +0000)] 
gh: mention that there are packages from main available in issue template

Makes it easier for bug reporters to try reproducing on latest main

7 days agodocs: update external links 40498/head
Yu Watanabe [Wed, 28 Jan 2026 13:52:46 +0000 (22:52 +0900)] 
docs: update external links

- fix many links and drop unreachable links,
- always use https rather than http if supported,

7 days agotools: add script that checks external links in docs
Yu Watanabe [Wed, 28 Jan 2026 13:01:39 +0000 (13:01 +0000)] 
tools: add script that checks external links in docs

Generated by GitHub Copilot, and manually adjusted.

7 days agonetwork: fix NFTSet population when [DHCPPrefixDelegation] Assign=no (#40049)
Govind Venugopal [Fri, 30 Jan 2026 14:38:13 +0000 (07:38 -0700)] 
network: fix NFTSet population when [DHCPPrefixDelegation] Assign=no (#40049)

When [DHCPPrefixDelegation] Assign=no, networkd creates routes instead of
addresses. These routes need to populate nftables sets for firewall
rules to work correctly.

This commit adds dhcp_pd_route_modify_nft_set() to handle NFT set
updates for DHCP-PD routes, similar to how address_modify_nft_set()
handles them for addresses.

Fixes: #38383
7 days agotest: disable pipefail again in monitor_check_rr() 40524/head
Nick Rosbrook [Fri, 30 Jan 2026 14:23:03 +0000 (09:23 -0500)] 
test: disable pipefail again in monitor_check_rr()

Partially reverts d6b379370485b9651f86b628ce980de719299eb4.

On Ubuntu 26.04 devel, TEST-75-RESOLVED often fails at this stage,
despite the matching query apparently being found:

 + monitor_check_rr '2025-12-18 16:02:54' 'follow10.so.close.signed.test IN CNAME follow11.yet.so.far.signed.test'
  + set +x
  Dec 18 16:02:54 ns1.unsigned.test resolvectl[552]: ← A: follow10.so.close.signed.test IN CNAME follow11.yet.so.far.signed.test
 + monitor_check_rr '2025-12-18 16:02:54' 'follow11.yet.so.far.signed.test IN CNAME follow12.getting.hot.signed.test'
  + set +x
  Dec 18 16:02:54 ns1.unsigned.test resolvectl[552]: ← A: follow11.yet.so.far.signed.test IN CNAME follow12.getting.hot.signed.test
 + monitor_check_rr '2025-12-18 16:02:54' 'follow12.getting.hot.signed.test IN CNAME follow13.almost.final.signed.test'
  + set +x
  Dec 18 16:02:54 ns1.unsigned.test resolvectl[552]: ← A: follow12.getting.hot.signed.test IN CNAME follow13.almost.final.signed.test
 + monitor_check_rr '2025-12-18 16:02:54' 'follow13.almost.final.signed.test IN CNAME follow14.final.signed.test'
  + set +x
  Dec 18 16:02:54 ns1.unsigned.test resolvectl[552]: ← A: follow13.almost.final.signed.test IN CNAME follow14.final.signed.test

Unsetting pipefail, as was done before d6b3793704, appears to fix the
problem.

7 days agorepart: Restore early fstab/crypttab generation (#40473)
Yu Watanabe [Fri, 30 Jan 2026 14:32:07 +0000 (23:32 +0900)] 
repart: Restore early fstab/crypttab generation (#40473)

fstab/crypttab generation were moved to the late stage to support
'fixate-volume-key' option. This, however, broke the use-case when
fstab/crypttab are put to the generated partition/image.

Fixes #40444

7 days agotest: cope with uutils coreutils flag parsing for date command
Nick Rosbrook [Mon, 19 Jan 2026 21:09:52 +0000 (16:09 -0500)] 
test: cope with uutils coreutils flag parsing for date command

With GNU coreutils, one can pass an argument to the "set" flag like:

 date -s "-3 days"

With uutils coreutils, that gives an error:

 error: unexpected argument '-3' found
    tip: to pass '-3' as a value, use '-- -3'

That's a bug (https://github.com/uutils/coreutils/issues/9679), but both
implementations accept --set="-3 days" just fine, so use that instead.

7 days agotest: use journalctl -n option instead of piping to head
Nick Rosbrook [Mon, 19 Jan 2026 21:09:12 +0000 (16:09 -0500)] 
test: use journalctl -n option instead of piping to head

On Ubuntu's test infrastructure for the development series, this test
often fails when piping the journal output to head. The cause is
unclear, but possibly related to Ubuntu's use of uutils coreutils.

Workaround this by just using journalctl's -n flag, which removes the
need for piping output to head.

7 days agodiscover-image: Follow symlinks in a given root (#39843)
Yu Watanabe [Fri, 30 Jan 2026 13:36:20 +0000 (22:36 +0900)] 
discover-image: Follow symlinks in a given root (#39843)

This is needed to set up extension images from the initrd with
`systemd-sysext --root=/sysroot/ merge`.

- vpick: Don't use openat directly but resolve symlinks in given root

With systemd-sysext --root= all symlinks should be followed relative to
    the given root and direct openat usage doesn't work.
    Remove the openat call and let pin_choice do the work with the chase
    helper function to resolve the symlink in the given root.
- discover-image: Follow symlinks in a given root

    So far systemd-sysext with --root= specified didn't follow extension
symlinks (such as the "current" symlinks managed by systemd-sysupdate).
The main use case is running systemd-sysext --root=/sysroot for setting
    up the overlay mounts already from the initrd.

Resolve symlinks correctly but don't defend against later symlink races
    that would access a path outside of the given root. Malicous live
modifications are not a realistic threat model and anyway for that one
would need to rework how the image entry is passed over up to the point
when the loop device is set up. This change here does not introduce this
weakness nor does it expose it more than before. Thus, make it explicit
    that setting up the extensions for a given --root= implies a certain
trust into this given root tree that it does not try do race conditions
with symlinks to trick systemd-sysext to mount a file outside --root=.
Without a strict --image-policy= set we would anyway mount filesystems
right away which is another attack vector but, again, the main use case
    is to do this for the final system which is trusted at this stage.
- sysext: Use correct image name for extension release checks

For the extension release check the image name is needed and was derived
    from the backing file of the loop device. However, this can have a
different name when symlinks were resolved. The surprising behavior was
that it worked when the target name started with the extension name and
_ because that's what's supported to chop off version suffixes. However,
we should not have such strict requirements for the target name and also
allow - as version separator and entirely different names/prefixes, the
    same way as we also do for directories instead of raw images.

    Do not use the image name derived from the backing file of the loop
    device but directly the extension name we have at hand.
- test: Add tests for handling symlinks with systemd-sysext

    When we now allow following symlinks inside a --root= we should also
test that it works in various cases from simple relative and absolute
    symlinks to .v being a symlink itself or its contents, both for
directory and for .raw image extensions. While at it, also add a simple
    test for .v without symlinks which wasn't there for direct usage of
    systemd-sysext.

7 days agonetwork: fix max MTU check for IPv6 MTU adjustments
Ivan Shapovalov [Fri, 30 Jan 2026 12:11:04 +0000 (13:11 +0100)] 
network: fix max MTU check for IPv6 MTU adjustments

When link MTU is being adjusted in an IPv6 context (e.g., according to
the MTU received in an RA), the new MTU is clamped against link's
current MTU than link's max MTU. This means that the link MTU can never
be increased via an RA:

    systemd-networkd[10068]: eth1: Reducing requested IPv6 MTU 8900 to the interface's maximum MTU 1500.
    systemd-networkd[10068]: Setting '/proc/sys/net/ipv6/conf/eth1/mtu' to '1500'
    systemd-networkd[10068]: No change in value '1500', suppressing write

Fix this check to make logical sense, and also to match a similar check
in src/network/networkd-setlink.c:link_adjust_mtu().

7 days agohwdb: keyboard: hp omnibook ultra flip
David Santamaría Rogado [Thu, 29 Jan 2026 16:49:24 +0000 (17:49 +0100)] 
hwdb: keyboard: hp omnibook ultra flip

avoid kernel messages complaining about unknown keycodes from keys
already handled by acpi methods.

7 days agoExpand hwdb entries for additional hardware wallets
Nicolas Dorier [Fri, 30 Jan 2026 06:46:27 +0000 (15:46 +0900)] 
Expand hwdb entries for additional hardware wallets

The list is ported straight from https://github.com/bitcoin-core/HWI/tree/master/hwilib/udev

The HWI project is a widely popular command line tool to access bitcoin
hardware wallets, maintained by the bitcoin-core team.

7 days agoTEST-58-REPART: Add a test for fstab/crypttab inclusion 40473/head
Vitaly Kuznetsov [Mon, 26 Jan 2026 13:21:14 +0000 (14:21 +0100)] 
TEST-58-REPART: Add a test for fstab/crypttab inclusion

Check that generated fstab/crypt are generated early and thus can
be put to the created volume.

7 days agorepart: Restore early generation of fstab/crypttab
Vitaly Kuznetsov [Mon, 26 Jan 2026 13:10:38 +0000 (14:10 +0100)] 
repart: Restore early generation of fstab/crypttab

Commit 15b1c33 ("repart: Generate fstab and crypttab late") moved
fstab/crypttab generation to the late stage but this introduced a regression:
it may be necessary to include fstab and crypttab into the generated partition
(e.g. with CopyFiles=). This is incompatible with 'fixate-volume-key' option as
it is impossible to capture LUKS volume key before it gets created but all the
rest should work fine.

Generate crypttab twice: early and late to capture possible changes. There's no
need to do the same for fstab for now, so keep the status quo.

7 days agocore: several follow-ups for varlink EnqueueMarkedJobs() method (#40365)
Mike Yuan [Fri, 30 Jan 2026 07:38:13 +0000 (08:38 +0100)] 
core: several follow-ups for varlink EnqueueMarkedJobs() method (#40365)

7 days agoFix bug in DM iteration and standardise how to iterate through DM layers (#40426)
Yu Watanabe [Fri, 30 Jan 2026 06:36:03 +0000 (15:36 +0900)] 
Fix bug in DM iteration and standardise how to iterate through DM layers (#40426)

get_block_device_harder_fd() currently only traverses one level of
device mapper stacking when looking for the underlying block device.
This causes issues with nested DM setups like dm-crypt on top of
dm-integrity, where we don't traverse enough to get the actual physical
device.

Fix this by iterating through all DM layers until we reach a device with
no underlying device. And while we're at it also make cgroups use the
same logic.

Fixes: #40419
7 days agodiscover-image: carefully process sidecars
Lennart Poettering [Tue, 18 Nov 2025 21:30:54 +0000 (22:30 +0100)] 
discover-image: carefully process sidecars

We have been a bit sloppy with caring for the various sidecards. Address
that.

7 days agodocs: Add a diagram for the internals of sysupdate
Philip Withnall [Tue, 27 Jan 2026 15:25:08 +0000 (15:25 +0000)] 
docs: Add a diagram for the internals of sysupdate

I had to sketch this out before I could get the internals of
systemd-sysupdate straight in my head, particularly around how an
`UpdateSet` points to one `Instance` from each of a set of `Resource`s,
and those `Instance`s are either all sources or all targets.

Hopefully this is useful to the next person to look at the code.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
7 days agohwdb: keyboard: uppercase apple id
David Santamaría Rogado [Thu, 29 Jan 2026 22:28:21 +0000 (23:28 +0100)] 
hwdb: keyboard: uppercase apple id

7 days agohwdb: keyboard: fix typo CAPSLOCK to NUMLOCK
David Santamaría Rogado [Thu, 29 Jan 2026 21:03:02 +0000 (22:03 +0100)] 
hwdb: keyboard: fix typo CAPSLOCK to NUMLOCK

8 days agoRework error propagation in systemctl preset (#40504)
Zbigniew Jędrzejewski-Szmek [Thu, 29 Jan 2026 15:41:31 +0000 (16:41 +0100)] 
Rework error propagation in systemctl preset (#40504)

8 days agotest: fix test with -Dnetworkd=false
David Tardon [Tue, 27 Jan 2026 13:41:27 +0000 (14:41 +0100)] 
test: fix test with -Dnetworkd=false

User and group systemd-network are created from
sysusers.d/systemd-network.conf, which is only copied into the test
image when building with -Dnetworkd=true. This means that if
-Dnetworkd=false is used, the user and the group don't exist, which
causes the test to fail.

Use a locally created user and group to avoid that.

8 days agoshared/install: rework error propagation again 40504/head
Zbigniew Jędrzejewski-Szmek [Thu, 29 Jan 2026 07:12:52 +0000 (08:12 +0100)] 
shared/install: rework error propagation again

The immediate impulse for this change is the fedora scriptlet which called:
  /usr/lib/systemd/systemd-update-helper install-system-units cryptsetup-pre.target cryptsetup.target getty@.service ... system-systemd\x2dcryptsetup.slice system-systemd\x2dveritysetup.slice ...
which called
  systemctl preset cryptsetup-pre.target cryptsetup.target getty@.service ... system-systemd\x2dcryptsetup.slice system-systemd\x2dveritysetup.slice ...
which threw an error that system-systemdx2dcryptsetup.slice does not exist
and did nothing at all. (The backslash is consumed by the shell.)
The obvious fix here is to figure out more levels of escaping… But we should
do something more robust in such cases.

If we fail in processing of a single unit, let preset all continue processing
units, report the failure through 'changes'. At the end, return failure. In
general, for operations which operate on a list of units specified by the user,
fail the whole operation if any of the individual operations failed. The only
operation where we don't do this is 'preset-all'.

$ SYSTEMD_LOG_LEVEL=debug build/systemctl --root=/ preset asdf1.servie asdf2.path; echo $?
Cannot find unit asdf1.servie.service.
Cannot find unit asdf2.path.
Failed to preset unit: Unit asdf1.servie.service does not exist
Failed to preset unit: Unit asdf2.path does not exist
1

While at it, fix double logging in the manager: dump_unit_changes() already
logs about errors, so the manager should only log on success.

8 days agoshared/install: fix bogus error handling
Zbigniew Jędrzejewski-Szmek [Thu, 29 Jan 2026 06:45:55 +0000 (07:45 +0100)] 
shared/install: fix bogus error handling

This partially reverts a4f0e0da3573a10bc5404142be8799418760b1d1. The
intent was good, we gather the errors, but we have no mechanism to
propagate the result, so the gathered result was ignored. In 'changes'
we can only report errors for specific units. If reading of the
directory fails, we might just as well report the error immediately.
This isn't great, but it's better then ignoring the errors. In practice,
failing halfway in this manner is unlikely, since it'd mean that the fs
is corrupted or something like that. We might as well return immediately
on such catastrophic errors.

8 days agovmspawn: Add image format option to support qcow2
Kai Lüke [Sun, 25 Jan 2026 22:09:16 +0000 (23:09 +0100)] 
vmspawn: Add image format option to support qcow2

A QEMU qcow2 VM image can be internally sparse and compressed.
Support such images in vmspawn for both the main disk and any extra
disks.

9 days agotar-util: do not error out if archive_read_next_header() returns ARCHIVE_WARN
Antonio Alvarez Feijoo [Wed, 28 Jan 2026 12:42:25 +0000 (13:42 +0100)] 
tar-util: do not error out if archive_read_next_header() returns ARCHIVE_WARN

archive_read_header(3) states that `archive_read_next_header()` returns
`ARCHIVE_WARN` if it succeeds but a non-critical error is found, so issue a
warning instead of stopping the untar process in this case.

9 days agopidfd/cgroup-util: use fully-sized filehandle buffers
Jeff Layton [Wed, 28 Jan 2026 13:25:10 +0000 (08:25 -0500)] 
pidfd/cgroup-util: use fully-sized filehandle buffers

The current code assumes that FILEID_KERNFS filehandles will never grow
in size. This is not a safe assumption and userland shouldn't be trying
to guess the size of the filehandle it'll get.

We have a macro for that: MAX_HANDLE_SZ.

9 days agodocs: fix multiple grammar errors
Yu Watanabe [Wed, 28 Jan 2026 11:55:58 +0000 (11:55 +0000)] 
docs: fix multiple grammar errors

Generated by GitHub Copilot.

9 days agotest: Add tests for handling symlinks with systemd-sysext 39843/head
Kai Lueke [Thu, 20 Nov 2025 14:43:55 +0000 (23:43 +0900)] 
test: Add tests for handling symlinks with systemd-sysext

When we now allow following symlinks inside a --root= we should also
test that it works in various cases from simple relative and absolute
symlinks to .v being a symlink itself or its contents, both for
directory and for .raw image extensions. While at it, also add a simple
test for .v without symlinks which wasn't there for direct usage of
systemd-sysext.

9 days agosysext: Use correct image name for extension release checks
Kai Lueke [Thu, 20 Nov 2025 14:43:55 +0000 (23:43 +0900)] 
sysext: Use correct image name for extension release checks

For the extension release check the image name is needed and was derived
from the backing file of the loop device. However, this can have a
different name when symlinks were resolved. The surprising behavior was
that it worked when the target name started with the extension name and
_ because that's what's supported to chop off version suffixes. However,
we should not have such strict requirements for the target name and also
allow - as version separator and entirely different names/prefixes, the
same way as we also do for directories instead of raw images.

Do not use the image name derived from the backing file of the loop
device but directly the extension name we have at hand.

9 days agodiscover-image: Follow symlinks in a given root
Kai Lueke [Thu, 20 Nov 2025 14:43:55 +0000 (23:43 +0900)] 
discover-image: Follow symlinks in a given root

So far systemd-sysext with --root= specified didn't follow extension
symlinks (such as the "current" symlinks managed by systemd-sysupdate).
The main use case is running systemd-sysext --root=/sysroot for setting
up the overlay mounts already from the initrd.

Resolve symlinks correctly but don't defend against later symlink races
that would access a path outside of the given root. Malicous live
modifications are not a realistic threat model and anyway for that one
would need to rework how the image entry is passed over up to the point
when the loop device is set up. This change here does not introduce this
weakness nor does it expose it more than before. Thus, make it explicit
that setting up the extensions for a given --root= implies a certain
trust into this given root tree that it does not try do race conditions
with symlinks to trick systemd-sysext to mount a file outside --root=.
Without a strict --image-policy= set we would anyway mount filesystems
right away which is another attack vector but, again, the main use case
is to do this for the final system which is trusted at this stage.

9 days agobash-completion/vmspawn: insert missing space between options
Kai Lüke [Wed, 28 Jan 2026 10:48:00 +0000 (19:48 +0900)] 
bash-completion/vmspawn: insert missing space between options

Follow-up for 3b18a8795df525f1e10528f8c056f1e49a1d9bfe.

9 days agobuild(deps): bump the actions group across 1 directory with 9 updates
dependabot[bot] [Wed, 28 Jan 2026 06:05:49 +0000 (06:05 +0000)] 
build(deps): bump the actions group across 1 directory with 9 updates

Bumps the actions group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.2.2` | `6.0.2` |
| [actions/setup-python](https://github.com/actions/setup-python) | `5.6.0` | `6.2.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4` | `6` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.29.7` | `4.32.0` |
| [redhat-plumbers-in-action/differential-shellcheck](https://github.com/redhat-plumbers-in-action/differential-shellcheck) | `5.5.3` | `5.5.6` |
| [redhat-plumbers-in-action/gather-pull-request-metadata](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata) | `1.8.1` | `1.9.0` |
| [redhat-plumbers-in-action/advanced-issue-labeler](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler) | `3.2.3` | `3.2.4` |
| [actions/github-script](https://github.com/actions/github-script) | `7.0.1` | `8.0.0` |
| [super-linter/super-linter](https://github.com/super-linter/super-linter) | `8.3.0` | `8.3.2` |

Updates `actions/checkout` from 4.2.2 to 6.0.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/11bd71901bbe5b1630ceea73d27597364c9af683...de0fac2e4500dabe0009e67214ff5f5447ce83dd)

Updates `actions/setup-python` from 5.6.0 to 6.2.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/a26af69be951a213d495a4c3e4e4022e16d87065...a309ff8b426b58ec0e2a45f0f869d46889d02405)

Updates `actions/upload-artifact` from 4 to 6
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6)

Updates `github/codeql-action` from 3.29.7 to 4.32.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/51f77329afa6477de8c49fc9c7046c15b9a4e79d...b20883b0cd1f46c72ae0ba6d1090936928f9fa30)

Updates `redhat-plumbers-in-action/differential-shellcheck` from 5.5.3 to 5.5.6
- [Release notes](https://github.com/redhat-plumbers-in-action/differential-shellcheck/releases)
- [Changelog](https://github.com/redhat-plumbers-in-action/differential-shellcheck/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/redhat-plumbers-in-action/differential-shellcheck/compare/dd551ce780d8af741f8cd8bab6982667b906b457...d965e66ec0b3b2f821f75c8eff9b12442d9a7d1e)

Updates `redhat-plumbers-in-action/gather-pull-request-metadata` from 1.8.1 to 1.9.0
- [Release notes](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata/releases)
- [Commits](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata/compare/b3dbc3f843e8343dbcb2af5bffba72c974d3a07a...b86d1eaf7038cf88a56b26ba3e504f10e07b0ce5)

Updates `redhat-plumbers-in-action/advanced-issue-labeler` from 3.2.3 to 3.2.4
- [Release notes](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler/releases)
- [Commits](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler/compare/e38e6809c5420d038eed380d49ee9a6ca7c92dbf...b80ae64e3e156e9c111b075bfa04b295d54e8e2e)

Updates `actions/github-script` from 7.0.1 to 8.0.0
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/60a0d83039c74a4aee543508d2ffcb1c3799cdea...ed597411d8f924073f98dfc5c65a23a2325f34cd)

Updates `super-linter/super-linter` from 8.3.0 to 8.3.2
- [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/502f4fe48a81a392756e173e39a861f8c8efe056...d5b0a2ab116623730dd094f15ddc1b6b25bf7b99)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-python
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: github/codeql-action
  dependency-version: 4.32.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: redhat-plumbers-in-action/differential-shellcheck
  dependency-version: 5.5.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: redhat-plumbers-in-action/gather-pull-request-metadata
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: redhat-plumbers-in-action/advanced-issue-labeler
  dependency-version: 3.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: actions/github-script
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: super-linter/super-linter
  dependency-version: 8.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
9 days agoansi-color: follow-ups for $SYSTEMD_COLOR=auto-* (#40442)
Yu Watanabe [Wed, 28 Jan 2026 07:00:38 +0000 (16:00 +0900)] 
ansi-color: follow-ups for $SYSTEMD_COLOR=auto-* (#40442)

Follow-ups for #40303

9 days agobuild(deps): bump meson from 1.10.0 to 1.10.1 in /.github/workflows
dependabot[bot] [Wed, 28 Jan 2026 05:24:22 +0000 (05:24 +0000)] 
build(deps): bump meson from 1.10.0 to 1.10.1 in /.github/workflows

Bumps [meson](https://github.com/mesonbuild/meson) from 1.10.0 to 1.10.1.
- [Release notes](https://github.com/mesonbuild/meson/releases)
- [Commits](https://github.com/mesonbuild/meson/compare/1.10.0...1.10.1)

---
updated-dependencies:
- dependency-name: meson
  dependency-version: 1.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
9 days agogithub/dependabot: fix mkosi -> systemd/mkosi
Yu Watanabe [Wed, 28 Jan 2026 05:59:58 +0000 (14:59 +0900)] 
github/dependabot: fix mkosi -> systemd/mkosi

9 days agogithub: make dependabot not update mkosi reference
Yu Watanabe [Wed, 28 Jan 2026 05:43:06 +0000 (14:43 +0900)] 
github: make dependabot not update mkosi reference

The refernce to mkosi is manually updated by using tools/fetch-mkosi.py,
and should not be done automatically, as it may have a bigger impact.

Follow-up for c69c5dd58abae56fd47240a06b60c4c9050154a2.

9 days agogithub: add group configuration for dependabot actions update (#40490)
sd416 [Wed, 28 Jan 2026 05:23:21 +0000 (10:53 +0530)] 
github: add group configuration for dependabot actions update (#40490)

Add group configuration for dependabot github actions update. This will
ensure that depandabot only creates 1 PR for updating all the new github
actions rather than 1 PR / action update.

9 days agoformat-table: fix typo
Yu Watanabe [Wed, 28 Jan 2026 05:10:39 +0000 (14:10 +0900)] 
format-table: fix typo

Follow-up for f42dc5ea18e920c70a8571309bfd66757f5e01cb.

9 days agodissect: fix typo
Yu Watanabe [Wed, 28 Jan 2026 05:09:20 +0000 (14:09 +0900)] 
dissect: fix typo

Follow-up for 688ebd3313c481b72f6106f615814fde0ece3827.

9 days agosd-bus: several follow-ups for MSG_CTRUNC handling (#40488)
Yu Watanabe [Wed, 28 Jan 2026 05:01:25 +0000 (14:01 +0900)] 
sd-bus: several follow-ups for MSG_CTRUNC handling (#40488)

Follow-ups for #40089.

9 days agosd-bus/bus-message: more prudently verify it's SCM_RIGHTS that got truncated 40488/head
Mike Yuan [Tue, 27 Jan 2026 18:10:41 +0000 (19:10 +0100)] 
sd-bus/bus-message: more prudently verify it's SCM_RIGHTS that got truncated

Follow-up for 6c8de404c98fb9b965cba68360c2db1e3f55b776

As discussed in
https://github.com/systemd/systemd/pull/40089#issuecomment-3672063388,
if any other control msg got truncated it's a genuine error, and
we should reject the message as a whole.

9 days agosd-bus/bus-socket: reinstate MSG_TRUNC handling in bus_socket_read_message()
Mike Yuan [Wed, 28 Jan 2026 02:01:06 +0000 (03:01 +0100)] 
sd-bus/bus-socket: reinstate MSG_TRUNC handling in bus_socket_read_message()

We switched away from recvmsg_safe() in order to gracefully
handle MSG_CTRUNC. But MSG_TRUNC really shouldn't happen.

While at it, do not use RET_NERRNO with ssize_t.

9 days agosd-bus/bus-socket: restore recvmsg_safe() during auth
Mike Yuan [Tue, 27 Jan 2026 18:01:18 +0000 (19:01 +0100)] 
sd-bus/bus-socket: restore recvmsg_safe() during auth

At auth stage we reject any fds, hence either way the connection
would fail. Let's play it safe and check for MSG_(C)TRUNC still.

9 days agoBump required minimum version of glibc to 2.34
Yu Watanabe [Fri, 2 Jan 2026 23:23:16 +0000 (08:23 +0900)] 
Bump required minimum version of glibc to 2.34

Major distributions already have glibc >= 2.34.
Let's bump the required minimum version.

Note, glibc-2.34 was released on 2021-08-01.

9 days agostoragetm: ensure device lock fd is opened for writing
Mike Yuan [Sun, 25 Jan 2026 15:50:34 +0000 (16:50 +0100)] 
storagetm: ensure device lock fd is opened for writing

Follow-up for e582484789a6d889d11b97d9c2afa74c3c985130

_cleanup_close_ is dropped, as the fd would be immediately
consumed by the nvme_subsystem_add() call below anyways.

9 days agoreread-partition-table: fix typo
Mike Yuan [Sun, 25 Jan 2026 15:50:00 +0000 (16:50 +0100)] 
reread-partition-table: fix typo

10 days agoansi-color: $SYSTEMD_COLORS=true should mean generic "auto", not 24bit 40442/head
Mike Yuan [Fri, 23 Jan 2026 14:12:58 +0000 (15:12 +0100)] 
ansi-color: $SYSTEMD_COLORS=true should mean generic "auto", not 24bit

Follow-up for af718e05350884c0b6a9fa7248e5d2f2564c93f0

The commit changed the documentation, but the actual impl
was apparently not updated. And the documented behavior
feels a bit off. I think generally "auto"/true should
override $NO_COLOR.

Plus, the test for auto-24bit is at odds with the logic
we merged. I guess it was overlooked after applying
https://github.com/systemd/systemd/pull/40303#discussion_r2720450393

10 days agoansi-color: assert on final result of get_color_mode() being settled
Mike Yuan [Fri, 23 Jan 2026 14:03:57 +0000 (15:03 +0100)] 
ansi-color: assert on final result of get_color_mode() being settled

10 days agokernel-install: handle removal unsuccessful UKIs and loader entries separately
Jörg Behrmann [Fri, 23 Jan 2026 12:55:51 +0000 (13:55 +0100)] 
kernel-install: handle removal unsuccessful UKIs and loader entries separately

When a tries file exists, 90-uki-copy.install removes a previous UKI of the
same kernel version and all it's unbooted variants. This removal is guarded
behind a check for the existence of the already booted UKI, i.e. if uki.efi
already exists, uki.efi and uki+*.efi will be removed.

This leaves the edge case that if uki.efi does not exist, but only an unbooted,
e.g. uki+3.efi, it will not be removed. This is not a problem, if the number of
tries is constant between both builds, since a new uki+3.efi would overwrite
the existing one, but if the number of tries is changed to, e.g. uki+5.efi, we
are left with both uki+3.efi and uki+5.efi.

The same is done for loader entries.

10 days agopreparations for installer PR (#40446)
Zbigniew Jędrzejewski-Szmek [Tue, 27 Jan 2026 14:04:47 +0000 (15:04 +0100)] 
preparations for installer PR (#40446)

As suggested by @keszybz the generic preparatory work split out of
#38764

10 days agoman/custom-html: support dark mode
Daniel Foster [Sun, 25 Jan 2026 05:14:11 +0000 (15:14 +1000)] 
man/custom-html: support dark mode

Use the browser's default style and opt in for dark mode.

Has the bonus of removing some
[deprecated attributes](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/body#deprecated_attributes).

10 days agoNEWS: Remember to mention new option SYSTEMD_COLORS=auto-24bit
Peter Oliver [Sat, 24 Jan 2026 11:56:44 +0000 (11:56 +0000)] 
NEWS: Remember to mention new option SYSTEMD_COLORS=auto-24bit

10 days agosd-bus: allow receiving messages with MSG_CTRUNC set (#40089)
Zbigniew Jędrzejewski-Szmek [Tue, 27 Jan 2026 11:07:33 +0000 (12:07 +0100)] 
sd-bus: allow receiving messages with MSG_CTRUNC set (#40089)

In the event that we can't receive all of the fds from the message
(which can happen for a number of reasons including LSM denials or
hitting the fd limit of the process) the kernel will set the MSG_CTRUNC
flag.  Through our use of recvmsg_safe() we've been treating this as a
fatal error, which will result in dropping the connection.

Let's dial that back a bit: we can receive the message, but when the
user attempts to access the missing fds via sd_bus_message_read_basic()
we can return the (existing) error code of -EBADMSG to indicate that the
fd is missing.

We can do this by using recvmsg() directly, and relaxing some of the
checks on message creation: when (and only when) we have received
MSG_CTRUNC we allow a smaller than expected (per the header) number of
fds to be present.  The error check in sd_bus_message_read_basic() was
already there so we don't need to do anything about that.

This puts the receiver of the message into a difficult situation: you
can call sd_bus_message_read_basic() as often as you want but as long as
it keeps returning -EBADMSG it won't progress through the message and
you won't be able to close whatever container you're in.  That means
that the user will probably need to abandon processing the message
anyway.  So why not just drop the message up front?  This approach is
more likely to yield a useful error message, which will be invaluable
for people trying to track down problems caused by LSM denials.

Fixes #34688

10 days agovmspawn: keep stderr fd connected when running ssh-keygen
Michael Vogt [Mon, 26 Jan 2026 18:25:50 +0000 (19:25 +0100)] 
vmspawn: keep stderr fd connected when running ssh-keygen

When vmspawn executes ssh-keygen it currently hides all std{out,err}.
This is not ideal when errors happen, so this commit tweaks the
code to include stderr in the output.

My use case is that I recently ran into the issue that inside a
`mkosi box` my systemd-homed user was not available so ssh-keygen
errored with `No user exists for uid 1000` [0] but that error was
not visible, only the generic:
`'/usr/bin/ssh-keygen' failed with exit status 255.`
was displayed.

This also adds FORK_REOPEN_LOG to the pidref_safe_fork flags,
thanks to Mike Yuan for the suggestion.

[0] Arguably this is also an issue in ssh-keygen because it does
not need to do the user lookup when `-f /path/` is passed.

10 days agohwdb: Add extended SteelSeries Arctis headset device support (#40479)
Sriman Achanta [Tue, 27 Jan 2026 06:11:35 +0000 (01:11 -0500)] 
hwdb: Add extended SteelSeries Arctis headset device support (#40479)

Add USB device IDs for additional SteelSeries Arctis headset models to
the sound card hardware database. This extends support for the complete
Arctis lineup including newer models.

Newly added device IDs:
- Arctis 7 P (0x12d5)
- Arctis Pro (0x1290)
- Arctis Nova 3 (0x12ec)
- Arctis Nova 3 P (0x2269)
- Arctis Nova 3 X (0x226d)
- Arctis Nova 5 (0x2232)
- Arctis Nova 5 X (0x2253)
- Arctis Nova 7 Rev2 (0x2258)
- Arctis Nova 7 Diablo (0x223a)
- Arctis Nova 7 WoW (0x227a)
- Arctis Nova 7 2 (0x22a1)
- Arctis Nova 7 Gen2 (0x227e)
- Arctis Nova 7 X Gen2 (0x229e)
- Arctis Nova Pro (0x12e0)
- Arctis Nova Pro X (0x12e5)

Also reordered existing entries for better organization.

Note, steelseries [firmware release
103.0.0](https://techblog.steelseries.com/2026/01/21/GG-notes-103.0.0.html)
was a major update for all Nova 7 (Gen 1) Family headsets with new PIDs
being issued for the devices. I only own the Nova 7 which is the only
(previously unknown) PID being added. Additional PIDs will need to be
added for those new identifiers (if any), but this should be basically
every Steelseries Headset which the kernel supports/will eventually
support.

11 days agosd-bus: add test cases for truncated fds 40089/head
Allison Karlitskaya [Mon, 15 Dec 2025 09:35:56 +0000 (10:35 +0100)] 
sd-bus: add test cases for truncated fds

We add some test cases for the previous commits: first (with Claude's
help) we exercise the message creation API internally by passing it
various combinations of incorrect fds with the might_be_truncated flag
set to true or false.

Then we try more of a "real world" test by lowering our fd limit and
sending ourselves a message via the bus and making sure that we
successfully receive a message that has had at least some of its fds
truncated.

11 days agosd-bus: allow receiving messages with MSG_CTRUNC set
Allison Karlitskaya [Mon, 15 Dec 2025 09:27:04 +0000 (10:27 +0100)] 
sd-bus: allow receiving messages with MSG_CTRUNC set

In the event that we can't receive all of the fds from the message
(which can happen for a number of reasons including LSM denials or
hitting the fd limit of the process) the kernel will set the MSG_CTRUNC
flag.  Through our use of recvmsg_safe() we've been treating this as a
fatal error, which will result in dropping the connection.

Let's dial that back a bit: we can receive the message, but when the
user attempts to access the missing fds via sd_bus_message_read_basic()
we can return the (existing) error code of -EBADMSG to indicate that the
fd is missing.

We can do this by using recvmsg() directly, and relaxing some of the
checks on message creation: when (and only when) we have received
MSG_CTRUNC we allow a smaller than expected (per the header) number of
fds to be present.  The error check in sd_bus_message_read_basic() was
already there so we don't need to do anything about that.

This puts the receiver of the message into a difficult situation: you
can call sd_bus_message_read_basic() as often as you want but as long as
it keeps returning -EBADMSG it won't progress through the message and
you won't be able to close whatever container you're in.  That means
that the user will probably need to abandon processing the message
anyway.  So why not just drop the message up front?  This approach is
more likely to yield a useful error message, which will be invaluable
for people trying to track down problems caused by LSM denials.

Fixes #34688

11 days agotest: perform /usr/share/ sysext unmount lazily
Lennart Poettering [Sun, 25 Jan 2026 19:49:14 +0000 (20:49 +0100)] 
test: perform /usr/share/ sysext unmount lazily

/usr/share/ is a directory commonly accessed by various tools, hence we
really should make sure we umount it lazily (MNT_DETACH), since
otherwise there's a good chance that the umount might simply fail.

I noticed this there:

https://github.com/systemd/systemd/actions/runs/21321690161/job/61372465563?pr=40446

12 days agoexec-invoke: minor tweaks (#40450)
Mike Yuan [Sun, 25 Jan 2026 21:11:32 +0000 (22:11 +0100)] 
exec-invoke: minor tweaks (#40450)

12 days agoconf-files: add flag so that we don't always prefix returned paths with the root... 40446/head
Lennart Poettering [Mon, 15 Sep 2025 13:12:40 +0000 (15:12 +0200)] 
conf-files: add flag so that we don't always prefix returned paths with the root dir path used

This is useful in tools such as system-repart where we show the
definition file paths a lot in our output, but if prefixed with the root
path we'd show a temporary mount dir when operating on a image file.
Hence, let's drop the prefix here, and show only the path within the
image.

12 days agoconf-files: rename .name field to .filename to make clearer what precisely it is...
Lennart Poettering [Mon, 15 Sep 2025 12:45:08 +0000 (14:45 +0200)] 
conf-files: rename .name field to .filename to make clearer what precisely it is the name of

12 days agoboot-entry: plug through XAT_FDROOT
Lennart Poettering [Wed, 3 Sep 2025 08:39:49 +0000 (10:39 +0200)] 
boot-entry: plug through XAT_FDROOT

12 days agoos-util: support XAT_FDROOT everywhere
Lennart Poettering [Fri, 23 Jan 2026 10:24:07 +0000 (11:24 +0100)] 
os-util: support XAT_FDROOT everywhere

12 days agoconf-files: add support for root_fd based operation
Lennart Poettering [Fri, 5 Sep 2025 12:21:53 +0000 (14:21 +0200)] 
conf-files: add support for root_fd based operation

Let's make sure we can safely load configuration files based on a root
fd, including XAT_FDROOT.

(While we are at it, always pass path to root fs before fd to root fs,
following our recently updated CODING_STYLE)

12 days agosd-id128-util: allow XAT_FDROOT pass through in id128_get_machine_at()
Lennart Poettering [Tue, 20 Jan 2026 21:34:07 +0000 (22:34 +0100)] 
sd-id128-util: allow XAT_FDROOT pass through in id128_get_machine_at()

12 days agoexec-invoke: remove one level of indentation 40450/head
Lennart Poettering [Thu, 27 Nov 2025 08:43:10 +0000 (09:43 +0100)] 
exec-invoke: remove one level of indentation

12 days agoexec-invoke: handle PRIVATE_USERS_SELF cases together
Lennart Poettering [Thu, 27 Nov 2025 07:59:17 +0000 (08:59 +0100)] 
exec-invoke: handle PRIVATE_USERS_SELF cases together

And moving things to a switch/case sttement.

12 days agosd-event: unpoison memory returned by epoll_pwait2() (#40464)
Mike Yuan [Sat, 24 Jan 2026 23:50:18 +0000 (00:50 +0100)] 
sd-event: unpoison memory returned by epoll_pwait2() (#40464)

Fixes #40455

Alternative to #40463
Closes #40463

13 days agoCODING_STYLE: suggest a clear order for func params that combine fd and path
Lennart Poettering [Tue, 20 Jan 2026 15:56:20 +0000 (16:56 +0100)] 
CODING_STYLE: suggest a clear order for func params that combine fd and path

13 days agoloop-util: when open_flags is unspecified derive it from passed in fd
Lennart Poettering [Wed, 21 Jan 2026 21:29:22 +0000 (22:29 +0100)] 
loop-util: when open_flags is unspecified derive it from passed in fd

13 days agosd-event: use FOREACH_ARRAY 40464/head
Mike Yuan [Sat, 24 Jan 2026 17:51:21 +0000 (18:51 +0100)] 
sd-event: use FOREACH_ARRAY

13 days agosd-event: unpoison memory returned by epoll_pwait2()
Mike Yuan [Sat, 24 Jan 2026 17:33:05 +0000 (18:33 +0100)] 
sd-event: unpoison memory returned by epoll_pwait2()

Our fuzzer CI recently got bumped to Ubuntu 24.04 with
glibc >= 2.35. Apparently msan is not happy with the new
epoll_pwait2(), hence explicitly mark the memory region
as initialized.

Fixes #40455
Alternative to #40463

13 days agoREADME: add epoll_pwait2() to the list of kernel APIs
Mike Yuan [Sat, 24 Jan 2026 17:28:24 +0000 (18:28 +0100)] 
README: add epoll_pwait2() to the list of kernel APIs

13 days agounits/meson.build: rebreak lines
Mike Yuan [Sat, 24 Jan 2026 17:07:15 +0000 (18:07 +0100)] 
units/meson.build: rebreak lines

13 days agomkosi: fix debian/ubuntu/suse builds
Luca Boccassi [Sat, 24 Jan 2026 15:12:09 +0000 (16:12 +0100)] 
mkosi: fix debian/ubuntu/suse builds

Follow-up for 072e72424b2e6da1c96489ef6996f49fabd46474

13 days agomkosi: workaround autovt removal in SUSE spec 40460/head
Luca Boccassi [Sat, 24 Jan 2026 13:24:53 +0000 (13:24 +0000)] 
mkosi: workaround autovt removal in SUSE spec

Follow-up for 072e72424b2e6da1c96489ef6996f49fabd46474

13 days agomkosi: update debian commit reference to 6f4d90be5cb4075954f0a36653105e586a9a1fa9
Luca Boccassi [Sat, 24 Jan 2026 13:19:28 +0000 (13:19 +0000)] 
mkosi: update debian commit reference to 6f4d90be5cb4075954f0a36653105e586a9a1fa9

6f4d90be5c Do not install autovt@ for upstream builds
8cc28a6b82 Install new files for upstream build
0d15255073 Use deb-systemd-invoke to reexec instead of manual calls
db04e5fa0b Use dh_installsystemd to handle journald and networkd
d8756a4c82 Use dh_installsystemd more to manage units
40b23b0d5d d/tests: drop tests-in-lxd
5821c5a350 d/control: have systemd-boot depend on efibootmgr for amd64 and arm64 only

Follow-up for 072e72424b2e6da1c96489ef6996f49fabd46474

13 days agounits/getty@.service: use [Install]Alias= instead of static alias
Zbigniew Jędrzejewski-Szmek [Fri, 23 Jan 2026 13:18:14 +0000 (14:18 +0100)] 
units/getty@.service: use [Install]Alias= instead of static alias

In Fedora, kmsconvt@.service is starting to be used instead of getty@.service
to have nicer font handling. This means that we need the autovt@.service alias
point to the new unit. So far the alias was done through a static symlink
because there was little reason to change it. Let's use [Install] instead so
the decision which implementation to use can be made after installation.

https://bugzilla.redhat.com/show_bug.cgi?id=2429626
https://fedoraproject.org/wiki/Changes/UseKmsconVTConsole

13 days agotivial journal fixlets (#40448)
Lennart Poettering [Sat, 24 Jan 2026 12:18:31 +0000 (13:18 +0100)] 
tivial journal fixlets (#40448)

13 days agomountfsd: improve logging
Lennart Poettering [Fri, 28 Nov 2025 15:22:21 +0000 (16:22 +0100)] 
mountfsd: improve logging