]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
8 hours agodocs/INHIBITOR_LOCKS: Update sentence for the new mode added main
Jordan Petridis [Sat, 6 Jun 2026 11:38:06 +0000 (14:38 +0300)] 
docs/INHIBITOR_LOCKS: Update sentence for the new mode added

804874d26ac73e0af07c4c5d7165c95372f03f6d added a new mode but the
sentence wasn't updated and it was still stating that there are Two modes
instead.

8 hours agokbd-model-map: add Arabic mapping
Adam Williamson [Fri, 5 Jun 2026 16:20:29 +0000 (09:20 -0700)] 
kbd-model-map: add Arabic mapping

kbd has a switched 'ara' console layout, but we don't have a
corresponding line in kbd-model-map. When converting 'us,ara' to a
legacy layout we wind up with us-acentos, which is definitely
wrong. This will fix it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
11 hours agoman: correct a few manpage references
Ronan Pigott [Fri, 5 Jun 2026 23:59:19 +0000 (16:59 -0700)] 
man: correct a few manpage references

12 hours agoci: apk should be installed by mkosi action
Yu Watanabe [Fri, 5 Jun 2026 21:02:58 +0000 (06:02 +0900)] 
ci: apk should be installed by mkosi action

apk.static is downloaded by mkosi action.
https://github.com/systemd/mkosi/commit/f64ec15a875c85e83daac380b3c979c9f9e1af31

28 hours agocore: fix accidental change in 3d0309ac0fe7adf35fe83e43c0261611bce300de
Lennart Poettering [Fri, 5 Jun 2026 16:37:52 +0000 (18:37 +0200)] 
core: fix accidental change in 3d0309ac0fe7adf35fe83e43c0261611bce300de

Sorry!

29 hours agoupdate TODO
Lennart Poettering [Fri, 5 Jun 2026 15:50:06 +0000 (17:50 +0200)] 
update TODO

35 hours agoTranslations update from Fedora Weblate (#42490)
Luca Boccassi [Fri, 5 Jun 2026 09:35:08 +0000 (10:35 +0100)] 
Translations update from Fedora Weblate (#42490)

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)

36 hours agopo: Translated using Weblate (Serbian) 42490/head
Марко Костић (Marko Kostić) [Fri, 5 Jun 2026 08:02:10 +0000 (08:02 +0000)] 
po: Translated using Weblate (Serbian)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sr/
Translation: systemd/main

36 hours agopo: Translated using Weblate (Slovenian)
Martin Srebotnjak [Fri, 5 Jun 2026 08:02:09 +0000 (08:02 +0000)] 
po: Translated using Weblate (Slovenian)

Currently translated at 100.0% (285 of 285 strings)

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

36 hours agotest: bump test-execute subtest timeout in CI
Luca Boccassi [Thu, 4 Jun 2026 23:10:56 +0000 (00:10 +0100)] 
test: bump test-execute subtest timeout in CI

The test is flaky and times out lately in ppc64el CI runners:

exec-dynamicuser-statedir.service: Control group is empty.
exec-dynamicuser-statedir.service: User lookup succeeded: uid=65325 gid=65325
Test timeout when testing exec-dynamicuser-statedir.service

Bump the timeout also when in a CI, as they are often over subscribed

36 hours agohwdb: fix match for MSI Claw entries
Matthew Schwartz [Fri, 5 Jun 2026 06:32:18 +0000 (23:32 -0700)] 
hwdb: fix match for MSI Claw entries

This no longer matched with any MSI Claw device after c65efd4145c4
("(hwdb) Update MSI Claw Entries") because of the modalias structure:

dmi:bvnAmericanMegatrendsInternational,LLC.:bvrE1T52IMS.112:bd12/04/2025:br1.18:svnMicro-StarInternationalCo.,Ltd.:pnClaw8AI+A2VM:pvrREV1.0:rvnMicro-StarInternationalCo.,Ltd.:rnMS-1T52:rvrREV1.0:cvnMicro-StarInternationalCo.,Ltd.:ct30:cvrN/A:sku1T52.1:

Fix this by matching against board vendor field rather than system
vendor.

Reviewed-by: Derek J. Clark <derekjohn.clark@gmail.com>
Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev>
44 hours agoSeveral integration test fixlets (#42484)
Yu Watanabe [Fri, 5 Jun 2026 00:46:18 +0000 (09:46 +0900)] 
Several integration test fixlets (#42484)

46 hours agoTEST-58-REPART: support libdevmapper built without UDEV_SYNC_SUPPORT 42484/head
Yu Watanabe [Thu, 4 Jun 2026 06:59:53 +0000 (15:59 +0900)] 
TEST-58-REPART: support libdevmapper built without UDEV_SYNC_SUPPORT

When libdevmapper is built without UDEV_SYNC_SUPPORT (e.g. on Alpine/postmarketOS),
it creates a device node under /dev/mapper/ instead of relying on udev to create a symlink.

46 hours agoTEST-46-HOMED: postmarketos does not have homed
Yu Watanabe [Thu, 4 Jun 2026 01:29:56 +0000 (10:29 +0900)] 
TEST-46-HOMED: postmarketos does not have homed

Hence, the distro check in the test case is not necessary, at least now.

2 days agotest: add missing bpf dependency
Yu Watanabe [Thu, 4 Jun 2026 16:26:41 +0000 (01:26 +0900)] 
test: add missing bpf dependency

Fixes the following build error:
```
ninja: job failed: cc (snip) -o test-bpf-restrict-fsaccess.p/src_test_test-bpf-restrict-fsaccess.c.o -c ../src/test/test-bpf-restrict-fsaccess.c
In file included from ../src/test/test-bpf-restrict-fsaccess.c:96:
src/bpf/restrict-fsaccess-skel.h:19:10: fatal error: restrict-fsaccess.bpf.skel.h: No such file or directory
   19 | #include "restrict-fsaccess.bpf.skel.h"    /* IWYU pragma: export */
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: subcommand failed
```

Follow-up for e6fc73350f9485064302e687b964f70b28b2e4f6.

2 days agotest-namespace: namespace_open_by_id() may return -ESTALE for permission reasons
Yu Watanabe [Tue, 2 Jun 2026 16:40:06 +0000 (01:40 +0900)] 
test-namespace: namespace_open_by_id() may return -ESTALE for permission reasons

As commented in namespace_open_by_id().

Follow-up for 23f22047189a291b9ba19185a24264771ab8c467.

2 days agoTEST-13-NSPAWN: /proc/kcore may not exist
Yu Watanabe [Thu, 4 Jun 2026 16:51:22 +0000 (01:51 +0900)] 
TEST-13-NSPAWN: /proc/kcore may not exist

Similar to 45014d97dde3f1497ce8141f15f6a98cd46edef2.
Follow-up for 83b8daa032cd0adb538cfd9467e6acf2c44aa661.

2 days agoTEST-13-NSPAWN: explicitly create usr/lib/systemd directory in the container image
Yu Watanabe [Thu, 4 Jun 2026 04:53:47 +0000 (13:53 +0900)] 
TEST-13-NSPAWN: explicitly create usr/lib/systemd directory in the container image

The main systemd package is not installed in the minimal image,
hence the directory may not exist.

2 days agotest: replace 'grep -q' with 'grep >/dev/null'
Yu Watanabe [Thu, 4 Jun 2026 01:49:40 +0000 (10:49 +0900)] 
test: replace 'grep -q' with 'grep >/dev/null'

After afa3eb821d4442d3b9d9e693be5322ffbdf594ad, we have introduced 'grep -q'
at several places. Let's replace them.

2 days agotest: skip test cases using userdbctl
Yu Watanabe [Wed, 3 Jun 2026 23:37:54 +0000 (08:37 +0900)] 
test: skip test cases using userdbctl

userdb support is optional, hence userdbctl may not be installed.

2 days agotest-btrfs: quota test is slow
Yu Watanabe [Wed, 3 Jun 2026 23:23:05 +0000 (08:23 +0900)] 
test-btrfs: quota test is slow

The quota test takes ~30 seconds on my poor laptop, and randomly fails
with timeout. Let's extend the timeout and skip the test case when slow
tests are disabled.

2 days agotest: read the namespace symlink directly instead of using lsns
Frantisek Sumsal [Thu, 4 Jun 2026 13:49:06 +0000 (15:49 +0200)] 
test: read the namespace symlink directly instead of using lsns

lsns scans all of /proc/*/ns/* even when a single PID is specified which
can be racy. Let's just read and compare the procfs symlinks directly to
both avoid doing the whole procfs scan and to, hopefully, get rid of the
occasional test fail where lsns fails to resolve the namespace for the
"old" process:

[ 1517.791471] TEST-07-PID1.sh[22279]: + systemd-run --unit=oldservice --property=Type=notify --property=NotifyAccess=all --property=PrivateUsers=true --property=PrivateNetwork=true bash -c 'systemd-notify --ready; exec sleep>
[ 1517.839514] TEST-07-PID1.sh[22329]: Running as unit: oldservice.service; invocation ID: 840ba49490f349c8b3b2116a43fb6f54
[ 1517.840403] TEST-07-PID1.sh[22335]: ++ systemctl show oldservice -p MainPID
[ 1517.841707] TEST-07-PID1.sh[22336]: ++ awk -F= '{print $2}'
[ 1517.849691] TEST-07-PID1.sh[22279]: + OLD_PID=22330
[ 1517.849691] TEST-07-PID1.sh[22279]: + systemd-run --unit=newservice --property=Type=notify --property=NotifyAccess=all --property=UserNamespacePath=/proc/22330/ns/user --property=NetworkNamespacePath=/proc/22330/ns/net bas>
[ 1517.951239] TEST-07-PID1.sh[22337]: Running as unit: newservice.service; invocation ID: 515b7f71240344aba2864e8510a18cbf
[ 1517.951475] TEST-07-PID1.sh[22343]: ++ awk -F= '{print $2}'
[ 1517.951915] TEST-07-PID1.sh[22342]: ++ systemctl show newservice -p MainPID
[ 1517.972557] TEST-07-PID1.sh[22279]: + NEW_PID=22338
[ 1517.972696] TEST-07-PID1.sh[22344]: ++ lsns -p 22330 -o NS -t net -n
[ 1518.003546] TEST-07-PID1.sh[22345]: ++ lsns -p 22338 -o NS -t net -n
[ 1518.030831] TEST-07-PID1.sh[22279]: + assert_eq '' 4026532280
[ 1518.031106] TEST-07-PID1.sh[22348]: + set +ex
[ 1518.031106] TEST-07-PID1.sh[22348]: FAIL: expected: '4026532280' actual: ''
[ 1518.031342] TEST-07-PID1.sh[111]: + echo 'Subtest /usr/lib/systemd/tests/testdata/units/TEST-07-PID1.user-namespace-path.sh failed'

Also, don't swallow the exit code from the command substitution in case
readlink fails, which could lead to a false-positive test result if it
happened for both readlinks.

Resolves: #39546

2 days agosd-dlopen: fix build on 'alpha'
Luca Boccassi [Thu, 4 Jun 2026 13:37:56 +0000 (14:37 +0100)] 
sd-dlopen: fix build on 'alpha'

On alpha '.set' is overridden to mean something else, so the build
fails:

/tmp/ccckEb4p.s:11442: Warning: Tried to .set unrecognized mode `sd_dlopen:[{"feature":"lzma","description":"Support lzma compression in journal and coredump files","priority":"suggested","soname":["liblzma.so.5"]}]'
/tmp/ccckEb4p.s:11442: Error: junk at end of line, first unrecognized character is `,'

Switch to '.equ' which seems to do the job just as well, and builds
on alpha too.

Follow-up for 56a7febca7cd68a10cb85c6d8123db63217f4079

2 days agoUpdate mkosi and debian commit references (#42474)
Luca Boccassi [Thu, 4 Jun 2026 18:10:06 +0000 (19:10 +0100)] 
Update mkosi and debian commit references (#42474)

2 days agoresolve: only write one ELF note for libcrypto
Antonio Alvarez Feijoo [Thu, 4 Jun 2026 13:35:47 +0000 (15:35 +0200)] 
resolve: only write one ELF note for libcrypto

systemd-resolved has 2 contradictory ELF notes for libcrypto:

```
$ systemd-analyze dlopen-metadata /usr/lib/systemd/systemd-resolved
FEATURE   DESCRIPTION                                SONAME         PRIORITY
libcrypto Support for cryptographic operations       libcrypto.so.3 recommended
idn       Support for internationalized domain names libidn2.so.0   recommended
libcrypto Support for cryptographic operations       libcrypto.so.3 required
libssl    Support for TLS                            libssl.so.3    required
```

In order to have a single note, condition its priority based on whether
DNS-over-TLS is enabled.

2 days agoobs: enable PR CI workflow
Luca Boccassi [Thu, 4 Jun 2026 15:43:28 +0000 (16:43 +0100)] 
obs: enable PR CI workflow

Build packages on OBS against the PR and reports status back
to Github. This just builds the systemd package for now, next
step is to also build particleos images.

2 days agogitignore: also ignore mkosi.local.conf in subdirectories
Yu Watanabe [Thu, 4 Jun 2026 16:32:53 +0000 (01:32 +0900)] 
gitignore: also ignore mkosi.local.conf in subdirectories

Like done in c7113f6b3cd9932ac2ddba507138bc9d7df49d4d,
sometimes we want to create mkosi.local.conf in a sub-mkosi directory,
e.g. mkosi.tools.conf.d/mkosi.local.conf, and of course we should not
take these files into git repository.

2 days agomkosi: fix comment
Yu Watanabe [Thu, 4 Jun 2026 04:30:54 +0000 (13:30 +0900)] 
mkosi: fix comment

2 days agomkosi: update debian commit reference to cde07547abb088a20acd28593e6d0ee25d403b63 42474/head
Luca Boccassi [Thu, 4 Jun 2026 12:25:31 +0000 (13:25 +0100)] 
mkosi: update debian commit reference to cde07547abb088a20acd28593e6d0ee25d403b63

cde07547ab Update changelog for 261~rc3-1 release
13a29e5eda Drop unused Lintian overrides
84c4af7e23 Drop now-autogenerated dlopen recommends/suggests
76995069a0 Drop dlopen:Depends from libsystemd-dev
91bb1e5423 Add ${dlopen:Depends} placeholder to all packages shipping ELF binaries
7e333f2b9c Drop bpftool build-dep workaround for Jammy/Noble
8a17f61489 Update changelog for 261~rc2-1 release
58ad925b52 Drop patches, all merged upstream
e53db5cc8f Move conflict with runit helper to sd-sysv
adb081fde6 Workaround piuparts issue with / permissions
457f16e3cf Clean up autovt@ alias on purge
bc0bd48fc8 Update changelog for 261~rc1-1 release
537d92f8ae Force linking against libm
87622cc5ee Backport patch to skip test-pressure in autopkgtest
5b7253e3f9 Update symbols file for new version
bcf39279f8 Backport patch to fix unit test in gitlab CI
e654d67b76 Install new files for upstream release
9b724fd2c1 Bump Standards-version to 4.7.4, no changes

2 days agomkosi: pull in linux-tools-generic for jammy/noble
Luca Boccassi [Thu, 4 Jun 2026 13:44:09 +0000 (14:44 +0100)] 
mkosi: pull in linux-tools-generic for jammy/noble

The build dependency is dropped from the package as it breaks
resolute builds, pull in manually in jammy/noble, as it's
needed for the 'real' bpftool binary

2 days agomkosi: fix various TriggerMatch conditions
Luca Boccassi [Thu, 4 Jun 2026 14:40:27 +0000 (15:40 +0100)] 
mkosi: fix various TriggerMatch conditions

TriggerMatch is an AND by default, so when multiple
Release matches are defined, they need to be prefixed by '|'

2 days agomkosi: update mkosi ref to 60ed8c964f8d98aa4b325f381c4b3bc6de91a0b7
Luca Boccassi [Thu, 4 Jun 2026 15:07:02 +0000 (16:07 +0100)] 
mkosi: update mkosi ref to 60ed8c964f8d98aa4b325f381c4b3bc6de91a0b7

60ed8c964f ubuntu: Don't treat linux-tools-xxx as a kernel package
24e5e532ab obs: enable PR CI workflow
5edcd2c5ca action: skip install of unavailable packages
4c18bc115b sandbox: Make seccomp work on alternative arches
a91c8730e2 tests: Mark install tests and run them separately
923f72ea63 Fix linter unit tests at package build time
3f4bee3392 tests: Avoid leading underscore in helper function
b2f04776c4 docs: Document debugging of failed sandbox commands
461a1dd290 run: Show complete sandbox command, factor out its logging
d74c0b03d9 Don't add El Torito boot catalog for BIOS/grub images by default
b0f9525c2c tests: Move unit tests from GitHub workflow into pytest
2889b5599b run: Add `cwd` kwarg to run()/spawn()
3f7de100b8 sandbox: Fix pyright "possibly unbound variable" errors
4cb9f337e2 gitignore: Add generated man pages and zipapp builddir
49c1c78f3f pytest: Restrict discovery to tests/
a9d7ab5e64 finalize_scripts: tighten the PATH-strip condition to actual self-exec
145f4c259b sandbox: Add --debug option
df43e4007d Mount /etc/resolv.conf symlink into sandbox

2 days agotest: wrap sd-run call with timeout to avoid long hangs in TEST-54-CREDS
Luca Boccassi [Thu, 4 Jun 2026 10:54:53 +0000 (11:54 +0100)] 
test: wrap sd-run call with timeout to avoid long hangs in TEST-54-CREDS

This has been observed to get stuck in an ASAN run, so wrap it
in a timeout call to at least get it to fail fast and hopefully
get better logs rather than a testbed timeout.

2 days agomeson: bump version to v261~rc3 v261-rc3
Luca Boccassi [Wed, 3 Jun 2026 14:11:00 +0000 (15:11 +0100)] 
meson: bump version to v261~rc3

2 days agoNEWS: finalize place and date
Luca Boccassi [Wed, 3 Jun 2026 14:10:41 +0000 (15:10 +0100)] 
NEWS: finalize place and date

2 days agoNEWS: update contributors list
Luca Boccassi [Wed, 3 Jun 2026 14:10:26 +0000 (15:10 +0100)] 
NEWS: update contributors list

2 days agounits: Run systemd-pcrnvdone in initrd
Valentin David [Wed, 3 Jun 2026 20:10:49 +0000 (22:10 +0200)] 
units: Run systemd-pcrnvdone in initrd

The measurement that systemd-pcrnvdone corresponds to
`src/pcrlock/pcrlock.d/770-nvpcr-separator.pcrlock`, and 770 is supposed to
happen in the initrd (which ends at 800).

2 days agoUpdate 60-sensor.hwdb
Moisticules [Thu, 4 Jun 2026 02:19:48 +0000 (03:19 +0100)] 
Update 60-sensor.hwdb

Correction of matrix for GPD MicroPC 2

2 days ago(hwdb) Update MSI Claw Entries
Derek J. Clark [Wed, 3 Jun 2026 22:08:22 +0000 (15:08 -0700)] 
(hwdb) Update MSI Claw Entries
- Add support for MSI Claw A8 BZ2EM.
- Switch to using rn vice pn as MSI uses a unique pn for variants of the
  same model. This prevents needing to update this file when a low volume
  variant is released (I.E. Polar White AI 8+).

2 days agooomd: reject invalid arguments early
Luca Boccassi [Wed, 3 Jun 2026 15:47:54 +0000 (16:47 +0100)] 
oomd: reject invalid arguments early

Validate input parameter immediately during initial parsing

Follow-up for 9de5e32136949a531e71cb31170025c2e1d3430e

2 days agohwdb: add Griffin PowerMate
AsciiWolf [Wed, 3 Jun 2026 20:32:08 +0000 (22:32 +0200)] 
hwdb: add Griffin PowerMate

3 days agoMake repart more user-friendly (#42345)
Luca Boccassi [Wed, 3 Jun 2026 19:22:48 +0000 (20:22 +0100)] 
Make repart more user-friendly (#42345)

3 days agofstab-generator: clear nosuid/nodev/noexec for root=bind: mounts
Daan De Meyer [Wed, 3 Jun 2026 13:54:13 +0000 (13:54 +0000)] 
fstab-generator: clear nosuid/nodev/noexec for root=bind: mounts

A bind mount inherits the mount flags of the file system the source
directory resides on. For root=bind: the source typically lives below
/run/ (e.g. a freshly unpacked tar image in /run/machines/), which is
mounted nosuid,nodev, so those flags propagated to /sysroot and broke
suid binaries (e.g. sudo) and device nodes on the booted system.

Default bind root mounts to dev,suid,exec instead, unless the user
overrides this via rootflags=.

Fixes: https://github.com/systemd/systemd/issues/41352
Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days agocryptsetup: document that keyfile-erase does not apply to auto-discovered key files
Daan De Meyer [Wed, 3 Jun 2026 14:03:39 +0000 (14:03 +0000)] 
cryptsetup: document that keyfile-erase does not apply to auto-discovered key files

keyfile-erase only erases a key file explicitly configured in the third
field of crypttab. Key files automatically discovered in
/etc/cryptsetup-keys.d/ and /run/cryptsetup-keys.d/ are considered shared
resources not owned by an individual volume, and are never erased. Make
this explicit in the documentation and add a code comment clarifying the
intent.

Fixes: https://github.com/systemd/systemd/issues/41127
Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days agoNEWS: Extend note about systemd-sysext refresh changes
Daan De Meyer [Wed, 3 Jun 2026 13:34:22 +0000 (13:34 +0000)] 
NEWS: Extend note about systemd-sysext refresh changes

Fixes #41523

3 days agoshutdown: do not delay VM shutdown (#42396)
Zbigniew Jędrzejewski-Szmek [Wed, 3 Jun 2026 14:10:20 +0000 (16:10 +0200)] 
shutdown: do not delay VM shutdown (#42396)

Since this was introduced I constantly find myself waiting for VMs to
shut down at the end of a test. This not only happens with mkosi
integration tests, but with other VM-based tests like for example
autopkgtest. In this example, this dracut test suite runtime is tripled
due to the artificial delay:

```
[    5.813234] systemd-shutdown[1]: Syncing filesystems and block devices.
[    5.814635] systemd-shutdown[1]: Delaying shutdown for 9s, in order to reach minimum uptime of 15s.
[    8.816855] systemd-shutdown[1]: Delaying shutdown for 6s, in order to reach minimum uptime of 15s.
[   11.819747] systemd-shutdown[1]: Delaying shutdown for 3s, in order to reach minimum uptime of 15s.
[   14.822660] systemd-shutdown[1]: Delaying shutdown for 601ms, in order to reach minimum uptime of 15s.
[   15.427777] systemd-shutdown[1]: Powering off.
[   15.429681] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[   15.433620] ACPI: PM: Preparing to enter system sleep state S5
[   15.435148] reboot: Power down
TEST: root filesystem on a ext4 filesystem with systemd and extensions   [OK]
autopkgtest [19:39:12]: test 46-systemd-sysext: -----------------------]
autopkgtest [19:39:13]: test 46-systemd-sysext:  - - - - - - - - - - results - - - - - - - - - -
46-systemd-sysext    PASS
```

Contrary to what the comment claimed, the scrollback of a VM is _not_
cleared, EDK2 just prints many pages, and one can just scroll up (a
lot).

Do not delay by default on VMs. Move the check so that in both
containers and VMs users can override and force a delay with the env
var.

Follow-up for 0874eea302d0ba2d436dcce0b992cdc957190ff4

3 days agoUpdate NEWS
Luca Boccassi [Wed, 3 Jun 2026 14:05:59 +0000 (15:05 +0100)] 
Update NEWS

3 days agorepart: when copying files into vfat or similar, do not set ownership 42345/head
Zbigniew Jędrzejewski-Szmek [Wed, 27 May 2026 16:28:21 +0000 (18:28 +0200)] 
repart: when copying files into vfat or similar, do not set ownership

$ mkdir /var/tmp/files
$ touch /var/tmp/files/a
$ mkdir /var/tmp/conf
$ cat >>/var/tmp/conf/esp.conf
[Partition]
Type=esp
Format=vfat
CopyFiles=/var/tmp/files:/
$ truncate /var/tmp/disk -s 300M
$ sudo systemd-repart --dry-run=no --empty=require --definitions=/var/tmp/conf /var/tmp/disk
...
Populating vfat filesystem.
Failed to copy '...' to '/run/systemd/mount-root/': Operation not permitted
(sd-copy) failed with exit status 1.

The issue is that if there's a file owned by non-root and we try to copy
it into a newly-created DOS partition, fchown fails:
  fchown(11</run/systemd/mount-root/...>, 1000, 1000) = -1 EPERM (Operation not permitted)
We want to ignore file ownership in such cases, so pass our own UID/GID
to copy_tree_at(), which turns the fchown into a noop and let's the
operation pass through.

Fixes #38863.

3 days agorepart: perform an early check for missing mkfs or fs contents
Zbigniew Jędrzejewski-Szmek [Wed, 27 May 2026 15:10:26 +0000 (17:10 +0200)] 
repart: perform an early check for missing mkfs or fs contents

I was running repart in a VM, and if failed because mkfs.vfat was
not available. But if fails quite late in the process, possibly wasting
quite a bit of work. So add a check that catches some obvious cases
where repart would fail.

The condition of whether we have the root directory is complex,
determined in part by partition_target_prepare(). I didn't think it
was worth it to recreate the full logic in the check, so in some cases
it'll not miss cases. But that's still better than having no check ;)

3 days agotest: fix short timeout in TEST-74-AUX-UTILS.busctl
Luca Boccassi [Wed, 3 Jun 2026 11:27:30 +0000 (12:27 +0100)] 
test: fix short timeout in TEST-74-AUX-UTILS.busctl

This was likely a typo as the other timeouts are '30' instead of '3'. This
test occasionally fails with sanitizers which make everything slow. Bump it
to 30s like other timeouts in the same test.

Follow-up for 985a6fa44b58c307030e43950ff2affa3f32546a

3 days agoUpdate hwdb
Luca Boccassi [Wed, 3 Jun 2026 08:54:17 +0000 (09:54 +0100)] 
Update hwdb

ninja -C build update-hwdb

3 days agolibfido2-util: remove superfluous asserts
nikstur [Tue, 2 Jun 2026 21:38:55 +0000 (23:38 +0200)] 
libfido2-util: remove superfluous asserts

These asserts don't make sense and actually break the FIDO2 support in
systemd-cryptsetup.

Follow-up for bd141bd818fcb2e35638f963b0680a1218776f5d

4 days agoAdd DLOPEN macros that stamp the caller's ELF and use it to ensure executables list...
Zbigniew Jędrzejewski-Szmek [Tue, 2 Jun 2026 16:05:34 +0000 (18:05 +0200)] 
Add DLOPEN macros that stamp the caller's ELF and use it to ensure executables list their dlopen dependencies (#42398)

Currently almost all the dlopens happen in libbasic or libshared code,
so the ELF dlopen notes all end up in libsystemd-shared. Many
distributions split this library and various binaries in separate
packages, and the library ends up with soft-dependencies, even though
many binaries are either completely useless or do not work at all with
the dlopen dependency. This also makes it impossible to know which
executable uses which dlopen dependency without inspecting the source
code.

If someone only wants to add the soft dependencies from libshared they
can just avoid parsing the executable binaries. By design the code in
libbasic/libshared still does the stamping too, at lower priorities, so
that libsystemd-shared will always list all the optional dependencies,
and if one wants to build a minimal system by default, they can just
parse libsystemd-shared dlopen notes, and ignore the individual
executables. But for many distribution the current setup is insufficient
and requires adding a ton of manual library dependencies, as many
executables become effectively broken or useless without the dlopen
dependencies installed (eg: resolved fails to start without libssl,
repart can do basically nothing without blkid, etc).

Add a new set of DLOPEN_<LIB> macros that wrap the dlopen_lib and also
pull in the ELF note voodoo, so that the callers get their ELF binaries
stamped too. Convert a bunch of callers to use the macro, and use
`required` dependencies for the callers that do not work without the
dlopen library being available.

The one caveat is that, in order to avoid duplicating the exact same
note in a binary due to multiple call sites, some `asm` voodoo is done
instead of the previous bare-C section-creating macro. The drawback of
this approach is that if `--gc-sections` is used to link the binary (as
we do), then binutils >= 2.36 is required for the `SHF_GNU_RETAIN` flag.
This effectively cuts off CentOS 9, so what I did here is adding an
override in meson to detect missing support, and drop `SHF_GNU_RETAIN`.
The build works, but on CentOS 9 there's no dlopen ELF notes anymore.
Given it's just that version, and it goes EOL next year, that seems ok
to me. The alternative is to drop the usage of `--gc-sections` on CentOS
9, or to accept duplicated notes everywhere, and both seem worse.

End result:

```
$ readelf --notes build/systemd-executor

Displaying notes found in: .note.gnu.property
  Owner                Data size  Description
  GNU                  0x00000010 NT_GNU_PROPERTY_TYPE_0
      Properties: x86 ISA needed: x86-64-baseline

Displaying notes found in: .note.gnu.build-id
  Owner                Data size  Description
  GNU                  0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
    Build ID: 8a0c3db54adb79ae54e1432255011aa4ab583742

Displaying notes found in: .note.ABI-tag
  Owner                Data size  Description
  GNU                  0x00000010 NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 3.2.0

Displaying notes found in: .note.dlopen
  Owner                Data size  Description
  FDO                  0x0000006b FDO_DLOPEN_METADATA
    Dlopen Metadata: [{"feature":"pam","description":"Support for LinuxPAM","priority":"recommended","soname":["libpam.so.0"]}]
  FDO                  0x0000007c FDO_DLOPEN_METADATA
    Dlopen Metadata: [{"feature":"seccomp","description":"Support for Seccomp Sandboxes","priority":"recommended","soname":["libseccomp.so.2"]}]
  FDO                  0x00000090 FDO_DLOPEN_METADATA
    Dlopen Metadata: [{"feature":"bpf","description":"Support firewalling and sandboxing with BPF","priority":"recommended","soname":["libbpf.so.1","libbpf.so.0"]}]
  FDO                  0x000000a0 FDO_DLOPEN_METADATA
    Dlopen Metadata: [{"feature":"cryptsetup","description":"Support for disk encryption, integrity, and authentication","priority":"recommended","soname":["libcryptsetup.so.12"]}]
  FDO                  0x00000078 FDO_DLOPEN_METADATA
    Dlopen Metadata: [{"feature":"mount","description":"Support for mount enumeration","priority":"recommended","soname":["libmount.so.1"]}]

$ readelf --notes build/systemd

Displaying notes found in: .note.gnu.property
  Owner                Data size  Description
  GNU                  0x00000010 NT_GNU_PROPERTY_TYPE_0
      Properties: x86 ISA needed: x86-64-baseline

Displaying notes found in: .note.gnu.build-id
  Owner                Data size  Description
  GNU                  0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
    Build ID: dcd4568842e32da3e71be27db3def51c6b459994

Displaying notes found in: .note.ABI-tag
  Owner                Data size  Description
  GNU                  0x00000010 NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 3.2.0

Displaying notes found in: .note.dlopen
  Owner                Data size  Description
  FDO                  0x00000075 FDO_DLOPEN_METADATA
    Dlopen Metadata: [{"feature":"mount","description":"Support for mount enumeration","priority":"required","soname":["libmount.so.1"]}]
  FDO                  0x00000072 FDO_DLOPEN_METADATA
    Dlopen Metadata: [{"feature":"selinux","description":"Support for SELinux","priority":"recommended","soname":["libselinux.so.1"]}]
```

4 days agoci: add build coverage for riscv64 (#42431)
Yu Watanabe [Tue, 2 Jun 2026 14:34:20 +0000 (23:34 +0900)] 
ci: add build coverage for riscv64 (#42431)

4 days agonetwork: fix ambiguous "without mode" wording in docs (#42428)
lzwind [Tue, 2 Jun 2026 14:27:45 +0000 (22:27 +0800)] 
network: fix ambiguous "without mode" wording in docs (#42428)

- In `systemd.network.xml`, replaced `"without mode"` with `"without static"`
to clarify that if an IPv6 address is specified without the explicit keyword
`static`, then `static` mode is assumed.
- The original wording was ambiguous because "mode" appears multiple
times in the surrounding context (referring to IPv6 link-local address
modes like `eui64`, `static`, etc.).

Fixes: #39754
4 days agoci: make the review orchestrator emit one complete StructuredOutput call
Daan De Meyer [Tue, 2 Jun 2026 13:45:19 +0000 (13:45 +0000)] 
ci: make the review orchestrator emit one complete StructuredOutput call

The orchestrator repeatedly emitted StructuredOutput with only a long
`summary` and no `comments`, which the schema rejects as missing a required
property; one run burned 12 retries (and a large share of its output tokens)
re-typing rejected summaries before it shrank the summary enough to include
`comments`. Instruct it to build `comments` first, always include `comments`
and `resolve` (even when empty) in a single call, and keep the summary concise
so the detailed prose lives in the comments rather than being duplicated.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
4 days agoci: review PRs through per-lens subagents with PR-specific lenses
Daan De Meyer [Tue, 2 Jun 2026 12:33:01 +0000 (12:33 +0000)] 
ci: review PRs through per-lens subagents with PR-specific lenses

Change the review fan-out from one subagent per commit to one subagent per
lens, each reviewing every commit through a single perspective. Four base
lenses (correctness/memory safety, lifetimes/concurrency, security, API/style)
always run; the orchestrator skims the diff and adds 1-3 PR-specific lenses
(e.g. a DNS protocol lens for resolved changes). A single generalist reviewer
tended to converge on one finding on large diffs; focused lenses dig deeper.

Commits are reviewed in chronological order via a commit-order.txt manifest,
since the SHA-named worktree dirs don't sort chronologically.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
4 days agoci: add build coverage for riscv64 42431/head
Luca Boccassi [Fri, 29 May 2026 17:17:25 +0000 (18:17 +0100)] 
ci: add build coverage for riscv64

This is already a primary architecture in Ubuntu, and more distributions
are adding support for it. It's too slow for emulation, but we can at
least verify that compilation works.

Use the arm worker, for two reasons:

- it is already set up with ports.ubuntu.com so we don't have to muck
  with apt sources manually
- it is used a lot less than the x86 worker

4 days agocore: avoid false maybe-uninitialized warning
Luca Boccassi [Fri, 29 May 2026 18:06:44 +0000 (19:06 +0100)] 
core: avoid false maybe-uninitialized warning

2026-05-29T18:00:43.7496388Z ../src/core/dynamic-user.c: In function ‘dynamic_user_realize’:
2026-05-29T18:00:43.7497098Z ../src/core/dynamic-user.c:436:29: error: ‘new_uid’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:00:43.7497758Z   436 |                         num = new_uid;
2026-05-29T18:00:43.7498026Z       |                         ~~~~^~~~~~~~~
2026-05-29T18:00:43.7498465Z ../src/core/dynamic-user.c:361:23: note: ‘new_uid’ was declared here
2026-05-29T18:00:43.7498802Z   361 |                 uid_t new_uid;
2026-05-29T18:00:43.7499039Z       |                       ^~~~~~~
2026-05-29T18:00:43.7499315Z In file included from ../src/core/dynamic-user.c:23:
2026-05-29T18:00:43.7499651Z In function ‘dynamic_user_push’,
2026-05-29T18:00:43.7500063Z     inlined from ‘dynamic_user_realize’ at ../src/core/dynamic-user.c:453:13:
2026-05-29T18:00:43.7501021Z ../src/basic/socket-util.h:131:63: error: ‘new_uid_lock_fd’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:00:43.7501897Z   131 | #define send_one_fd_iov(transport_fd, fd, iov, iovlen, flags) send_one_fd_iov_sa(transport_fd, fd, iov, iovlen, NULL, 0, flags)
2026-05-29T18:00:43.7502530Z       |                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-05-29T18:00:43.7503145Z ../src/core/dynamic-user.c:320:16: note: in expansion of macro ‘send_one_fd_iov’
2026-05-29T18:00:43.7503647Z   320 |         return send_one_fd_iov(d->storage_socket[1], lock_fd, &iov, 1, MSG_DONTWAIT);
2026-05-29T18:00:43.7504027Z       |                ^~~~~~~~~~~~~~~
2026-05-29T18:00:43.7504397Z ../src/core/dynamic-user.c: In function ‘dynamic_user_realize’:
2026-05-29T18:00:43.7504888Z ../src/core/dynamic-user.c:360:21: note: ‘new_uid_lock_fd’ was declared here
2026-05-29T18:00:43.7505256Z   360 |                 int new_uid_lock_fd;
2026-05-29T18:00:43.7505511Z       |                     ^~~~~~~~~~~~~~~
2026-05-29T18:00:43.7505882Z ../src/core/dynamic-user.c: In function ‘dynamic_user_current’:
2026-05-29T18:00:43.7506461Z ../src/core/dynamic-user.c:468:15: error: ‘uid’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:00:43.7506895Z   468 |         uid_t uid;
2026-05-29T18:00:43.7507096Z       |               ^~~

2026-05-29T18:26:14.2420944Z In function ‘dynamic_user_push’,
2026-05-29T18:26:14.2421730Z     inlined from ‘dynamic_user_realize’ at ../src/core/dynamic-user.c:453:13:
2026-05-29T18:26:14.2435240Z ../src/basic/socket-util.h:131:63: error: ‘new_uid_lock_fd’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:26:14.2440497Z   131 | #define send_one_fd_iov(transport_fd, fd, iov, iovlen, flags) send_one_fd_iov_sa(transport_fd, fd, iov, iovlen, NULL, 0, flags)
2026-05-29T18:26:14.2442511Z       |                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-05-29T18:26:14.2445002Z ../src/core/dynamic-user.c:320:16: note: in expansion of macro ‘send_one_fd_iov’
2026-05-29T18:26:14.2445727Z   320 |         return send_one_fd_iov(d->storage_socket[1], lock_fd, &iov, 1, MSG_DONTWAIT);
2026-05-29T18:26:14.2448345Z       |                ^~~~~~~~~~~~~~~
2026-05-29T18:26:14.2448952Z ../src/core/dynamic-user.c: In function ‘dynamic_user_realize’:
2026-05-29T18:26:14.2451781Z ../src/core/dynamic-user.c:360:21: note: ‘new_uid_lock_fd’ was declared here
2026-05-29T18:26:14.2452287Z   360 |                 int new_uid_lock_fd;
2026-05-29T18:26:14.2454430Z       |                     ^~~~~~~~~~~~~~~
2026-05-29T18:26:14.2454960Z ../src/core/dynamic-user.c: In function ‘dynamic_user_current’:
2026-05-29T18:26:14.2457632Z ../src/core/dynamic-user.c:468:15: error: ‘uid’ may be used uninitialized [-Werror=maybe-uninitialized]
2026-05-29T18:26:14.2458207Z   468 |         uid_t uid;
2026-05-29T18:26:14.2460327Z       |               ^~~

4 days agoci: update claude review workflow to opus 4.8
Daan De Meyer [Tue, 2 Jun 2026 11:51:05 +0000 (11:51 +0000)] 
ci: update claude review workflow to opus 4.8

Bump the Bedrock model ID to us.anthropic.claude-opus-4-8 (the -v1 suffix
was dropped after 4.6), pin ANTHROPIC_DEFAULT_OPUS_MODEL so the review
subagents resolve to 4.8 as well, and switch the effort level from max to
xhigh.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
4 days agoci: add build/unit-test coverage for armv7 (#42386)
Luca Boccassi [Tue, 2 Jun 2026 12:15:50 +0000 (13:15 +0100)] 
ci: add build/unit-test coverage for armv7 (#42386)

arm64 hosts support running armv7 (armhf) binaries, so we can
cross compile and run the unit tests without performance issues.

armv7 (armhf) is a primary architecture on Ubuntu, so build
regressions block new version updates, and adding coverage
helps to avoid introducing regressions.

4 days agoman: Document additional environment.d syntax
Max Chernoff [Tue, 2 Jun 2026 04:49:04 +0000 (22:49 -0600)] 
man: Document additional environment.d syntax

4 days agoresolved: process networkd events before RTNL updates
elysia090 [Mon, 1 Jun 2026 03:29:58 +0000 (12:29 +0900)] 
resolved: process networkd events before RTNL updates

resolved watches networkd state changes and RTNL updates separately. RTNL is
currently processed at SD_EVENT_PRIORITY_IMPORTANT, while networkd state
changes are processed later at SD_EVENT_PRIORITY_IMPORTANT+5.

If both are pending, an RTM_NEWADDR update can make a link relevant for
LLMNR/mDNS scope allocation before resolved has consumed the corresponding
networkd state update. This can let scope recalculation use stale per-link
settings until the networkd event is processed.

Run the networkd monitor source before RTNL by using
SD_EVENT_PRIORITY_IMPORTANT-5. This lets resolved consume current link settings
before reacting to RTNL address updates in the same event loop iteration.

Fixes #42079
Co-developed-by: OpenAI Codex <noreply@openai.com>
4 days agolibarchive-util: update comment for new library symbols
Yu Watanabe [Tue, 2 Jun 2026 05:58:06 +0000 (14:58 +0900)] 
libarchive-util: update comment for new library symbols

archive_entry_gid_is_set() and archive_entry_uid_is_set() are added by
https://github.com/libarchive/libarchive/commit/8acb738db6bc7087a5e7cdd328bbfb6e673e5bd8 (3.7.3).

archive_entry_hardlink_is_set() is added by
https://github.com/libarchive/libarchive/commit/07206cd172c73cbe3b6b3d64e00f427fa0befa54 (3.7.5).

4 days agobuild(deps): bump the actions group with 3 updates
dependabot[bot] [Tue, 2 Jun 2026 04:43:56 +0000 (04:43 +0000)] 
build(deps): bump the actions group with 3 updates

Bumps the actions group with 3 updates: [github/codeql-action](https://github.com/github/codeql-action), [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) and [redhat-plumbers-in-action/gather-pull-request-metadata](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata).

Updates `github/codeql-action` from 4.35.4 to 4.36.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/68bde559dea0fdcac2102bfdf6230c5f70eb485e...7211b7c8077ea37d8641b6271f6a365a22a5fbfa)

Updates `aws-actions/configure-aws-credentials` from 6.1.1 to 6.1.2
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/d979d5b3a71173a29b74b5b88418bfda9437d885...acca2b1b2070338fb9fd1ca27ecee81d687e58e5)

Updates `redhat-plumbers-in-action/gather-pull-request-metadata` from 1.9.1 to 1.10.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/62fc85c7acd15db62a0bdf007c8dbeda86eaf3b6...ecc2e46fe4f0b2e9a7b236d6012bc9f74af318d0)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: 6.1.2
  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.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
4 days agoEmit a hint when called with the legacy telinit syntax (#42404)
Yu Watanabe [Tue, 2 Jun 2026 02:02:09 +0000 (11:02 +0900)] 
Emit a hint when called with the legacy telinit syntax (#42404)

5 days agovmspawn: enforce minimum uptime with --console=gui 42396/head
Luca Boccassi [Mon, 1 Jun 2026 17:44:52 +0000 (18:44 +0100)] 
vmspawn: enforce minimum uptime with --console=gui

When using --console=gui the QEMU window closes immediately when the VM
has stopped, so any console output at shutdown is lost, which makes
debugging difficult. Ensure the VM stays booted for a minimum of 15s.

5 days agotree-wide: convert dlopen_*() callers to DLOPEN_* wrapper macros 42398/head
Luca Boccassi [Sat, 30 May 2026 21:51:59 +0000 (22:51 +0100)] 
tree-wide: convert dlopen_*() callers to DLOPEN_* wrapper macros

Switch the executable-owned call sites from the plain dlopen_<lib>()
helpers to the new DLOPEN_<LIB>() macros, so that each binary that loads
an optional library at runtime now carries its own .note.dlopen note
instead of relying solely on libsystemd-shared. Each call site passes a
priority reflecting whether it hard-depends on the library (required) or
degrades gracefully without it (recommended).

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
5 days agoshutdown: do not delay VM shutdown
Luca Boccassi [Sat, 30 May 2026 18:40:51 +0000 (19:40 +0100)] 
shutdown: do not delay VM shutdown

Since this was introduced I constantly find myself waiting for VMs to
shut down at the end of a test. This not only happens with mkosi integration
tests, but with other VM-based tests like for example autopkgtest. In this
example, this dracut test suite runtime is tripled due to the artificial delay:

[    5.813234] systemd-shutdown[1]: Syncing filesystems and block devices.
[    5.814635] systemd-shutdown[1]: Delaying shutdown for 9s, in order to reach minimum uptime of 15s.
[    8.816855] systemd-shutdown[1]: Delaying shutdown for 6s, in order to reach minimum uptime of 15s.
[   11.819747] systemd-shutdown[1]: Delaying shutdown for 3s, in order to reach minimum uptime of 15s.
[   14.822660] systemd-shutdown[1]: Delaying shutdown for 601ms, in order to reach minimum uptime of 15s.
[   15.427777] systemd-shutdown[1]: Powering off.
[   15.429681] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[   15.433620] ACPI: PM: Preparing to enter system sleep state S5
[   15.435148] reboot: Power down
TEST: root filesystem on a ext4 filesystem with systemd and extensions   [OK]
autopkgtest [19:39:12]: test 46-systemd-sysext: -----------------------]
autopkgtest [19:39:13]: test 46-systemd-sysext:  - - - - - - - - - - results - - - - - - - - - -
46-systemd-sysext    PASS

Contrary to what the comment claimed, the scrollback of a VM is _not_
cleared, EDK2 just prints many pages, and one can just scroll up (a lot).

Do not delay by default on VMs. Move the check so that in both containers
and VMs users can override and force a delay with the env var.

Follow-up for 0874eea302d0ba2d436dcce0b992cdc957190ff4

5 days agoshared: add DLOPEN_* wrapper macros that stamp .note.dlopen on callers
Luca Boccassi [Sat, 30 May 2026 21:51:17 +0000 (22:51 +0100)] 
shared: add DLOPEN_* wrapper macros that stamp .note.dlopen on callers

This macro emits an SD_ELF_NOTE_DLOPEN note so that calling sites,
and not just libsystemd-shared, get the ELF stamped with the notes
documenting the dependency. Currently most of the dlopen notes end
up in libsystemd-shared, and executables have no way to document
the optional dependencies they need. With this new macro, this
issue can be fixed.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
5 days agosd-dlopen: deduplicate identical .note.dlopen notes
Luca Boccassi [Sat, 30 May 2026 21:50:20 +0000 (22:50 +0100)] 
sd-dlopen: deduplicate identical .note.dlopen notes

If the SD_ELF_NOTE_DLOPEN macro gets used twice in the same binary,
with identical content, it will add two identical notes, which is
wasteful and confusing.

Emit each note into a COMDAT group keyed on its JSON payload, with an
assembler .ifndef guard, so byte-identical notes fold to a single copy
within a translation unit (assembler) and across translation units
(linker). The section is marked SHF_GNU_RETAIN so --gc-sections keeps it,
and uses the portable "%note" section type so it also assembles on
architectures where "@" is the comment character (e.g. 32-bit ARM).

This ensures SD_ELF_NOTE_DLOPEN can be used as many times as needed,
and the result will be automatically deduplicated.

The SHF_GNU_RETAIN (R) flag requires binutils >= 2.36, which cuts
off CentOS 9. To avoid breaking builds, override the flags passed
to the linker to skip that flag. This unfortunately means in many
cases the ELF notes section will be dropped by the linker due to
--gc-sections. For CentOS 9 builds, the choice is thus between
not using --gc-sections and losing dlopen ELF notes, and the latter
is made here given it's less impactful.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
5 days agosystemd-tmpfiles: remove age-based cleanup of X11 socket directories (#42358)
Luca Boccassi [Mon, 1 Jun 2026 16:38:28 +0000 (17:38 +0100)] 
systemd-tmpfiles: remove age-based cleanup of X11 socket directories (#42358)

Unexpected cleanup of live X11 socket files was reported in #35182,
suggesting an underlying issue with the `!` boot safety switch for
tmpfiles.

Regardless of that bug, time-based cleanup of X11 sockets is likely to
be unwanted behaviour as systems often stay up for extended periods of
time, and cleanup of these directories based on age alone is liable to
cause issues at runtime for user sessions.

5 days agonspawn: parse PrivateUsers=managed in settings
George Tsiamasiotis [Mon, 1 Jun 2026 10:02:32 +0000 (13:02 +0300)] 
nspawn: parse PrivateUsers=managed in settings

5 days agopo: Translated using Weblate (Romanian)
Petru Rebeja [Mon, 1 Jun 2026 12:21:21 +0000 (12:21 +0000)] 
po: Translated using Weblate (Romanian)

Currently translated at 70.1% (200 of 285 strings)

po: Translated using Weblate (Romanian)

Currently translated at 64.9% (185 of 285 strings)

Co-authored-by: Petru Rebeja <petru@rebeja.eu>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ro/
Translation: systemd/main

5 days agodocs: say that the github form is preferred for security vulnerabilities
Zbigniew Jędrzejewski-Szmek [Mon, 1 Jun 2026 12:20:47 +0000 (14:20 +0200)] 
docs: say that the github form is preferred for security vulnerabilities

5 days agoupdate TODO
Lennart Poettering [Mon, 1 Jun 2026 12:19:33 +0000 (14:19 +0200)] 
update TODO

5 days agohostname-util: don't allow machine tags to begin/end with '-' or '.'
Lennart Poettering [Mon, 1 Jun 2026 08:35:31 +0000 (10:35 +0200)] 
hostname-util: don't allow machine tags to begin/end with '-' or '.'

5 days agoTranslations update from Fedora Weblate (#42417)
Luca Boccassi [Mon, 1 Jun 2026 11:15:52 +0000 (12:15 +0100)] 
Translations update from Fedora Weblate (#42417)

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)

5 days agohwdb: Add Native Instruments Traktor MX2
djantti [Sat, 30 May 2026 12:17:10 +0000 (15:17 +0300)] 
hwdb: Add Native Instruments Traktor MX2

This adds the following device to AV production hwdb:

 - ID 17cc:2420 Native Instruments Traktor MX2

Support for this new HID-based DJ controller was also recently
merged to Mixxx.

5 days agopo: Translated using Weblate (Turkish) 42417/head
Oğuz Ersen [Mon, 1 Jun 2026 10:40:14 +0000 (10:40 +0000)] 
po: Translated using Weblate (Turkish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/tr/
Translation: systemd/main

5 days agopo: Translated using Weblate (Georgian)
Temuri Doghonadze [Mon, 1 Jun 2026 10:40:14 +0000 (10:40 +0000)] 
po: Translated using Weblate (Georgian)

Currently translated at 100.0% (285 of 285 strings)

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

5 days agopo: Translated using Weblate (Russian)
Andrei Stepanov [Mon, 1 Jun 2026 10:40:13 +0000 (10:40 +0000)] 
po: Translated using Weblate (Russian)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Andrei Stepanov <adem4ik@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ru/
Translation: systemd/main

5 days agopo: Translated using Weblate (Ukrainian)
Yuri Chornoivan [Mon, 1 Jun 2026 10:40:13 +0000 (10:40 +0000)] 
po: Translated using Weblate (Ukrainian)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Yuri Chornoivan <yurchor@ukr.net>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/uk/
Translation: systemd/main

5 days agopo: Translated using Weblate (Chinese (Simplified) (zh_CN))
Poesty Li [Mon, 1 Jun 2026 10:40:12 +0000 (10:40 +0000)] 
po: Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Poesty Li <poesty7450@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/zh_CN/
Translation: systemd/main

5 days agoman: drop -b/s/S/2/4 from the docs 42404/head
Zbigniew Jędrzejewski-Szmek [Mon, 1 Jun 2026 10:21:12 +0000 (12:21 +0200)] 
man: drop -b/s/S/2/4 from the docs

We retain 1/3/5.

5 days agomanager: if called with compat telinit interface, tell users to update
Zbigniew Jędrzejewski-Szmek [Sun, 31 May 2026 10:29:01 +0000 (12:29 +0200)] 
manager: if called with compat telinit interface, tell users to update

In https://bugzilla.redhat.com/show_bug.cgi?id=2479961 a user
reported that they are confused that 'init 6' and such commands
do not work anymore. We removed support for the whole interface,
but it's likely that such commands persist in various scripts
and finger memories. Let's give a helpful hint that this inteface
is gone and what to use instead.

5 days agoman/systemd: reword description of 2/3/4/5
Zbigniew Jędrzejewski-Szmek [Sat, 30 May 2026 19:44:58 +0000 (21:44 +0200)] 
man/systemd: reword description of 2/3/4/5

We shouldn't say that that they boot into "a … legacy target", because
they boot into the standard targets. Those names are just aliases now.
(And also the user is not required to know what SysV even is, so it
shouldn't be used in the main explanation.)

5 days agodocs: specifically mention that braces in if blocks do not need to be symmetric
Luca Boccassi [Mon, 1 Jun 2026 09:09:43 +0000 (10:09 +0100)] 
docs: specifically mention that braces in if blocks do not need to be symmetric

The claude bot keeps getting this wrong again and again:

  Claude: nit: systemd coding style requires braces on both branches of
               an if/else when one branch uses them. Here the if branch
               is a single statement without braces but the else branch
               uses braces

Specifically mention this is not the case in the coding style doc
to hopefully make it stop hallucinating this rule

5 days agotest: make TEST-60-MOUNT-RATELIMIT more robust
Luca Boccassi [Sun, 31 May 2026 16:38:40 +0000 (17:38 +0100)] 
test: make TEST-60-MOUNT-RATELIMIT more robust

TEST-60-MOUNT-RATELIMIT sometimes fails as it cannot see the 'left rate limit'
message in the journal. Tests relying on specific log messages are often flaky,
as the journal is lossy.
Change the test case to check for the desired outcome instead, as that also
catches regressions, without being over reliant on the journal.

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

5 days agojournalctl: don't assert on MESSAGE field without "MESSAGE=" prefix
Luca Boccassi [Sun, 31 May 2026 11:44:14 +0000 (12:44 +0100)] 
journalctl: don't assert on MESSAGE field without "MESSAGE=" prefix

sd_journal_get_data() can return a MESSAGE data object whose payload does
not start with "MESSAGE=", e.g. when the journal file is corrupted. Instead
of aborting the whole process, log and skip over such an entry like we do for
other bad/missing fields.

[   87.287390] post.sh[1619]: + journalctl -q -o short-monotonic --grep 'didn'\''t pass validation'
[   87.287844] post.sh[1620]: + grep -v test-varlink-idl
[   87.325676] post.sh[1619]: Assertion 'message = startswith(message, "MESSAGE=")' failed at src/journal/journalctl-show.c:261, function show(). Aborting.

 #0  0x00007fb47b49a29c n/a (libc.so.6 + 0x9a29c)
 #1  0x00007fb47b43e7d0 raise (libc.so.6 + 0x3e7d0)
 #2  0x00007fb47b425681 abort (libc.so.6 + 0x25681)
 #3  0x00007fb47b8a1ace log_assert_failed (libsystemd-shared-261~rc2.so + 0xa1ace)
 #4  0x000055f8e1ef9ddb show (journalctl + 0xcddb)
 #5  0x000055f8e1efa6ee action_show (journalctl + 0xd6ee)
 #6  0x000055f8e1ef3c20 run (journalctl + 0x6c20)
 #7  0x00007fb47b427741 n/a (libc.so.6 + 0x27741)
 #8  0x00007fb47b427879 __libc_start_main (libc.so.6 + 0x27879)
 #9  0x000055f8e1ef4915 _start (journalctl + 0x7915)

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
6 days agoTranslations update from Fedora Weblate (#42403)
Luca Boccassi [Sun, 31 May 2026 10:55:15 +0000 (11:55 +0100)] 
Translations update from Fedora Weblate (#42403)

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)

6 days agopo: Translated using Weblate (Spanish) 42403/head
Fco. Javier F. Serrador [Sun, 31 May 2026 10:01:59 +0000 (10:01 +0000)] 
po: Translated using Weblate (Spanish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Fco. Javier F. Serrador <fserrador@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/es/
Translation: systemd/main

6 days agopo: Translated using Weblate (Arabic)
joo es [Sun, 31 May 2026 10:01:58 +0000 (10:01 +0000)] 
po: Translated using Weblate (Arabic)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: joo es <jonnyse@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ar/
Translation: systemd/main

6 days agopo: Translated using Weblate (Portuguese (Brazil))
Rafael Fontenelle [Sun, 31 May 2026 10:01:58 +0000 (10:01 +0000)] 
po: Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pt_BR/
Translation: systemd/main

6 days agopo: Translated using Weblate (Swedish)
Anders Jonsson [Sun, 31 May 2026 10:01:57 +0000 (10:01 +0000)] 
po: Translated using Weblate (Swedish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Anders Jonsson <anders.jonsson@norsjovallen.se>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sv/
Translation: systemd/main

6 days agopo: Translated using Weblate (Swedish)
Luna Jernberg [Sun, 31 May 2026 10:01:56 +0000 (10:01 +0000)] 
po: Translated using Weblate (Swedish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sv/
Translation: systemd/main

6 days agopo: Translated using Weblate (German)
Ettore Atalan [Sun, 31 May 2026 10:01:55 +0000 (10:01 +0000)] 
po: Translated using Weblate (German)

Currently translated at 99.2% (283 of 285 strings)

Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/de/
Translation: systemd/main

6 days agopo: Translated using Weblate (Polish)
Marek Adamski [Sun, 31 May 2026 10:01:54 +0000 (10:01 +0000)] 
po: Translated using Weblate (Polish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Marek Adamski <maradam@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pl/
Translation: systemd/main

6 days agopo: Translated using Weblate (Korean)
김인수 [Sun, 31 May 2026 10:01:53 +0000 (10:01 +0000)] 
po: Translated using Weblate (Korean)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: 김인수 <simmon@nplob.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ko/
Translation: systemd/main

6 days agopo: Translated using Weblate (Ukrainian)
Yuri Chornoivan [Sun, 31 May 2026 10:01:53 +0000 (10:01 +0000)] 
po: Translated using Weblate (Ukrainian)

Currently translated at 97.1% (277 of 285 strings)

Co-authored-by: Yuri Chornoivan <yurchor@ukr.net>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/uk/
Translation: systemd/main