]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 months agosysusers: always initialize ret_xyz when write_temporary_xyz() succeed 37799/head
Yu Watanabe [Tue, 10 Jun 2025 03:41:59 +0000 (12:41 +0900)] 
sysusers: always initialize ret_xyz when write_temporary_xyz() succeed

No functional change. Just for following our coding style.

4 months agodirent-util: follow our coding style
Yu Watanabe [Tue, 10 Jun 2025 03:56:15 +0000 (12:56 +0900)] 
dirent-util: follow our coding style

4 months agopo: Translated using Weblate (Portuguese)
Américo Monteiro [Mon, 9 Jun 2025 18:29:27 +0000 (18:29 +0000)] 
po: Translated using Weblate (Portuguese)

Currently translated at 100.0% (257 of 257 strings)

Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pt/
Translation: systemd/main

4 months agosocket: downgrade not-supported logging for SO_PASSSEC
Luca Boccassi [Mon, 9 Jun 2025 16:24:24 +0000 (17:24 +0100)] 
socket: downgrade not-supported logging for SO_PASSSEC

Kernel 6.16 started returning EOPNOTSUPP when a required kconfig
is disabled. Downgrade to debug level in that case.

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

4 months agomeson: drop -Wno-typedef-redefinition for clang
Zbigniew Jędrzejewski-Szmek [Mon, 9 Jun 2025 15:14:17 +0000 (17:14 +0200)] 
meson: drop -Wno-typedef-redefinition for clang

It was added in 1a40a3393e904fe4683f6d2b2450cfbd94a34000 for autotools,
sadly with no explanation, and forward-ported to meson in
5c23128daba7236a6080383b2a5649033cfef85c. Things seems to work fine without
it now so drop it.

Tested with clang-20.1.5-1.fc43.x86_64.

4 months agobasic/forward: replace tab with space
Mike Yuan [Mon, 9 Jun 2025 18:38:20 +0000 (20:38 +0200)] 
basic/forward: replace tab with space

4 months agopo: Translated using Weblate (Portuguese)
Américo Monteiro [Mon, 9 Jun 2025 18:02:38 +0000 (18:02 +0000)] 
po: Translated using Weblate (Portuguese)

Currently translated at 91.8% (236 of 257 strings)

Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pt/
Translation: systemd/main

4 months agoSeveral follow-ups for recent header cleanups (#37785)
Yu Watanabe [Mon, 9 Jun 2025 16:01:05 +0000 (01:01 +0900)] 
Several follow-ups for recent header cleanups (#37785)

4 months agomeson: update generating lists
Yu Watanabe [Sat, 7 Jun 2025 19:19:46 +0000 (04:19 +0900)] 
meson: update generating lists

- config.h is not necessary when generating lists, hence drop it.
- linux/audit.h and libaudit.h are included by missing_audit.h,
  hence not necessary to include them explicitly.

4 months agoptyfwd: use hostname argument in pty_forward_set_window_title() if set
Antonio Alvarez Feijoo [Mon, 9 Jun 2025 12:28:31 +0000 (14:28 +0200)] 
ptyfwd: use hostname argument in pty_forward_set_window_title() if set

Fixes 23f9ff472409d5f1cd0f74c47fa6f86e9df44828

4 months agoinclude: net/if.h requires features.h 37785/head
Yu Watanabe [Mon, 9 Jun 2025 04:59:39 +0000 (13:59 +0900)] 
include: net/if.h requires features.h

The header uses __THROW, which is defined in features.h, to make the
header self-consistent.
Note, src/basic/include/sys/mount.h also uses __THROW, and includes
features.h.

4 months agojournal: use poll.h rather than sys/poll.h
Yu Watanabe [Mon, 9 Jun 2025 00:43:52 +0000 (09:43 +0900)] 
journal: use poll.h rather than sys/poll.h

This does not change anything, as poll.h is a one-line wrapper of sys/poll.h.
Note that man pages e.g. poll(2) indicate to include poll.h rather than sys/poll.h.
So, let's use poll.h.

4 months agoselinux-setup.c: drop redundant inclusion of selinux/selinux.h
Yu Watanabe [Sun, 8 Jun 2025 20:42:22 +0000 (05:42 +0900)] 
selinux-setup.c: drop redundant inclusion of selinux/selinux.h

The header is anyway included by selinux-util.h in below.

4 months agotree-wide: drop unnecessary inclusion of sys/quota.h
Yu Watanabe [Sun, 8 Jun 2025 20:52:17 +0000 (05:52 +0900)] 
tree-wide: drop unnecessary inclusion of sys/quota.h

As it is included by quota-util.h anyway.

4 months agoutmp-wtmp: replace _PATH_WTMPX -> WTMPX_FILE
Yu Watanabe [Sun, 8 Jun 2025 20:11:01 +0000 (05:11 +0900)] 
utmp-wtmp: replace _PATH_WTMPX -> WTMPX_FILE

_PATH_WTMPX is a kind of internal definition in glibc, and
WTMPX_FILE should be an exposed definition. Both are same,
let's use WTMPX_FILE.
Note, for utmp, we use UTMPX_FILE, rather than _PATH_UTMPX.
Let's use consistent macros.

4 months agoforward: also include paths.h
Yu Watanabe [Sun, 8 Jun 2025 23:33:36 +0000 (08:33 +0900)] 
forward: also include paths.h

It provides several important constants, especially _PATH_BSHELL, which
is used in PID1, executor, and run. The header has been included
indirectly through e.g. libmount.h, mntent.h, utmpx.h, and so on.
Let's explicitly include it in forward.h, as libmount.h and friends that
includes paths.h are irrelevant to _PATH_BSHELL, and we may easily fail
to build when code is touched.
The header is not heavy, hence should not hurt anything.

4 months agocryptsetup-util: move definition of crypt_token_max()
Yu Watanabe [Sun, 8 Jun 2025 00:55:08 +0000 (09:55 +0900)] 
cryptsetup-util: move definition of crypt_token_max()

As it uses streq(), but string-util.h is not included in the header.

4 months agolibcrypt-util: include random-util.h
Yu Watanabe [Sun, 8 Jun 2025 01:04:45 +0000 (10:04 +0900)] 
libcrypt-util: include random-util.h

Necessary for crypto_random_bytes(), which is used in the branch that
HAVE_CRYPT_GENSALT_RA is false. Unfortunately, our CIs tested only the
other branch.

4 months agomeson: fix doubled # before include
Yu Watanabe [Mon, 9 Jun 2025 02:22:05 +0000 (11:22 +0900)] 
meson: fix doubled # before include

Follow-up for b5337d1d524545e9938391e871f39cccc1d1fc14.

4 months agotest: do not fail when lacking privs to create sysfs directory
Luca Boccassi [Sun, 8 Jun 2025 11:21:58 +0000 (12:21 +0100)] 
test: do not fail when lacking privs to create sysfs directory

4109s /* test_mdio_bus */
4109s src/libsystemd/sd-device/test-sd-device.c:55: Assertion failed: Expected "mkdir_p(syspath, 0755)" to succeed, but got error: Permission denied
4109s (mdio_bus) terminated by signal ABRT.
4109s src/libsystemd/sd-device/test-sd-device.c:37: Assertion failed: Expected "r = safe_fork("(mdio_bus)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_REOPEN_LOG|FORK_LOG|FORK_WAIT|FORK_NEW_MOUNTNS|FORK_MOUNTNS_SLAVE, NULL)" to succeed, but got error: Protocol error

Follow-up for 687a92a1b6a62b705acbb9065bb60fc6e84c9c20

5 months agoforward: Drop socklen_t forward declaration
Daan De Meyer [Sat, 7 Jun 2025 17:23:45 +0000 (19:23 +0200)] 
forward: Drop socklen_t forward declaration

This is glibc specific and doesn't exist on musl, since removing only
means adding one more include in selinux-util.h, let's drop it.

Fixes #37779

5 months agonspawn: do basic port to PidRef
Lennart Poettering [Fri, 23 May 2025 15:22:40 +0000 (17:22 +0200)] 
nspawn: do basic port to PidRef

THis is sometimes a bit superficial, but in many cases allows us to use
pidfd for various of our operations.

5 months agomachined: open up machine registration for unpriv clients also via D-Bus
Lennart Poettering [Fri, 23 May 2025 12:09:55 +0000 (14:09 +0200)] 
machined: open up machine registration for unpriv clients also via D-Bus

This is already opened up via Varlink. Let's also open it up via D-Bus
with the same polikit operation.

5 months agomachined: properly open up all missing method calls via D-Bus to unpriv clients
Lennart Poettering [Fri, 23 May 2025 12:10:50 +0000 (14:10 +0200)] 
machined: properly open up all missing method calls via D-Bus to unpriv clients

These method calls all already have polkit hookup, hence actually allow
them to go through on all levels.

This is mostly playing catchup with a variety of calls added over the
years.

5 months agocoredump: fix 0-passed-as-pointer warning
Zbigniew Jędrzejewski-Szmek [Fri, 6 Jun 2025 15:03:46 +0000 (17:03 +0200)] 
coredump: fix 0-passed-as-pointer warning

5 months agonspawn: start polkit agent while we do polkit operations
Lennart Poettering [Fri, 23 May 2025 10:17:47 +0000 (12:17 +0200)] 
nspawn: start polkit agent while we do polkit operations

Let's make sure unpriv nspawn can acquire privs even when invoked
outside of a desktop environment that has a polkit agent registered.

5 months agotest: extend timeout and enable generating debugging logs
Yu Watanabe [Fri, 6 Jun 2025 15:09:37 +0000 (00:09 +0900)] 
test: extend timeout and enable generating debugging logs

Not sure why the test failed, but maybe the test environment is too
slow? Even this does not fix the failure, by enabling debugging logs,
this hopefully provides more useful information for debugging.

For issue #37685.

5 months agorun: ignore bus connection error in acquiring invocation ID (#37763)
Yu Watanabe [Fri, 6 Jun 2025 16:55:21 +0000 (01:55 +0900)] 
run: ignore bus connection error in acquiring invocation ID (#37763)

This introduce bus_error_is_connection(), and use it where applicable.
Then, this makes connection errors in acquiring invocation ID by
systemd-run handled gracefully, like we already do other places.

Fixes #37675.

5 months agotree-wide: allow building with -Wgnu-variable-sized-type-not-at-end option for clang...
Yu Watanabe [Fri, 6 Jun 2025 16:02:38 +0000 (01:02 +0900)] 
tree-wide: allow building with -Wgnu-variable-sized-type-not-at-end option for clang (#37499)

Follow-up for #36993.
Closes #37497.

5 months agorun: ignore bus connection error in acquiring invocation ID 37763/head
Yu Watanabe [Fri, 6 Jun 2025 10:50:34 +0000 (19:50 +0900)] 
run: ignore bus connection error in acquiring invocation ID

Similar to 2b983b43c6e4a0dc9d58671eaf2f508a8ce8e3b9, but for acquiring
invocation ID.

Fixes #37675.

5 months agosd-device: replace '!' with '/' before calling sd_device_new_from_subsystem_sysname()
Yu Watanabe [Fri, 6 Jun 2025 12:14:20 +0000 (21:14 +0900)] 
sd-device: replace '!' with '/' before calling sd_device_new_from_subsystem_sysname()

Device ID uses device directory name as is, hence may contain '!', but
sd_device_new_from_subsystem_sysname() expects that the input is sysname.
So, we need to replace '!' with '/'.

Follow-up for 1393c5a2a42d6ff16afcdc3ac39f007921b9cb57.
Fixes #37711.

5 months agocodeql: taint basename()
Lennart Poettering [Fri, 6 Jun 2025 13:56:46 +0000 (15:56 +0200)] 
codeql: taint basename()

5 months agorepart: fix CopyBlocks=auto for verity-sig partitions, even harder (#37704)
Lennart Poettering [Fri, 6 Jun 2025 14:06:26 +0000 (16:06 +0200)] 
repart: fix CopyBlocks=auto for verity-sig partitions, even harder (#37704)

@DaanDeMeyer, this is for you.

Seems to work great here to duplicate ParticleOS onto another disk.

5 months agotree-wide: basename -> path_extract_filename (#34906)
Lennart Poettering [Fri, 6 Jun 2025 13:53:28 +0000 (15:53 +0200)] 
tree-wide: basename -> path_extract_filename (#34906)

5 months agotree-wide: introduce bus_error_is_connection() and use it where applicable
Yu Watanabe [Fri, 6 Jun 2025 12:42:01 +0000 (21:42 +0900)] 
tree-wide: introduce bus_error_is_connection() and use it where applicable

5 months agorepart: use partition_designator_is_verity_sig() + partition_designator_is_verity... 37704/head
Lennart Poettering [Fri, 6 Jun 2025 10:30:41 +0000 (12:30 +0200)] 
repart: use partition_designator_is_verity_sig() + partition_designator_is_verity() more

5 months agorepart: try harder to find verity-sig partitions for CopyBlocks=auto
Lennart Poettering [Mon, 2 Jun 2025 17:27:33 +0000 (19:27 +0200)] 
repart: try harder to find verity-sig partitions for CopyBlocks=auto

verity-sig partitions are not kernel concepts, hence dm-verity won't
link them for us from the slaves/ subdir in sysfs. Hence let's instead
look up the partition via udev's database.

Hence: when we search for the data+verity+verity-sig partitions then
search for the first two as usual, but search for the latter by looking
up the udev props on the first two, and then following the paths
provided therein.

Fixes: #34835
5 months agoudev: add udev properties that point to verity/verity sig metadata partitions from...
Lennart Poettering [Mon, 2 Jun 2025 16:31:40 +0000 (18:31 +0200)] 
udev: add udev properties that point to verity/verity sig metadata partitions from data partitions

This extends the dissect_image builtin to actually add device node
references to the device nodes where the associated data is placed, if
we can find it.

This is kept very generic, and independent from the roothash properties
and suchlike, since it makes sense to make it possible to set these
properties also independently of the dissect-image builtin.

The device path is a /dev/disk/by-diskseq/ symlink, so that we have
stable reference that are not subject to dev_t reuses.

5 months agogpt: add partition_designator_is_verity() helper
Lennart Poettering [Fri, 6 Jun 2025 10:20:13 +0000 (12:20 +0200)] 
gpt: add partition_designator_is_verity() helper

And rework partition_designator_is_verity_sig() to be based on
partition_verity_sig_to_data(), so that we don't have to maintain two
lists of verity sig partition types.

5 months agosd-lldp-rx: add VLAN ID parsing (#37725)
Yu Watanabe [Fri, 6 Jun 2025 10:12:48 +0000 (19:12 +0900)] 
sd-lldp-rx: add VLAN ID parsing (#37725)

While the `port_vlan_id` field was already present in the
`sd_lldp_neighbor`, it wasn't currently parsed from the LLDP packet.
Added support for that as well as a small parsing test.

Closes #28354.

5 months agoTODO: drop completed entry 34906/head
Yu Watanabe [Fri, 6 Jun 2025 10:09:49 +0000 (19:09 +0900)] 
TODO: drop completed entry

5 months agosystemctl: replace basename() with path_extract_filename()
Yu Watanabe [Fri, 6 Jun 2025 10:00:15 +0000 (19:00 +0900)] 
systemctl: replace basename() with path_extract_filename()

5 months agodelta: rework how enumerate files
Yu Watanabe [Fri, 6 Jun 2025 09:53:16 +0000 (18:53 +0900)] 
delta: rework how enumerate files

5 months agotree-wide: basename -> path_extract_filename
A. Wilcox [Sat, 7 Sep 2024 04:03:06 +0000 (23:03 -0500)] 
tree-wide: basename -> path_extract_filename

5 months agoupdate TODO
Lennart Poettering [Fri, 6 Jun 2025 10:03:11 +0000 (12:03 +0200)] 
update TODO

5 months agogenerator: improve scope check (#37761)
Lennart Poettering [Fri, 6 Jun 2025 10:02:25 +0000 (12:02 +0200)] 
generator: improve scope check (#37761)

Fixes: #35723
5 months agonetwork: test-lldp-rx: set more variable as static const 37725/head
Lorenzo Arena [Thu, 5 Jun 2025 06:57:54 +0000 (08:57 +0200)] 
network: test-lldp-rx: set more variable as static const

5 months agosd-lldp-rx: add VLAN ID parsing
Lorenzo Arena [Wed, 4 Jun 2025 11:21:21 +0000 (13:21 +0200)] 
sd-lldp-rx: add VLAN ID parsing

Closes #28354.

5 months agogenerator: check $SYSTEMD_SCOPE rather than cgroup membership 37761/head
Lennart Poettering [Fri, 6 Jun 2025 06:59:31 +0000 (08:59 +0200)] 
generator: check $SYSTEMD_SCOPE rather than cgroup membership

This is more explicit and ensures that even in testing environments we
operate the same way.

As side effect it also avoids the mess around SELinux blocking access to
cgroupfs.

Fixes: #35723
5 months agocore: break lines in some overly long function calls
Lennart Poettering [Fri, 6 Jun 2025 06:59:19 +0000 (08:59 +0200)] 
core: break lines in some overly long function calls

5 months agoconf-files: use proper enum for flags parameters
Lennart Poettering [Fri, 6 Jun 2025 06:33:31 +0000 (08:33 +0200)] 
conf-files: use proper enum for flags parameters

5 months agojournal: concurrent update fixes (#37757)
Lennart Poettering [Fri, 6 Jun 2025 06:24:16 +0000 (08:24 +0200)] 
journal: concurrent update fixes (#37757)

Fixes: #35229 #32436
5 months agocore: adding CGroup for io.systemd.Unit.List (second PR) (#37646)
Yu Watanabe [Thu, 5 Jun 2025 21:07:35 +0000 (06:07 +0900)] 
core: adding CGroup for io.systemd.Unit.List (second PR) (#37646)

This PR adds CGroup context/runtime for io.systemd.Unit.List method.

This is follow up for https://github.com/systemd/systemd/pull/37432.

5 months agoBugprone argument comment 10 (#37755)
Yu Watanabe [Thu, 5 Jun 2025 21:07:05 +0000 (06:07 +0900)] 
Bugprone argument comment 10 (#37755)

Follow up from https://github.com/systemd/systemd/pull/37712

5 months agojournal: replace a bunch of assert() with friendlier checks 37757/head
Lennart Poettering [Thu, 5 Jun 2025 20:26:03 +0000 (22:26 +0200)] 
journal: replace a bunch of assert() with friendlier checks

We should not rely that data stored in the journal files remains
entirely untouched at all times. Because we unallocate files, data might
go away any time. Hence, never assert() on any expectations on what the
file contains. Instead, handle it more gracefully as a corruption issue,
and return EBADMSG.

Fixes: #35229 #32436
5 months agojournal: add 'const' at one more place
Lennart Poettering [Thu, 5 Jun 2025 20:25:33 +0000 (22:25 +0200)] 
journal: add 'const' at one more place

5 months agojournal: determine compression once, not twice
Lennart Poettering [Thu, 5 Jun 2025 20:22:55 +0000 (22:22 +0200)] 
journal: determine compression once, not twice

This is just paranoia: let's determine the compression to use once,
instead of twice, after all te data is in journal files which might be
corrupted any time, and it would be weird if we came to different
results here each time.

5 months agojournal: use EBADMSG for invalid data in file mmap
Lennart Poettering [Thu, 5 Jun 2025 20:21:16 +0000 (22:21 +0200)] 
journal: use EBADMSG for invalid data in file mmap

We must assume that any data in the mmap can change anytime because the
file is deallocated or similar. Let's strictly use EBADMSG for reporting
invalid file contents though (as opposed to using EINVAL if our own code
passes a wrong parameter somwhere).

5 months agocore/varlink: split out dynamic-user stuff into its own source files
Mike Yuan [Thu, 5 Jun 2025 14:20:35 +0000 (16:20 +0200)] 
core/varlink: split out dynamic-user stuff into its own source files

5 months agohwdb: Acer Nitro ANV15-51 Mic Toggle
SoloSaravanan [Thu, 5 Jun 2025 13:06:23 +0000 (18:36 +0530)] 
hwdb: Acer Nitro ANV15-51 Mic Toggle

5 months agomountfsd: support processing block devices with MountImage() (#37746)
Lennart Poettering [Thu, 5 Jun 2025 14:51:06 +0000 (16:51 +0200)] 
mountfsd: support processing block devices with MountImage() (#37746)

Fixes: #35111
5 months agocore: Various fixes for cgroup and pid namespaces (#36815)
Daan De Meyer [Thu, 5 Jun 2025 13:21:59 +0000 (15:21 +0200)] 
core: Various fixes for cgroup and pid namespaces (#36815)

5 months agomeson: Don't fail install script if file doesn't exist
Daan De Meyer [Thu, 5 Jun 2025 10:14:45 +0000 (12:14 +0200)] 
meson: Don't fail install script if file doesn't exist

Depending on which optional features are enabled, the NSS module
might not have been built, which means the custom install script
will fail to remove the file. Let's pass -f so it succeeds regardless
of whether the file exists or not.

5 months agoman: suggest using --unlock-tpm2-device=auto in cryptenroll example
Lennart Poettering [Thu, 5 Jun 2025 12:40:42 +0000 (14:40 +0200)] 
man: suggest using --unlock-tpm2-device=auto in cryptenroll example

When refreshing a tpm2 enrollment, it makes sense to use tpm2 to unlock
the device.

Fixes: #35279
5 months agomeson: Add libmount feature
Daan De Meyer [Thu, 5 Jun 2025 09:05:08 +0000 (11:05 +0200)] 
meson: Add libmount feature

Let's reduce the dependencies required to build just libsystemd by
making libmount optional. The meson disabler feature makes this quite
trivial.

5 months agoadd CITATION.cff file
Lennart Poettering [Thu, 5 Jun 2025 12:35:26 +0000 (14:35 +0200)] 
add CITATION.cff file

As per spec: https://citation-file-format.github.io/

Fixes: #35260
5 months agomountfsd: slightly relax check on image fds 37746/head
Lennart Poettering [Thu, 5 Jun 2025 12:12:18 +0000 (14:12 +0200)] 
mountfsd: slightly relax check on image fds

Fixes: #35111
5 months agodissect-image: port to varlink_callbo_and_log()
Lennart Poettering [Thu, 5 Jun 2025 11:18:45 +0000 (13:18 +0200)] 
dissect-image: port to varlink_callbo_and_log()

5 months agovarlink-util: format system errors via %m in varlink_call_and_log()
Lennart Poettering [Thu, 5 Jun 2025 11:17:17 +0000 (13:17 +0200)] 
varlink-util: format system errors via %m in varlink_call_and_log()

This kinda does what bee59ab901ca199d194f440cf37f7645004d3054 did for
varlinkctl also for the generic varlink_call_and_log() handler.

5 months agofixes for --machine= handling in run0 and journalctl (#37741)
Lennart Poettering [Thu, 5 Jun 2025 12:02:26 +0000 (14:02 +0200)] 
fixes for --machine= handling in run0 and journalctl (#37741)

Fixes: #32997
5 months agoresolvectl: --raw improvements (#37743)
Lennart Poettering [Thu, 5 Jun 2025 12:02:00 +0000 (14:02 +0200)] 
resolvectl: --raw improvements (#37743)

Fixes: #37737
5 months agocore: adding CGroup runtime for io.systemd.Unit.List 37646/head
Ivan Kruglov [Mon, 2 Jun 2025 18:04:19 +0000 (20:04 +0200)] 
core: adding CGroup runtime for io.systemd.Unit.List

5 months agocore: adding CGroup context for io.systemd.Unit.List
Ivan Kruglov [Mon, 2 Jun 2025 12:12:44 +0000 (14:12 +0200)] 
core: adding CGroup context for io.systemd.Unit.List

5 months agocore: *ret = NULL for early return in unit_mounts_for_build_json()
Ivan Kruglov [Wed, 4 Jun 2025 14:37:03 +0000 (07:37 -0700)] 
core: *ret = NULL for early return in unit_mounts_for_build_json()

5 months agocore: rework how we track cgroup realized state (#37733)
Mike Yuan [Thu, 5 Jun 2025 10:56:31 +0000 (12:56 +0200)] 
core: rework how we track cgroup realized state (#37733)

5 months agosd-bus: treat '@' as equivalent to '@.host' 37741/head
Lennart Poettering [Thu, 5 Jun 2025 09:53:04 +0000 (11:53 +0200)] 
sd-bus: treat '@' as equivalent to '@.host'

We allow omission of the part before and the part after the @. But so
far we didn't allow omitting both. There's no real reason for
disallowing that, hence be systematic and allow it.

5 months agosd-bus: port to split_user_at_host()
Lennart Poettering [Thu, 5 Jun 2025 09:52:47 +0000 (11:52 +0200)] 
sd-bus: port to split_user_at_host()

5 months agojournalctl: politely refuse if non-root usernames are specified for --machine=
Lennart Poettering [Thu, 5 Jun 2025 09:27:53 +0000 (11:27 +0200)] 
journalctl: politely refuse if non-root usernames are specified for --machine=

We currently cannot support that (supporting that would probably require
some active component in the machine, or alternatively idmapped mounts
or so), hence politely refuse it.

See: https://github.com/systemd/systemd/issues/32997#issuecomment-2127700945

5 months agorun: chop off username from --machine= argument before calling OpenMachinePTY()
Lennart Poettering [Wed, 4 Jun 2025 16:28:35 +0000 (18:28 +0200)] 
run: chop off username from --machine= argument before calling OpenMachinePTY()

Let's be compatible with sd-bus' logic to talk to machine, and support
the usual user@host syntax. We only want the host part, hence chop if
off before passing it to OpenMachinePTY().

Fixes: #32997
5 months agomachined: open up OpenMachinePTY() for unpriv clients
Lennart Poettering [Thu, 5 Jun 2025 08:58:54 +0000 (10:58 +0200)] 
machined: open up OpenMachinePTY() for unpriv clients

The method call already does a PK check, it was just forgotten to
allowlist this in the dbus policy. And in the dbus vtable for
OpenMachinePTY() call. (It was allowlisted in the per-machine
vtable…)

Anyway, clean this up.

5 months agohostname-util: add new helper split_user_at_host()
Lennart Poettering [Thu, 5 Jun 2025 09:17:22 +0000 (11:17 +0200)] 
hostname-util: add new helper split_user_at_host()

Let's introduce a common helper for splitting user@host specifications
like we use them for --machine=.

5 months agoresolvectl: improve error message if we do not support dumping payload of RR 37743/head
Lennart Poettering [Thu, 5 Jun 2025 10:43:36 +0000 (12:43 +0200)] 
resolvectl: improve error message if we do not support dumping payload of RR

5 months agoman: reword --raw= explanation a bit
Lennart Poettering [Thu, 5 Jun 2025 10:22:34 +0000 (12:22 +0200)] 
man: reword --raw= explanation a bit

Explain what we mean by "payload", and for which RR types this is
intended.

And don#t claim we'd output a full packet, because we don't. We output
only the RR in binary.

Fixes: #37737
5 months agoresolvectl: output slightly more data when --raw=payload is used
Lennart Poettering [Thu, 5 Jun 2025 10:17:01 +0000 (12:17 +0200)] 
resolvectl: output slightly more data when --raw=payload is used

Let's also show A/AAAA data in binary form if --raw=payload is used. For
these RR types there's only a single data field, hence it's obbviously
meant.

Inspired by: #37737

5 months ago core: Make sure we handle DelegateSubgroup= in combo with cgroupns 36815/head
Daan De Meyer [Fri, 25 Apr 2025 10:40:52 +0000 (12:40 +0200)] 
 core: Make sure we handle DelegateSubgroup= in combo with cgroupns

Currently, if we use a cgroup namespace together with DelegateSubgroup=,
the subgroup becomes the root of the cgroup namespace because we move the
service process to the subgroup before we unshare the cgroup namespace, and
the current cgroup becomes the root of the cgroup namespace when we unshare
the cgroup namespace.

Let's fix the problem by not moving the service process to the subgroup until
we've unshared the cgroup namespace. Note that this doesn't break the primary use
case of CLONE_INTO_CGROUP since we still use it to immediately clone into the service
main cgroup, just not anymore into the subgroup, but this shouldn't matter in practice.

Additionally, we need special handling for control processes, as those *do*
need to get spawned into the subcgroup immediately if delegation is configured to
avoid violating the cgroupsv2 "no inner processes" rule.

Effectively, this leaves us with the following logic:
- In exec_spawn(), spawn into subgroup if we're spawning a control process
  that needs to be spawned into a subgroup immediately. Otherwise, spawn into
  main service cgroup.
- In exec_invoke(), move into subgroup early if we don't need a cgroup namespace.
  Otherwise, move into subgroup after we've unshared the cgroup namespace.

5 months agocore: Disable pid namespacing for control processes
Daan De Meyer [Fri, 21 Mar 2025 08:41:15 +0000 (09:41 +0100)] 
core: Disable pid namespacing for control processes

PID namespaces frankly don't make any sense for control processes, so
let's gracefully degrade to no pid namespaces for control processes.

5 months agomeson: Remove unnecessary deps from libsystemd-static build
Daan De Meyer [Thu, 5 Jun 2025 09:04:06 +0000 (11:04 +0200)] 
meson: Remove unnecessary deps from libsystemd-static build

blkid, libmount and openssl are not used in src/basic or src/libsystemd,
and so shouldn't be required as deps of libsystemd static, so let's drop
them.

5 months agoptyfwd: introduce pty_forward_set_window_title() helper function
Yu Watanabe [Thu, 5 Jun 2025 05:59:40 +0000 (14:59 +0900)] 
ptyfwd: introduce pty_forward_set_window_title() helper function

5 months agohwdb: add support for Loupedeck devices
tytan652 [Thu, 5 Jun 2025 09:26:58 +0000 (11:26 +0200)] 
hwdb: add support for Loupedeck devices

Razer has partnered with Loupedeck to develop some devices.

Add support for the following devices:
- Loupedeck CT
- Loupedeck Live
- Loupedeck Live S
- Razer Stream Controller
- Razer Stream Controller X

5 months agosd-daemon: add sd_pidfd_get_inode_id() (#37679)
Lennart Poettering [Thu, 5 Jun 2025 07:31:48 +0000 (09:31 +0200)] 
sd-daemon: add sd_pidfd_get_inode_id() (#37679)

5 months agovmspawn: fix call to GetUnitByPID
Sam Leonard [Mon, 2 Jun 2025 15:13:13 +0000 (16:13 +0100)] 
vmspawn: fix call to GetUnitByPID

This commit also adds a handler for SIGRTMIN+4 which is another signal
used to shutdown systemd.

5 months agotest-daemon: add test case for sd_pidfd_get_inode_id() 37679/head
Mike Yuan [Tue, 3 Jun 2025 15:15:00 +0000 (17:15 +0200)] 
test-daemon: add test case for sd_pidfd_get_inode_id()

5 months agosd-daemon: add sd_pidfd_get_inode_id()
Mike Yuan [Sun, 1 Jun 2025 07:12:13 +0000 (09:12 +0200)] 
sd-daemon: add sd_pidfd_get_inode_id()

We nowadays expose pidfdid at various places, e.g. envvars
and dbus properties. Also the sd_notify() MAINPID= message
has been complemented with MAINPIDFDID=. But acquiring
pidfdid is actually non-trivial especially considering
the 32-bit case, hence let's introduce a public helper
in sd-daemon specifically for that purpose.

5 months agopidfd-util: extract pidfd_get_inode_id_impl() and make it thread safe
Mike Yuan [Sun, 1 Jun 2025 06:57:49 +0000 (08:57 +0200)] 
pidfd-util: extract pidfd_get_inode_id_impl() and make it thread safe

Preparation for later commits.

5 months agopidfd-util: open an internal pidfd if none is passed in pidfd_check_pidfs()
Mike Yuan [Sun, 1 Jun 2025 06:55:50 +0000 (08:55 +0200)] 
pidfd-util: open an internal pidfd if none is passed in pidfd_check_pidfs()

I'd like to introduce a libsystemd helper for acquiring pidfd
inode id, which however means the fd passed to pidfd_check_pidfs()
can no longer be trusted. Let's add back the logic of allocating
a genuine pidfd allocated internally, which was remove in
5dc9d5b4eacbe32f58ad6ca18d70931ab89ea409.

5 months agoman/sd_pid_get_owner_uid: don't limit -EBADF to socket fds
Mike Yuan [Sun, 1 Jun 2025 07:06:36 +0000 (09:06 +0200)] 
man/sd_pid_get_owner_uid: don't limit -EBADF to socket fds

5 months agosd-login: reject invalid pidfd with -EBADF consistently
Mike Yuan [Sun, 1 Jun 2025 07:04:27 +0000 (09:04 +0200)] 
sd-login: reject invalid pidfd with -EBADF consistently

We got it mostly right except for one function, fix it.

5 months agosd-login: various modernizations (#37728)
Lennart Poettering [Wed, 4 Jun 2025 20:24:57 +0000 (22:24 +0200)] 
sd-login: various modernizations (#37728)

5 months agoio-util: protect against INT_MAX overflow in flush_fd()
Lennart Poettering [Wed, 4 Jun 2025 14:05:41 +0000 (16:05 +0200)] 
io-util: protect against INT_MAX overflow in flush_fd()

5 months agocore/cgroup: make various functions static 37733/head
Mike Yuan [Wed, 4 Jun 2025 16:28:58 +0000 (18:28 +0200)] 
core/cgroup: make various functions static

Not used externally anymore with previous commits.