]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
60 min agohwdb: Fix ACCEL_MOUNT_MATRIX for Lenovo Ideapad MIIX 310-ICR (#40067) main
0x06 [Sun, 14 Dec 2025 22:19:10 +0000 (23:19 +0100)] 
hwdb: Fix ACCEL_MOUNT_MATRIX for Lenovo Ideapad MIIX 310-ICR (#40067)

Tested with monitor-sensor on bvr1HCN44WW

63 min agohwdb: sensor: Remove Lenovo IdeaPad Duet 3 accel mount matrix (#40075)
David Santamaría Rogado [Sun, 14 Dec 2025 22:16:10 +0000 (23:16 +0100)] 
hwdb: sensor: Remove Lenovo IdeaPad Duet 3 accel mount matrix (#40075)

Same case as IdeaPad D330, matrix applied to solve issues in wayland
compositors when is not the way because correct data is send by the
sensor.

As described in #39529, let's remove the matrix.

65 min agohwdb: sensor: Add HP OmniBook Ultra Flip 14 accel mount matrix (#40076)
David Santamaría Rogado [Sun, 14 Dec 2025 22:14:00 +0000 (23:14 +0100)] 
hwdb: sensor: Add HP OmniBook Ultra Flip 14 accel mount matrix (#40076)

HP OmniBook Ultra Flip Laptop 14-fh0xxx tilt is inverted by default so
screen tilt-face down is up and vice versa, invert the axis then.

10 hours agonamespace: Clone root dir descriptor before use (#39939)
Daan De Meyer [Sun, 14 Dec 2025 12:34:17 +0000 (13:34 +0100)] 
namespace: Clone root dir descriptor before use (#39939)

Before doing anything with the root directory file descriptor, let's
make sure we clone it first so that the caller can't mess with mount fd
attributes via mount_setattr() anymore.

We clone during parsing instead of in executor so that the caller can't
mess with the mount fd between invocations.

12 hours agoTEST-50-DISSECT: Make sure RootDirectoryFileDescriptor= can be reused 39939/head
Daan De Meyer [Mon, 1 Dec 2025 18:35:51 +0000 (19:35 +0100)] 
TEST-50-DISSECT: Make sure RootDirectoryFileDescriptor= can be reused

12 hours agonamespace: Clone root dir descriptor before use
Daan De Meyer [Fri, 28 Nov 2025 19:28:01 +0000 (20:28 +0100)] 
namespace: Clone root dir descriptor before use

Before doing anything with the root directory file descriptor, let's
make sure we clone it first so that the caller can't mess with mount fd
attributes via mount_setattr() anymore.

We clone during parsing instead of in executor so that the caller can't
mess with the mount fd between invocations.

12 hours agomount-util: Add mount_fd_clone() helper
Daan De Meyer [Fri, 28 Nov 2025 18:06:37 +0000 (19:06 +0100)] 
mount-util: Add mount_fd_clone() helper

The kernel prevents you from open_tree()'ing an open_tree() fd unless it
was created from the caller's mount namespace. For various use cases, we
want to be able to open_tree() arbitrary mount file descriptors. Turns
out there's a way go get around it by mounting the mount file descriptor
in a throw-away mount namespace and then open_tree()'ing the mount file
descriptor. Let's implement this as a new helper mount_fd_clone() and
add a test for it.

Because move_mount()'ing the original fd makes it pretty useless as it
can't be move_mount()'ed again, we optionally make a second clone which
can replace the original fd so it can be cloned again later.

36 hours agoconf-files: include the expected suffix in the 'unexpected suffix' debug message.
Alexis-Emmanuel Haeringer [Thu, 11 Dec 2025 21:36:23 +0000 (22:36 +0100)] 
conf-files: include the expected suffix in the 'unexpected suffix' debug message.

2 days agocore/execute-serialize: do not gracefully skip unknown image policies in executor...
Mike Yuan [Fri, 12 Dec 2025 15:20:14 +0000 (16:20 +0100)] 
core/execute-serialize: do not gracefully skip unknown image policies in executor (#40062)

2 days agodiscover-image: Rework image_make()
Daan De Meyer [Wed, 3 Dec 2025 10:08:56 +0000 (11:08 +0100)] 
discover-image: Rework image_make()

Currently, image_new() will calculate the image
path as the combination of dir_path and filename,
which is completely broken if filename is absolute
and dir_path is set.

Let's fix this by thoroughly cleaning up the
image_make() interface. Instead of having four
different arguments to pass in the image path,
let's reduce that to two, a file descriptor and a
path. If no file descriptor is provided, we create
own ourselves by opening the given path.

The callsites are updated to pass in an existing file
descriptor when available. Path calculation is moved
to callers instead of image_make().

2 days agotree-wide: Use meson test -q
Daan De Meyer [Thu, 11 Dec 2025 16:21:08 +0000 (17:21 +0100)] 
tree-wide: Use meson test -q

meson test output is extremely verbose, printing
a separate line for each successful test. Let's
add -q/--quiet everywhere so it only prints full
lines for skipped and failed tests.

2 days agohwdb: Add ACCEL_MOUNT_MATRIX for variant of TERRA PAD 1061
0x06 [Thu, 11 Dec 2025 22:53:51 +0000 (23:53 +0100)] 
hwdb: Add ACCEL_MOUNT_MATRIX for variant of TERRA PAD 1061

Tested with monitor-sensor

2 days agoresolve: use strcmp when comparing DnsServer names
Fletcher Woodruff [Thu, 11 Dec 2025 23:30:22 +0000 (15:30 -0800)] 
resolve: use strcmp when comparing DnsServer names

This fixes an issue where duplicate DNS Servers are added to
to resolv.conf files even when all fields are the same.

3 days agocore/execute-serialize: do not gracefully skip unknown image policies in executor 40062/head
Mike Yuan [Thu, 11 Dec 2025 15:26:34 +0000 (16:26 +0100)] 
core/execute-serialize: do not gracefully skip unknown image policies in executor

Follow-up for 7c0afcdde22d3d94fd23bfd0e473c263aaf54e8a

Addresses https://github.com/systemd/systemd/pull/40060#issuecomment-3641288267

As commented, the unknown values should have been filtered out
in pid1's initial parsing already, and the communication between
pid1 and executor is entirely internal which makes the graceful
practice counterproductive.

3 days agoshared/image-policy: format ", ignoring" + value msg in our usual style
Mike Yuan [Thu, 11 Dec 2025 15:25:26 +0000 (16:25 +0100)] 
shared/image-policy: format ", ignoring" + value msg in our usual style

3 days agocore: gracefully skip unknown policy designators in RootImagePolicy et al (#40060)
Luca Boccassi [Thu, 11 Dec 2025 05:38:26 +0000 (05:38 +0000)] 
core: gracefully skip unknown policy designators in RootImagePolicy et al (#40060)

Usually we gracefully ignore unknown configuration parameters, so that
service files can be written by upstreams and used across a variegated
range of distributions with various versions of systemd, to avoid
forcing users to the minimum common denominator and only adding settings
that are supported by the oldest distro supported.

Image policies do not behave like this, and any unknown partition or
policy designator causes the whole unit to fail to parse and a hard
error.

Change it so that parsing RootImagePolicy and friends via unit file or
D-Bus logs but otherwise ignores unknown specifiers, like other options
do.

This allows us to add new specifiers in the future, and users to adopt
them immediately.

Follow-up for d452335aa47fb1f1b11dc75bc462697431e64af3

3 days agoTEST-85-NETWORK: enable NetworkdSysctlTest
Yu Watanabe [Wed, 10 Dec 2025 15:20:18 +0000 (00:20 +0900)] 
TEST-85-NETWORK: enable NetworkdSysctlTest

Note, each test case must be prefixed with 'test_'.

This also adds one more log check for issue #40051.

Follow-up for c78bcda4613fe877881f9760da63f2f8f832118a.

4 days agomeson: bump version to v259~rc3 v259-rc3
Luca Boccassi [Wed, 10 Dec 2025 17:35:06 +0000 (17:35 +0000)] 
meson: bump version to v259~rc3

4 days agoChores for RC3 (#40058)
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 17:33:05 +0000 (18:33 +0100)] 
Chores for RC3 (#40058)

4 days agoNEWS: update date 40058/head
Luca Boccassi [Wed, 10 Dec 2025 17:11:24 +0000 (17:11 +0000)] 
NEWS: update date

4 days agoNEWS: update contributors list
Luca Boccassi [Wed, 10 Dec 2025 17:11:05 +0000 (17:11 +0000)] 
NEWS: update contributors list

4 days agohwdb: update autosuspend rules
Luca Boccassi [Wed, 10 Dec 2025 17:08:57 +0000 (17:08 +0000)] 
hwdb: update autosuspend rules

ninja -C build update-hwdb-autosuspend

4 days agoUpdate hwdb
Luca Boccassi [Wed, 10 Dec 2025 17:07:41 +0000 (17:07 +0000)] 
Update hwdb

ninja -C build update-hwdb

4 days agovmspawn: fix typo in log specifier
Antonio Alvarez Feijoo [Wed, 10 Dec 2025 15:32:08 +0000 (16:32 +0100)] 
vmspawn: fix typo in log specifier

Follow-up for 179dcf924f7d0ac9398f54baeb39b47abd23aeaf

4 days agopo: Translated using Weblate (Georgian)
Temuri Doghonadze [Wed, 10 Dec 2025 14:52:59 +0000 (14:52 +0000)] 
po: Translated using Weblate (Georgian)

Currently translated at 100.0% (264 of 264 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ka/
Translation: systemd/main

4 days agotest: Stop using grep -q in integration test
Daan De Meyer [Wed, 3 Dec 2025 12:36:52 +0000 (13:36 +0100)] 
test: Stop using grep -q in integration test

When a TTY is attached to the test unit, grep -q will generate SIGPIPE
for the previous command in the pipeline which in combo with `pipefail`
will cause the command to fail with exit status 141 which will fail the
test.

Replace with >/dev/null to avoid this from happening.

See also https://www.gnu.org/software/grep/manual/html_node/Usage.html
> There is a related problem with Bash’s set -e -o pipefail. Since grep
> does not always read all its input, a command outputting to a pipe read
> by grep can fail when grep exits before reading all its input, and the
> command’s failure can cause Bash to exit.

Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
4 days agobus-wait-for-jobs: fix failed job logging (#40043)
Yu Watanabe [Wed, 10 Dec 2025 10:00:39 +0000 (19:00 +0900)] 
bus-wait-for-jobs: fix failed job logging (#40043)

Follow-ups for 0d91a204cb78d692f23e80d3a08f9b81ecad753a.
Fixes #40030.

4 days agomanager-serialize: add logging for ENOMEM
David Tardon [Tue, 9 Dec 2025 09:41:59 +0000 (10:41 +0100)] 
manager-serialize: add logging for ENOMEM

4 days agotree-wide: flatten nested error checks
David Tardon [Tue, 9 Dec 2025 09:04:36 +0000 (10:04 +0100)] 
tree-wide: flatten nested error checks

4 days agotar-util: allow to build without acl support (#39965)
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2025 08:42:50 +0000 (09:42 +0100)] 
tar-util: allow to build without acl support (#39965)

This adds minimal definitions provided by libacl to make tar-util built
without libacl support.
Fixes the following compile error:
```
../src/shared/tar-util.c:62:9: error: unknown type name 'acl_t'
   62 |         acl_t acl_access, acl_default;
      |         ^~~~~
```

Follow-up for 4ded7f7a434c59534f65a0f9d391c55961eb110d.
Fixes #39928.
Replaces #39954.

4 days agobus-wait-for-jobs: assign unique error code from service result 40043/head
Yu Watanabe [Tue, 9 Dec 2025 19:15:28 +0000 (04:15 +0900)] 
bus-wait-for-jobs: assign unique error code from service result

4 days agohwdb: sensor: Remove Lenovo IdeaPad D330 accel mount matrix
David Santamaría Rogado [Wed, 10 Dec 2025 04:18:01 +0000 (05:18 +0100)] 
hwdb: sensor: Remove Lenovo IdeaPad D330 accel mount matrix

Reading values from iio-sensor we are getting bad values. This matrix was added because the panel was a vertical one but the normal position is horizontal and the sensor is not bad oriented.

Removing the matrix ensure we have correct orientation values and prevent from misleads where the incorrect values we were getting messed up.

For example mutter actually is setting incorrect screen rotation for devices with panel orientation quirks.

I'm pretty sure that there are more devices where we have incorrectly "corrected" the sensor values when the only problem was the panel orientation.

Signed-off-by: David Santamaría Rogado <howl.nsp@gmail.com>
4 days agohostname: explain a bit why hostnames should be single DNS labels, not fqdns
Lennart Poettering [Wed, 10 Dec 2025 01:03:47 +0000 (10:03 +0900)] 
hostname: explain a bit why hostnames should be single DNS labels, not fqdns

5 days agoresolve: always read /etc/resolv.conf on reload systemd-resolved
Pasquale van Heumen [Tue, 9 Dec 2025 15:45:10 +0000 (16:45 +0100)] 
resolve: always read /etc/resolv.conf on reload systemd-resolved

When systemd-resolved is used in resolv.conf foreign mode, reloading the
systemd-resolved daemon does not read resolv.conf when not touched since
the last time resolved read the file. Since the DNS servers list is
flushed during a reload, resolved forgets about the servers
in /etc/resolv.conf

When reloading the daemon it is expected that all configuration is
reloaded regardless of the disk timestamps.

5 days agoboot: handle empty initrd files (#40040)
Ricardo Salveti [Tue, 9 Dec 2025 19:55:57 +0000 (04:55 +0900)] 
boot: handle empty initrd files (#40040)

Commit f8fa4222c9ac3e74e91c64e25e9532c99559cf99 added extra logic to
account for the size of the initrds before allocating the required memory pages,
but missed checking if the initrds were empty before allocating memory.

Extend the initrd options only when the initrd is valid, and add extra
check for validating that there is at least one valid initrd file before
allocating memory, fixing the following crash when booting with empty
initrd files:

src/boot/log.c:30@efi_assert: systemd-boot: Assertion
 'BS->AllocatePages(type, memory_type, n_pages, &addr) == EFI_SUCCESS'
failed at /usr/src/debug/systemd-boot/257.8/src/boot/util.h:95@xmalloc_pages, halting.

Fixes: f8fa4222c9ac3e74e91c64e25e9532c99559cf99
("boot: Make initrd_prepare() semantically equivalent to combine_initrds()")

5 days agobus-wait-for-jobs: do not say "Unexpected job result" when job is simply failed
Yu Watanabe [Tue, 9 Dec 2025 18:59:12 +0000 (03:59 +0900)] 
bus-wait-for-jobs: do not say "Unexpected job result" when job is simply failed

5 days agobus-wait-for-jobs: use SYNTHETIC_ERRNO()
Yu Watanabe [Tue, 9 Dec 2025 18:48:30 +0000 (03:48 +0900)] 
bus-wait-for-jobs: use SYNTHETIC_ERRNO()

Since 0d91a204cb78d692f23e80d3a08f9b81ecad753a, we always logs
something. Hence, we can use SYNTHETIC_ERRNO().

5 days agobus-wait-for-jobs: fix quiet argument for log_job_error_with_service_result()
Yu Watanabe [Tue, 9 Dec 2025 18:26:40 +0000 (03:26 +0900)] 
bus-wait-for-jobs: fix quiet argument for log_job_error_with_service_result()

The argument 'quiet' is a boolean, not a integrer and not a log level.

Follow-up for 0d91a204cb78d692f23e80d3a08f9b81ecad753a.
Fixes #40030.

5 days agopo: Translated using Weblate (Slovenian)
Martin Srebotnjak [Tue, 9 Dec 2025 15:58:22 +0000 (15:58 +0000)] 
po: Translated using Weblate (Slovenian)

Currently translated at 100.0% (264 of 264 strings)

Co-authored-by: Martin Srebotnjak <miles@filmsi.net>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sl/
Translation: systemd/main

5 days agotar-util: allow to build without libacl support 39965/head
Yu Watanabe [Tue, 2 Dec 2025 05:13:15 +0000 (14:13 +0900)] 
tar-util: allow to build without libacl support

Fixes #39928.
Follow-up for 4ded7f7a434c59534f65a0f9d391c55961eb110d.

5 days agotar-util: allocate ACL entry only when necessary
Yu Watanabe [Tue, 9 Dec 2025 14:39:41 +0000 (23:39 +0900)] 
tar-util: allocate ACL entry only when necessary

Follow-up for 4ded7f7a434c59534f65a0f9d391c55961eb110d.

5 days agoacl-util: define minimal types and constants even when acl support is disabled
Yu Watanabe [Tue, 2 Dec 2025 05:12:23 +0000 (14:12 +0900)] 
acl-util: define minimal types and constants even when acl support is disabled

5 days agoudev-builtin-net_id: fix construction of USB specifier-based names
Jeremy Kerr [Tue, 9 Dec 2025 13:22:55 +0000 (22:22 +0900)] 
udev-builtin-net_id: fix construction of USB specifier-based names

Commit 0bac1ed242 ("tree-wide: Fix constness issues with newer glibc")
split a temporary var in get_usb_specifier to const and non-const
versions, but missed converting a couple of uses. This means we get
names of with components of:

 port: uN
 config: cC.I
 interface: iC.I

instead of:

 port: uN
 config: cC
 interface: iI

This results in net names like enu1c1.0i1.0, as we also no longer hit
the config==1 and interf==0 elision cases.

Change the config portion handling to start from the correct position,
and the earlier check for NULL.

5 days agotest: use -force with unsquashfs for test reruns
Luca Boccassi [Sat, 6 Dec 2025 00:39:04 +0000 (00:39 +0000)] 
test: use -force with unsquashfs for test reruns

In case a test is reran or a directory reused, overwrite it
instead of failing

5 days agoshell-completion: fix portablectl path completion with preceding params
Luca Boccassi [Wed, 3 Dec 2025 22:23:23 +0000 (22:23 +0000)] 
shell-completion: fix portablectl path completion with preceding params

The completion fails to complete to paths for verbs that need them when
a --param is the previous word, e.g.:

portablectl attach --runtime <tab>

fails to complete to paths

5 days agoukify: prefer compression.zstd when available
Lukáš Zaoral [Mon, 8 Dec 2025 14:42:40 +0000 (15:42 +0100)] 
ukify: prefer compression.zstd when available

Python 3.14 introduced support for zstd in the standard library [1].  Therefore,
let's prefer it when available to decrease the number of necessary  external
dependencies.

[1] https://docs.python.org/3/whatsnew/3.14.html#whatsnew314-zstandard

5 days agofind-esp: consistently quote paths in log messages
David Tardon [Mon, 8 Dec 2025 13:28:54 +0000 (14:28 +0100)] 
find-esp: consistently quote paths in log messages

5 days agofind-esp: replace assert by a runtime check
David Tardon [Fri, 5 Dec 2025 12:09:16 +0000 (13:09 +0100)] 
find-esp: replace assert by a runtime check

The path--as a whole--is no longer being opened with O_DIRECTORY, hence
the assertion is not valid.

Reproducer:
 # SYSTEMD_RELAX_ESP_CHECKS=1 bootctl list --esp-path=`pwd`/README
 Assertion 'S_ISDIR(sxa.stx_mode)' failed at src/shared/find-esp.c:295, function verify_fsroot_dir(). Aborting.

Follow-up-for: 63105f33edad423691e2d53bf7071f99c83799ba

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2417917
5 days agomeson: a variety of build portability fixes (#40012)
Yu Watanabe [Tue, 9 Dec 2025 05:35:22 +0000 (14:35 +0900)] 
meson: a variety of build portability fixes (#40012)

This is for packaging systemd in Chimera Linux, which uses BSD-style
userland tools, alongside musl.

5 days agoportabled: list new methods in D-Bus policy
Luca Boccassi [Mon, 8 Dec 2025 20:11:32 +0000 (20:11 +0000)] 
portabled: list new methods in D-Bus policy

Access to these methods is also managed via polkit,
but they were never added to the access list in the
D-Bus policy.

Follow-up for 907952bbc92dd6656807d9b2eb0d0c94a4c9e865

6 days agovcs-tag.sh: use portable sed argument order 40012/head
q66 [Sat, 6 Dec 2025 16:59:09 +0000 (17:59 +0100)] 
vcs-tag.sh: use portable sed argument order

6 days agomeson: try BSD-style date(1) for alt_time_epoch as a fallback
q66 [Sat, 6 Dec 2025 16:56:47 +0000 (17:56 +0100)] 
meson: try BSD-style date(1) for alt_time_epoch as a fallback

If we fail to calculate alt_time_epoch using the GNU-style syntax,
try if BSD-style syntax does not work. Fail for real if that does
not work either.

6 days agomeson: try BSD-style stat(1) syntax when failing mtime check
q66 [Sat, 6 Dec 2025 16:55:04 +0000 (17:55 +0100)] 
meson: try BSD-style stat(1) syntax when failing mtime check

The system may be using a stat(1) implementation that follows
BSD-style syntax. Try that as a fallback, but do fail for real
if that also fails.

6 days agomeson: drop ln --relative check
q66 [Sat, 6 Dec 2025 16:53:29 +0000 (17:53 +0100)] 
meson: drop ln --relative check

The coreutils release that included this was in 2012. Since then,
systemd requires a newer meson, mostly uses install_symlink, and
so on. Additionally, where it does use this feature, it uses the
'-r' short flag. There are implementations of 'ln' that do have
support for '-r' but no longopts. Things will still work on those
but this check will fail.

6 days agotests: also add qemu shutdown trace debug logs to integration script
Luca Boccassi [Mon, 8 Dec 2025 15:47:50 +0000 (15:47 +0000)] 
tests: also add qemu shutdown trace debug logs to integration script

Again to chase https://github.com/systemd/systemd/issues/38240
as suggested on QEMU's matrix channel

6 days agohwdb: add Magic Trackpad v2 USB-C (2024) to quirks (#40032)
Stephanie Wilde-Hobbs [Mon, 8 Dec 2025 18:38:17 +0000 (19:38 +0100)] 
hwdb: add Magic Trackpad v2 USB-C (2024) to quirks (#40032)

Without being marked as an external trackpad the palm rejection triggers
too easily. Tested with a local hwdb rule.

6 days agotest-network: drop unused variable
Luca Boccassi [Mon, 8 Dec 2025 17:06:43 +0000 (17:06 +0000)] 
test-network: drop unused variable

Follow-up for e2fbcee030ca13db252105b00b89af13591e4465

6 days agotests: some more logs to try and get info about VM spurious reboots (#40028)
Luca Boccassi [Mon, 8 Dec 2025 14:38:42 +0000 (14:38 +0000)] 
tests: some more logs to try and get info about VM spurious reboots (#40028)

https://github.com/systemd/systemd/issues/38240 keep happening, trying
to get more info

6 days agomachine: Fix hardcoded /var/lib/machines paths
Daan De Meyer [Tue, 2 Dec 2025 10:11:34 +0000 (11:11 +0100)] 
machine: Fix hardcoded /var/lib/machines paths

6 days agotests: run qemu with cpu_reset,guest_errors debug messages 40028/head
Luca Boccassi [Mon, 8 Dec 2025 12:06:24 +0000 (12:06 +0000)] 
tests: run qemu with cpu_reset,guest_errors debug messages

Attempt to gather more information to debug https://github.com/systemd/systemd/issues/38240

6 days agotests: log when qemu crashed and the test is re-ran
Luca Boccassi [Mon, 8 Dec 2025 12:03:48 +0000 (12:03 +0000)] 
tests: log when qemu crashed and the test is re-ran

Follow-up for 0d7f5a9ae6f5fc70c5ad23398c2b7a515e9b1982

6 days agoUpdate mkosi reference and drop use of deprecated RuntimeScratch=/--runtime-scratch...
Daan De Meyer [Mon, 8 Dec 2025 09:18:33 +0000 (10:18 +0100)] 
Update mkosi reference and drop use of deprecated RuntimeScratch=/--runtime-scratch= (#40016)

6 days agoimport: include unistd.h for pipe2
q66 [Sat, 6 Dec 2025 16:58:14 +0000 (17:58 +0100)] 
import: include unistd.h for pipe2

This is needed for e.g. pipe2 and unlinkat and a build failure
is reproducible when libarchive support is disabled.

7 days agomkosi: RuntimeScratch=/--runtime-scratch= are deprecated 40016/head
Yu Watanabe [Fri, 21 Nov 2025 01:07:38 +0000 (10:07 +0900)] 
mkosi: RuntimeScratch=/--runtime-scratch= are deprecated

See https://github.com/systemd/mkosi/commit/054d0690b08afa6163b53ad2dca0e1374e9069f7

7 days agomkosi: update mkosi commit reference to 5a476a92deca8ad54869e5d416217aa1bb137b25
Yu Watanabe [Sun, 7 Dec 2025 01:14:19 +0000 (10:14 +0900)] 
mkosi: update mkosi commit reference to 5a476a92deca8ad54869e5d416217aa1bb137b25

5a476a92de Use Path.relative_to instead of Path.parts
03f41faf9f Update doc for mkosi ssh to mention sd v256 sshd-vsock
e054976d18 Rewrite note on fw deps of kernel modules in manpage
a046243a50 Add python3-pefile to fedora tools conf
0bab54087e Fix truthy condition
01c38544b2 code review
563dca41da code review
6074d14c0e code review
7e842db3b1 Don't discard ordering of include/exclude entries in KernelModules=
0047b64785 build(deps): bump github/codeql-action from 4.31.2 to 4.31.6
f13325bc4b build(deps): bump actions/checkout from 5.0.0 to 6.0.0
9ac31d1795 Add zram and nfnetlink to default initrd
4bdb47b6da verity: copy signing certificate to /usr/lib/verity.d/
8865afde9e Improve manpage output using pandoc lua filter (#4005)
a425313c58 Pass environment to systemd-sysusers invocation
23f09d5de7 Make Ruff check for dangling whitespace
abeed73d13 qemu: Add missing sandbox
a05872e523 Ssh=yes maps to Ssh=always, update the manpage
79489534ca Warn of mkosi's sshd lacking support in distros' SElinux policy
696f99da43 Manpage: Update supported output formats
21675c4822 Silence swtpm SHA1 signature deprecation warning
df53510982 DOC: update Ssh= to note sd-v256+ already generates sshd-vsock
50ccef7926 Configure default tools tree with ToolsTree=yes
0b701c690d opensuse: do not install openSUSE-release for Leap >= 16.0
4bababf421 opensuse: fix mirror URL for Leap >= 16.0
c43123398c config.py: add config_default_proxy_exclude()
07a0a2be67 installer: Only mount configured state subdirs into sandbox
d5efbf6f8c build(deps): bump github/codeql-action from 3.30.5 to 4.31.2
2912ed20d5 PTY forward fixes
66dab75259 sandbox: Drop all capabilities that don't make sense in userns
8fe5df4400 Respect SYSTEMD_TINT_BACKGROUND and SYSTEMD_ADJUST_TERMINAL_TITLE
b9d208789d log: Drop konsole hack
7fa6eac65c Clarify that mkosi.images is not picked up in mkosi.conf.d
08a0f768dd vmspawn: Support BindUser=
c7c3eaee4e mkosi-vm: Enable universe repository for ubuntu in mkosi-vm
688e77f1a8 vmspawn: Use --grow-image
c47b7fe57b arch: Switch to the newly established fastly mirror
7db8f2cda3 Match compressed pacman packages too
e3b3b93c50 Prevent using Overlay=yes with Format=portable
83a25324b3 Make sure apt sources are installed when BaseTrees= is in the mix
f6fa2fd6a0 test: add unit tests for parents_below() utility function
1eafbd8d03 Don't print newlines in stash_terminal_title()
bbaf92b50e Don't print newline after ansi sequences
d1b84f5fb3 Look for .sdmagic before we consider a PE binary a UKI/addon
b4efdbf14e Treat /opt the same as /usr for the sandbox
71ffced0f1 Rework PACKAGE_GLOBS to be a PackageManager classmethod
29605c2757 Various SPDX and whitespace fixes

7 days agotest: several fixlets/workarounds for supporting postmarketOS (#39905)
Yu Watanabe [Sun, 7 Dec 2025 01:16:58 +0000 (10:16 +0900)] 
test: several fixlets/workarounds for supporting postmarketOS (#39905)

7 days agologind: fix initial button state is not fetched when device is registered late (...
Morgan [Sun, 7 Dec 2025 00:48:49 +0000 (09:48 +0900)] 
logind: fix initial button state is not fetched when device is registered late (#39978)

If buttons that are not initialized from manager_startup() due to still
being processed by udev, the initial state is not checked. (commit
405be62f05d76f1845f347737b5972158c79dd3e)

This caused a problem which initial "close" state being not recognized
if lid switch of some system getting initialized later.

7 days agotest-network: fix invalid captive portal URL with dnsmasq 2.92 (#40011)
Luca Boccassi [Sun, 7 Dec 2025 00:43:47 +0000 (00:43 +0000)] 
test-network: fix invalid captive portal URL with dnsmasq 2.92 (#40011)

dnsmasq 2.92 started converting binary content to ascii so the previous
invalid URL is no longer invalid as it's escaped.

So the test started failing: https://bugs.debian.org/1122015

Use a '|' character instead, which is not a valid URL character but it's
also not escaped by dnsmasq.

Follow-up for 1219391c9fa74568e4c60ee6b495e74887ab448f

7 days agotest-execute: support case that the games user in multiple groups 39905/head
Yu Watanabe [Tue, 2 Dec 2025 21:59:31 +0000 (06:59 +0900)] 
test-execute: support case that the games user in multiple groups

On Alpine/postmarketOS,
```
$ id -nG games
games users
```

7 days agointegration-test: skip several test cases when nss module is not supported
Yu Watanabe [Sat, 29 Nov 2025 01:02:19 +0000 (10:02 +0900)] 
integration-test: skip several test cases when nss module is not supported

7 days agotest: skip several test cases when built with musl
Yu Watanabe [Sat, 29 Nov 2025 01:01:56 +0000 (10:01 +0900)] 
test: skip several test cases when built with musl

7 days agointegration-test: skip several test cases on Alpine/postmarketOS
Yu Watanabe [Fri, 28 Nov 2025 14:27:26 +0000 (23:27 +0900)] 
integration-test: skip several test cases on Alpine/postmarketOS

7 days agotest: support coreutils built with --enable-single-binary=symlinks
Yu Watanabe [Sat, 27 Sep 2025 04:29:07 +0000 (13:29 +0900)] 
test: support coreutils built with --enable-single-binary=symlinks

Alpine/postmarketOS build coreutils with --enable-single-binary=symlinks.
In that case, all commands provided by coreutils are symlink to
/usr/bin/coreutils, and it calls prctl(PR_SET_NAME, argv[0]), hence the comm
will be the path to the symlink.

This also makes not kill sleep command with SIGKILL in TEST-17-UDEV, that is
totally unnecessary.

7 days agotest-network: IPv4-mapped-IPv6 addresses may be shown as pure IPv6 address
Yu Watanabe [Tue, 25 Nov 2025 17:47:57 +0000 (02:47 +0900)] 
test-network: IPv4-mapped-IPv6 addresses may be shown as pure IPv6 address

It seems ip command built with musl always shows IPv6 addresses in the same way.

7 days agotest-network: also stop nftables.service
Yu Watanabe [Tue, 25 Nov 2025 16:47:30 +0000 (01:47 +0900)] 
test-network: also stop nftables.service

It is a firewall service used in postmarketOS.
When it is active, then e.g. DHCP packets are filtered, and many
tests will be failed.

7 days agoTEST-75-RESOLVED: move test cases for NFTSet= to TEST-07-PID1
Yu Watanabe [Mon, 24 Nov 2025 15:48:16 +0000 (00:48 +0900)] 
TEST-75-RESOLVED: move test cases for NFTSet= to TEST-07-PID1

The test cases are not related to systemd-resolved.

While moving the test cases, now userdbctl is used for obtaining UID/GID
for the dynamic user, as musl does not support nss module, hence getent
does not provide information about the dynamic user.

7 days agoTEST-46-HOMED: split into small testcases
Yu Watanabe [Tue, 25 Nov 2025 00:50:36 +0000 (09:50 +0900)] 
TEST-46-HOMED: split into small testcases

This also replace long IDENTITY= line with pretty json string.

7 days agoTEST-35-LOGIN: fix bus path when the session does not have corresponding audit session
Yu Watanabe [Wed, 26 Nov 2025 13:44:14 +0000 (22:44 +0900)] 
TEST-35-LOGIN: fix bus path when the session does not have corresponding audit session

If there is no corresponding audit session, then the session ID is
prefixed with 'c', and in that case the session ID should be used as is
in bus path.

7 days agoTEST-35-LOGIN: show remaining sessions in cleanup_session()
Yu Watanabe [Wed, 26 Nov 2025 14:51:29 +0000 (23:51 +0900)] 
TEST-35-LOGIN: show remaining sessions in cleanup_session()

Otherwise it is hard to see which session is still active.

7 days agoTEST-13-NSPAWN: the host kernel may not support /proc/kcore
Yu Watanabe [Tue, 25 Nov 2025 18:13:15 +0000 (03:13 +0900)] 
TEST-13-NSPAWN: the host kernel may not support /proc/kcore

7 days agotest-seccomp: do not fail when already MemoryDenyWriteExecute= is enabled
Yu Watanabe [Mon, 1 Dec 2025 00:24:57 +0000 (09:24 +0900)] 
test-seccomp: do not fail when already MemoryDenyWriteExecute= is enabled

7 days agotest: always use bash
Yu Watanabe [Mon, 24 Nov 2025 04:37:04 +0000 (13:37 +0900)] 
test: always use bash

If sh is not bash, some builtin command behave slightly differently.
E.g. if sh is provided by busybox, its builtin test command does not check if
the path is a mount point or not, and 'test -w' only checks the access mode of
the inode. So, even if a readonly filesystem is mounted on a directory,
the test command may succeed.

To avoid such confusion, let's unconditionally use bash.

7 days agoci: pass --no-stdsplit to meson test
Yu Watanabe [Wed, 26 Nov 2025 08:37:19 +0000 (17:37 +0900)] 
ci: pass --no-stdsplit to meson test

Hopefully, we will get more informative logs on failure.

8 days agoAdd 82-net-auto-link-local.{hwdb,rules} to build system and add BMC USB-to-USB links...
Yu Watanabe [Sat, 6 Dec 2025 00:24:55 +0000 (09:24 +0900)] 
Add 82-net-auto-link-local.{hwdb,rules} to build system and add BMC USB-to-USB links to hwdb (#40006)

Using systems with ADLINK COM-HPC-ALT, ASRock Rack ALTRAD8UD-1L2T and
AMPONED8-2T/BCM boards, there's an issue due to the internal network
connection between the BMC and host, which runs over USB (i.e. Linux
running on the BMC configures a USB gadget ethernet device, with a link
local address).

With the default configuration on Ubuntu (I'm using 25.10),
NetworkManager repeatedly tries to get an address for the interface
using DHCP, resulting in an "Activation of network connection failed"
notification every minute or two.

Add 82-net-auto-link-local.hwdb and 82-net-auto-link-local.rules to the
build system and update 82-net-auto-link-local.hwdb to add the USB
device vendor/product pairs I've seen on the various systems I have with
Ampere Altra and AmpereOne CPUs.

9 days agohwdb: Add BMC USB-to-USB link devices to 82-net-auto-link-local.hwdb 40006/head
Rebecca Cran [Fri, 5 Dec 2025 18:25:15 +0000 (11:25 -0700)] 
hwdb: Add BMC USB-to-USB link devices to 82-net-auto-link-local.hwdb

Add BMC USB-to-USB Ethernet gadget devices found on ASRock Rack and
ADLINK boards containing Ampere Altra and AmpereOne CPUs to
82-net-auto-link-local.hwdb. Update 20-usb-vendor-model.hwdb with
devices which were missing.

9 days agohwdb,rules: add 82-net-auto-link-local.{hwdb,rules} to build
Rebecca Cran [Fri, 5 Dec 2025 18:20:05 +0000 (11:20 -0700)] 
hwdb,rules: add 82-net-auto-link-local.{hwdb,rules} to build

Update hwdb.d/meson.build and rules.d/meson.build to add the
82-net-auto-link-local.{hwdb,rules} files into the build. Commit
ec541c569bd19bbb81791139371111a9a7f1a3d8 in 2023 added the files
but didn't add them to the build system.

9 days agoudev-rules: use the right variable
David Tardon [Fri, 5 Dec 2025 14:17:13 +0000 (15:17 +0100)] 
udev-rules: use the right variable

We carefully prepare a copy of a local buffer to save in device cache
and then save the buffer there instead... This leads to abort in free()
on exit (also, copied is leaked).

Reproducer:
 # udevadm test /sys/block/sr0

Follow-up-for: a9559ebcbcf3098b2c14e5e10e99d05aaffe4ac3

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2406118
9 days agopid1: do not fail if dlopen of libmount fails because it is not compiled in
Luca Boccassi [Fri, 5 Dec 2025 11:58:34 +0000 (11:58 +0000)] 
pid1: do not fail if dlopen of libmount fails because it is not compiled in

It is now possible to build and run without libmount. But if support
is compiled in, then we need to be able to load it. Hence gracefully
skip it when support is not compiled in, but fail otherwise.

9 days agoReapply "pid1: pull in libmount unconditionally"
Luca Boccassi [Fri, 5 Dec 2025 11:54:27 +0000 (11:54 +0000)] 
Reapply "pid1: pull in libmount unconditionally"

It was actually intended to load libmount very early, as it is
needed by more than just mount units, such as umount_recursive(),
bind_remount_recursive(), get_sub_mounts(), etc.

Fixes https://github.com/systemd/systemd/issues/39994

This reverts commit 46b4b33c256b918652d5e0b1b5ec376b598111f6.

9 days agopo: Translated using Weblate (Czech)
Daniel Rusek [Fri, 5 Dec 2025 15:00:53 +0000 (15:00 +0000)] 
po: Translated using Weblate (Czech)

Currently translated at 100.0% (264 of 264 strings)

Co-authored-by: Daniel Rusek <mail@asciiwolf.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/cs/
Translation: systemd/main

9 days agoTranslations update from Fedora Weblate (#39998)
Luca Boccassi [Fri, 5 Dec 2025 14:24:23 +0000 (14:24 +0000)] 
Translations update from Fedora Weblate (#39998)

Translations update from [Fedora
Weblate](https://translate.fedoraproject.org) for
[systemd/main](https://translate.fedoraproject.org/projects/systemd/main/).

Current translation status:

![Weblate translation
status](https://translate.fedoraproject.org/widget/systemd/main/horizontal-auto.svg)

9 days agopo: Translated using Weblate (Czech) 39998/head
Daniel Rusek [Fri, 5 Dec 2025 13:08:36 +0000 (13:08 +0000)] 
po: Translated using Weblate (Czech)

Currently translated at 100.0% (264 of 264 strings)

Co-authored-by: Daniel Rusek <mail@asciiwolf.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/cs/
Translation: systemd/main

9 days agopo: Translated using Weblate (Czech)
Pavel Borecki [Fri, 5 Dec 2025 13:08:35 +0000 (13:08 +0000)] 
po: Translated using Weblate (Czech)

Currently translated at 100.0% (264 of 264 strings)

Co-authored-by: Pavel Borecki <pavel.borecki@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/cs/
Translation: systemd/main

9 days agomachined: add description to varlink server, unify error messages
Zbigniew Jędrzejewski-Szmek [Wed, 26 Nov 2025 21:11:24 +0000 (22:11 +0100)] 
machined: add description to varlink server, unify error messages

manager_varlink_init_resolve_hook and manager_varlink_init_userdb are very
similar, but one didn't set a description and the other one had an error
message which didn't print the offending path.

Define constants for the paths, and also change other similar constants
to have slightly shorter names. (It's an "address" and "path", but we don't
need to have both parts in the name, esp. that it makes the name very long.)

9 days agosd-netlink: read error message for NFNL_MSG_BATCH_BEGIN (#39967)
Zbigniew Jędrzejewski-Szmek [Fri, 5 Dec 2025 11:12:03 +0000 (12:12 +0100)] 
sd-netlink: read error message for NFNL_MSG_BATCH_BEGIN (#39967)

Before:
```
$ unshare --user --map-users=0:$(id -u):1 --map-groups=0:$(id -g):1 build/test-firewall-util
/* test_v6 */
src/test/test-firewall-util.c:34: Assertion failed: "r = fw_nftables_add_masquerade(nfnl, true, AF_INET6, &u1, 128)" failed with unexpected error: -110/ETIMEDOUT
Aborted (core dumped)
```

After:
```
$ unshare --user --map-users=0:$(id -u):1 --map-groups=0:$(id -g):1 /var/build/test-firewall-util
/* test_v6 */
test-firewall-util: Failed to add IPv6 masquerade, skipping tests: Operation not permitted
/* test_v4 */
test-firewall-util: Failed to add IPv4 masquerade, skipping tests: Operation not permitted
```

9 days agoman: Clarify secure-boot-enroll defaults
Colin Walters [Thu, 4 Dec 2025 19:00:16 +0000 (14:00 -0500)] 
man: Clarify secure-boot-enroll defaults

Clarify in the docs that `if-safe` is the default by noting
that in the text for it, but also moving it to the first mentioned
option.

Make explicit in `man systemd-boot` that the `secure-boot-enroll`
option is specified in the `loader.conf`

Update an outdated comment in boot.c around the same.

Signed-off-by: Colin Walters <walters@verbum.org>
9 days agosysupdate: also mention patterns to match in error log on failure
Luca Boccassi [Fri, 28 Nov 2025 16:56:11 +0000 (16:56 +0000)] 
sysupdate: also mention patterns to match in error log on failure

The gpt uuid is not the only thing that needs to match, the pattern
does as well, so mention it in the error log if present

9 days agoFix systemctl start --verbose off-by-one logs (#39927)
Zbigniew Jędrzejewski-Szmek [Fri, 5 Dec 2025 10:09:14 +0000 (11:09 +0100)] 
Fix systemctl start --verbose off-by-one logs (#39927)

9 days agomusl: introduce wrappers for getopt() and getopt_long()
Yu Watanabe [Sun, 30 Nov 2025 02:10:02 +0000 (11:10 +0900)] 
musl: introduce wrappers for getopt() and getopt_long()

musl's getopt_long() behaves something different in handling optional arguments:
```
$ journalctl _PID=1 _COMM=systemd --since 19:19:01 -n all --follow
Failed to add match 'all': Invalid argument
```
This introduces getopt_long_fix() that reorders the passed arguments to make
getopt_long() provided by musl works as what we expect.

Also, musl's getopt() always behaves POSIXLY_CORRECT mode, and stops parsing
arguments when a non-option string found. Let's always use getopt_long().

10 days agoinclude: update kernel headers from v6.18
Yu Watanabe [Wed, 3 Dec 2025 22:58:02 +0000 (07:58 +0900)] 
include: update kernel headers from v6.18