]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 months agoimportd: port untarring logic over to libarchive 39143/head
Lennart Poettering [Thu, 17 Jul 2025 06:27:21 +0000 (08:27 +0200)] 
importd: port untarring logic over to libarchive

This way we have can expose identical behaviour everywhere, can make use
of our atomic replacement calls, and openat() logic, and later apply
additional tracks while unpacking, such as putting limits on UID ranges
and similar.

2 months agostat-util: add fd_verify_symlink() helper
Lennart Poettering [Thu, 17 Jul 2025 05:56:57 +0000 (07:56 +0200)] 
stat-util: add fd_verify_symlink() helper

2 months agostat-util: add helper inode_type_can_hardlink()
Lennart Poettering [Thu, 21 Aug 2025 12:27:05 +0000 (14:27 +0200)] 
stat-util: add helper inode_type_can_hardlink()

2 months agoxattr: add helper that detect special purpose xattrs
Lennart Poettering [Thu, 21 Aug 2025 11:36:12 +0000 (13:36 +0200)] 
xattr: add helper that detect special purpose xattrs

2 months agodissect image policy tweaks (#39168)
Lennart Poettering [Tue, 14 Oct 2025 08:25:34 +0000 (10:25 +0200)] 
dissect image policy tweaks (#39168)

2 months agocore/service: properly handle freezer action -> watchdog propagation (#39222)
Mike Yuan [Mon, 13 Oct 2025 22:49:12 +0000 (00:49 +0200)] 
core/service: properly handle freezer action -> watchdog propagation (#39222)

2 months agotest: make sure TEST-50-DISSECT.mountfsd.sh can run standalone 39168/head
Lennart Poettering [Mon, 29 Sep 2025 08:45:14 +0000 (10:45 +0200)] 
test: make sure TEST-50-DISSECT.mountfsd.sh can run standalone

2 months agodissect-image: take policy into consideration when unlocking verity, too
Lennart Poettering [Fri, 19 Sep 2025 16:12:55 +0000 (18:12 +0200)] 
dissect-image: take policy into consideration when unlocking verity, too

Previously, we'd take the image policy only into consideration when
dissecting the mage, but for the unlock/verity step we'd go via best
effort. Change that. This means we can now enforce policies such as
activating by root hash only even if a signature exists and similar.

Also, introduce a separate error code if we try to unlock a Verity
volume but have no root hash. Previously we'd return ENOKEY for that,
exactly like we do for encrypted volumes where we have no passparse. The
interctive unlock loop dissected_image_decrypt_interactively() is
otherwise very confused and will ask for a root hash, which makes no
sense. Hence use two distinct errors for this.

2 months agodissect-image: turn verity device sharing into opt-in
Lennart Poettering [Fri, 19 Sep 2025 15:57:37 +0000 (17:57 +0200)] 
dissect-image: turn verity device sharing into opt-in

Sharing verity volumes is problematic for a veriety of reasons, for
example because it might pin the wrong backing device at the wrong time.

Let's hence turn this around: unless verity sharing is enabled, leave it
off, and turn $SYSTEMD_VERITY_SHARING into a true boolean that can be
set both ways.

The primary usecase for verity sharing is RootImage=, where it probably
makes sense to leave on, hence set the flag there.

This is crucial when putting together installers which install an OS on
a second disk: if verity sharing is always on we might mount the wrong
of the two disks at the wrong time.

2 months agosd-id128: Drop _sd_const_ from sd_id128_in_setv()
Daan De Meyer [Mon, 13 Oct 2025 08:43:16 +0000 (10:43 +0200)] 
sd-id128: Drop _sd_const_ from sd_id128_in_setv()

Both the const and pure attributes disallow modifying input arguments
but sd_id128_in_setv() clearly modifies its ap input argument by iterating
over it with va_arg() so drop the _sd_const_ attribute from
sd_id128_in_setv().

2 months agotest-kernel-install: support the case when custom default locale is specified
Yu Watanabe [Sat, 27 Sep 2025 18:54:00 +0000 (03:54 +0900)] 
test-kernel-install: support the case when custom default locale is specified

This also makes 'diff' command output to stderr, otherwise the
difference is eaten by meson by default, so hard to debug.

2 months agomkosi: avoid infinite reboot on failure
Yu Watanabe [Mon, 29 Sep 2025 12:58:36 +0000 (21:58 +0900)] 
mkosi: avoid infinite reboot on failure

If systemd-pcrphase-initrd.service and friends failed for some reasons,
the test VM will reboot infinitely and the test will timeout. Let's
propagate the failure to the host and fail the test earlier in that case.

2 months agoFix build fail when add option "-fstack-protector-all"
Duy Nguyen Van [Tue, 7 Oct 2025 04:09:19 +0000 (13:09 +0900)] 
Fix build fail when add option "-fstack-protector-all"

When using canary check with "-fstack-protector-all" option. It causes a configure
error in systemd-boot when meson.build executes compile simple code to test linker option
"-static-pie" because -nolibstd option prevents using libc. It need for
canary to provide some function as "__stack_chk_guard". So need to turn off
canary check when compile sanity check.

2 months agomkosi: install test dependencies for EnterNamespace= test (#39268)
Zbigniew Jędrzejewski-Szmek [Mon, 13 Oct 2025 08:10:36 +0000 (10:10 +0200)] 
mkosi: install test dependencies for EnterNamespace= test (#39268)

The test for the EnterNamespace= feature [0] has been both broken and
disabled since the migration to the mkosi framework, as it's missing the
libdw.pc file for pkg-config, so the test is skipped completely, and
it's also missing gcc to actually build the test binary.

[0] Part of TEST-87-AUX-UTILS-VM.coredump.sh

2 months agoremove Nulea M501 usb entry from hwdb
Daniel Brackenbury [Fri, 10 Oct 2025 04:44:37 +0000 (00:44 -0400)] 
remove Nulea M501 usb entry from hwdb

conflict with other mice using same generic dongle identified (e.g. Protoarc EM11)

2 months agoinclude: update kernel headers from v6.17.1
Yu Watanabe [Tue, 7 Oct 2025 08:58:33 +0000 (17:58 +0900)] 
include: update kernel headers from v6.17.1

2 months agotest: temporarily skip the EnterNamespace= test w/o embedded debuginfo 39268/head
Frantisek Sumsal [Fri, 10 Oct 2025 18:09:51 +0000 (20:09 +0200)] 
test: temporarily skip the EnterNamespace= test w/o embedded debuginfo

The EnterNamespace= feature currently doesn't work if the debuginfo is
separated from the crashing binary. Until that's resolved, let's run the
test only if the test binary has embedded debuginfo (.debug_info
section; e.g. when systemd is built without WITH_DEBUG=1) or it contains
MiniDebugInfo (.gnu_debugdata section; default on Fedora and CentOS).

See: https://github.com/systemd/systemd/pull/39268#issuecomment-3390745718

2 months agomkosi: install test dependencies for EnterNamespace= test
Frantisek Sumsal [Thu, 9 Oct 2025 15:54:58 +0000 (17:54 +0200)] 
mkosi: install test dependencies for EnterNamespace= test

The test for the EnterNamespace= feature [0] has been both broken and
disabled since the migration to the mkosi framework, as it's missing the
libdw.pc file for pkg-config, so the test is skipped completely, and
it's also missing gcc to actually build the test binary.

[0] Part of TEST-87-AUX-UTILS-VM.coredump.sh

2 months agotest: exclude test-stacktrace(-not)?-symbolized from the coredump check
Frantisek Sumsal [Thu, 9 Oct 2025 15:57:25 +0000 (17:57 +0200)] 
test: exclude test-stacktrace(-not)?-symbolized from the coredump check

As they are expected coredumps from the EnterNamespace= feature test.

2 months agotest: build the crashing test binary outside of the test
Frantisek Sumsal [Thu, 9 Oct 2025 21:08:19 +0000 (23:08 +0200)] 
test: build the crashing test binary outside of the test

So we don't have to pull in gcc and other stuff into it.

Also, make the test itself a bit more robust and debug-able.

2 months agopidfd-util: add missing trailing argument for ioctl(PIDFD_GET_*_NAMESPACE)
Yu Watanabe [Fri, 10 Oct 2025 06:14:07 +0000 (15:14 +0900)] 
pidfd-util: add missing trailing argument for ioctl(PIDFD_GET_*_NAMESPACE)

Otherwise, it always fails with EINVAL.

2 months agoman/systemd.service: Improve OOMPolicy documentation (#39212) 33360/head
Taylan Kammer [Fri, 10 Oct 2025 13:50:56 +0000 (15:50 +0200)] 
man/systemd.service: Improve OOMPolicy documentation (#39212)

2 months agohwdb: drop trailing whitespace
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2025 10:19:04 +0000 (12:19 +0200)] 
hwdb: drop trailing whitespace

Fixup for 63254ed696d129cc46752e639ae761b758d7b251.

2 months agocreds: fix return type from normalize_separator()
Antonio Alvarez Feijoo [Thu, 9 Oct 2025 08:33:02 +0000 (10:33 +0200)] 
creds: fix return type from normalize_separator()

Follow-up for 097374f3b904e0649db8b0385b3ee66e1bf0a7d6

2 months agohwdb.d/70-mouse.hwdb: Add Nulea M501 trackball flags for USB Dongle + Bluetooth ...
Lennart Poettering [Thu, 9 Oct 2025 07:40:41 +0000 (09:40 +0200)] 
hwdb.d/70-mouse.hwdb: Add Nulea M501 trackball flags for USB Dongle + Bluetooth (#39241)

Adds an entry for the Nulea M501 trackball in both USB and Bluetooth
mode, such that it is correctly recognised as a trackball.

Note added to flag a potential issue arise with other mouse using the
same dongle w/ generic name.

Initially noted in #39230

2 months agologind: emit PropertiesChanged when lingering is enabled/disabled
Jelle van der Waa [Wed, 8 Oct 2025 10:29:04 +0000 (12:29 +0200)] 
logind: emit PropertiesChanged when lingering is enabled/disabled

Cockpit's podman plugin needs to know the lingering status so the UI can
advertise enabling `podman-restart` (which depends on lingering to
work). Currently it relies on watching `/var/lib/systemd/linger/${user}`
but that isn't a public API.

Related: #22244

2 months agodocs: two clarifications for release process (#39246)
Lennart Poettering [Thu, 9 Oct 2025 07:37:23 +0000 (09:37 +0200)] 
docs: two clarifications for release process (#39246)

doc was slightly out of sync with current practice, so update it to
match

2 months agoDrop `machine-id` OSC event field if /etc/machine-id doesn't exist
Justin Kromlinger [Wed, 8 Oct 2025 14:55:09 +0000 (16:55 +0200)] 
Drop `machine-id` OSC event field if /etc/machine-id doesn't exist

While we can safely assume that `/proc/sys/kernel/random/boot_id`
exists, the same can't be said for `/etc/machine-id` in environments
where systemd is installed, but not running. An example would be OCI
containers like with the official Arch Linux image, see [0].

Without this check the prompt would constantly output `/etc/machine-id:
no such file or directory` with the OSC events introduced in dadbb34
(v258).

[0] https://gitlab.archlinux.org/archlinux/archlinux-docker/-/issues/107

2 months agoman: fix description of .membership files
Lennart Poettering [Wed, 8 Oct 2025 09:50:02 +0000 (11:50 +0200)] 
man: fix description of .membership files

First, let's say "must" rather than "shall" regarding creation of these
files, because without them group memberships will not work.

Secondly, suggest placing an empty JSON object in them, rather than
making them empty, simply to avoid issues with older systems that didn't
backport d6570eafe3b86584ca42979d1ced5bfd2228a5c7.

Fixes: #38943
2 months agoman/userdbctl: fixup version info
Mike Yuan [Wed, 8 Oct 2025 20:17:38 +0000 (22:17 +0200)] 
man/userdbctl: fixup version info

Follow-up for 466562c69b75cec197176f556b940a43bb8350f2

2 months agologind: cast various calls that return errors we ignore to (void)
Jelle van der Waa [Wed, 8 Oct 2025 16:00:04 +0000 (18:00 +0200)] 
logind: cast various calls that return errors we ignore to (void)

2 months agomute-console: several follow-ups (#39229)
Mike Yuan [Wed, 8 Oct 2025 18:35:10 +0000 (20:35 +0200)] 
mute-console: several follow-ups (#39229)

2 months agoman: fix a missing word
Frantisek Sumsal [Wed, 8 Oct 2025 15:23:31 +0000 (17:23 +0200)] 
man: fix a missing word

Follow-up for 6d48c7cf736ced70c1c2fef1e1f03618911d04bc.

2 months agoman/factory-reset: fix typo in EFI variable name
Antonio Alvarez Feijoo [Wed, 8 Oct 2025 13:05:06 +0000 (15:05 +0200)] 
man/factory-reset: fix typo in EFI variable name

2 months agoremove bonus line 39241/head
helpvisa [Wed, 8 Oct 2025 11:18:48 +0000 (07:18 -0400)] 
remove bonus line

2 months agoupdate TODO
Lennart Poettering [Wed, 8 Oct 2025 10:40:04 +0000 (12:40 +0200)] 
update TODO

2 months agouserdb: add support for looking up users or groups by uuid. (#37097)
Lennart Poettering [Wed, 8 Oct 2025 10:03:14 +0000 (12:03 +0200)] 
userdb: add support for looking up users or groups by uuid. (#37097)

Followon to #37024.

This implements (mostly) what was suggested there, except that only a
single UUID is accepted (modifying things to support multiple is a
relatively straightforward change from here)

I'm not really convinced this is the right approach:

* I can't really think of any cases where you'd need to query by
multiple UUIDs (I guess you might want to lookup multiple users, but in
that case why aren't there "usernames" or "uids" arrays?)
* If I specify username "foo" and UID 1234 and UID 1234 exists and has
username "bar", I get back the error `ConflictingRecordFound`
* If I specify username "foo" and UUID abcdef... and username "foo"
exists but has UUID 123456..., I get back the error
`NonMatchingRecordFound`

This makes the two ID types behave differently.

Additionally, when querying by `uuid`, the multiplexer will always sends
`more: true`, which is fine but a little unexpected.

I do think unifying things through the `UserDBMatch` struct could make
sense, but in that case I think it would make sense to unify all query
types in that way (username, uid, uuid), identify when the filter is for
a single or multiple records, and centralise determination of conflict
vs non matching record errors.

`userdb_by_name`/`userdb_by_uid` could then become helper functions for
the simple case where no additional filtering is needed.

Thoughts?

One other thought: Should the multiplexer just pass through all
parameters, even unknown ones, to the backend services? Even if it
doesn't know how to filter by every property, the backends might, and it
would be useful to allow them to optimise things. (I realise the
disadvantage of this, ofc, is loss of error checking)

2 months agodocs: document creating new CI branch for the new stable branch after a release 39246/head
Luca Boccassi [Wed, 8 Oct 2025 10:00:06 +0000 (11:00 +0100)] 
docs: document creating new CI branch for the new stable branch after a release

2 months agodocs: document uploading manpages for new dev version after release
Luca Boccassi [Wed, 8 Oct 2025 09:56:43 +0000 (10:56 +0100)] 
docs: document uploading manpages for new dev version after release

This adds the new 'in development' section to the drop-down menu

2 months agotest-varlink-idl: add all missing IDL fragments
Lennart Poettering [Fri, 5 Sep 2025 20:15:08 +0000 (22:15 +0200)] 
test-varlink-idl: add all missing IDL fragments

Let's also order the output alphabetically

2 months agosystemd-creds: varlink null key handling (#39239)
Lennart Poettering [Wed, 8 Oct 2025 08:41:43 +0000 (10:41 +0200)] 
systemd-creds: varlink null key handling (#39239)

This is split out of #38764 but makes a ton of sense on its own.

2 months agojson-util: use JSON_VARIANT_ARRAY_FOREACH where appropriate
Mike Yuan [Tue, 7 Oct 2025 14:09:45 +0000 (16:09 +0200)] 
json-util: use JSON_VARIANT_ARRAY_FOREACH where appropriate

2 months agokernel-install: drop unneeded empty_to_root()
Mike Yuan [Fri, 4 Apr 2025 12:57:36 +0000 (14:57 +0200)] 
kernel-install: drop unneeded empty_to_root()

2 months agocreds: normalize definition of "tpm2-absent" legacy key type 39239/head
Lennart Poettering [Wed, 8 Oct 2025 07:16:42 +0000 (09:16 +0200)] 
creds: normalize definition of "tpm2-absent" legacy key type

This is just an alias, say so and clean up the name of the enum to match
the name of the string representation.

2 months agocreds: add explicit control on whether to allow null key decryption
Lennart Poettering [Tue, 7 Oct 2025 16:37:07 +0000 (18:37 +0200)] 
creds: add explicit control on whether to allow null key decryption

The ability to encrypt/authenticate encryption with a null key was
originally just a fallback concept for cases where during early boot we
have no host key, but the local system has no TPM2. Nowadays it is used
for other stuff as well, such as pcrlock data propagation (i.e. data
that needs no protection itself and required to properly to TPM key
derivation).

Let's give better, explicit control over null key usage, i.e. let's make
it a tristate both on the systemd-creds command line and in the Varlink
IPC to control three cases:

- the default that we allow it only if SecureBoot is off
- explicitly allowed
- explicitly refused (this is new)

Ideally systemd-creds --allow-null switch would take a boolean argument
to control this as a tristate. Alas, that would be a compat break, hence
I added --refuse-null instead (which also maps to the low-level flag for
this).

This also normalizes that the null key is always called "null key" in
messages, and not sometimes "empty key" or "fallback key".

2 months agotest: add testcase for withKey varlink option
Lennart Poettering [Tue, 7 Oct 2025 14:55:45 +0000 (16:55 +0200)] 
test: add testcase for withKey varlink option

2 months agocreds: allow varlink clients to choose --with-key= like on the command line
Lennart Poettering [Wed, 10 Sep 2025 20:45:57 +0000 (22:45 +0200)] 
creds: allow varlink clients to choose --with-key= like on the command line

2 months agocreds: define a proper varlink type for the credential scope
Lennart Poettering [Tue, 7 Oct 2025 13:52:38 +0000 (15:52 +0200)] 
creds: define a proper varlink type for the credential scope

2 months agoremove extra space from new hwdb.d/70-mouse.hwdb entries to fix failing test
Daniel Brackenbury [Tue, 7 Oct 2025 22:55:57 +0000 (18:55 -0400)] 
remove extra space from new hwdb.d/70-mouse.hwdb entries to fix failing test

2 months agoadd comment to 70-mouse.hwdb regarding generic name for Nulea M501 USB dongle
Daniel Brackenbury [Tue, 7 Oct 2025 22:04:56 +0000 (18:04 -0400)] 
add comment to 70-mouse.hwdb regarding generic name for Nulea M501 USB dongle

2 months agoAdd Nulea M501 trackball to hwdb
Daniel Brackenbury [Tue, 7 Oct 2025 22:00:57 +0000 (18:00 -0400)] 
Add Nulea M501 trackball to hwdb

2 months agoadd two new json dispatchers (#39237)
Lennart Poettering [Tue, 7 Oct 2025 18:58:06 +0000 (20:58 +0200)] 
add two new json dispatchers (#39237)

Split out of #38764. But the 2nd one at least makes sense on its own I
guess.

2 months agojson-util: don't use assert_return() 39237/head
Lennart Poettering [Tue, 7 Oct 2025 16:57:26 +0000 (18:57 +0200)] 
json-util: don't use assert_return()

assert_return() exists for gracefully handling programmng errors in
public APIs. But these are internal APIs, hence just use a tough
assert().

2 months agojson: add generic dispatchers for version strings
Lennart Poettering [Tue, 9 Sep 2025 09:22:46 +0000 (11:22 +0200)] 
json: add generic dispatchers for version strings

2 months agojson: add new json_dispatch_strv_path() helper
Lennart Poettering [Fri, 29 Aug 2025 13:17:28 +0000 (15:17 +0200)] 
json: add new json_dispatch_strv_path() helper

2 months agobasic/log-context: mark global vars as static
Mike Yuan [Tue, 7 Oct 2025 12:34:41 +0000 (14:34 +0200)] 
basic/log-context: mark global vars as static

2 months agolicensing: update address of FSF
Zbigniew Jędrzejewski-Szmek [Tue, 7 Oct 2025 11:04:47 +0000 (13:04 +0200)] 
licensing: update address of FSF

rpmlint complains about the old address, even though it totally
doesn't matter and nobody cares.

2 months agomute-console: don't unmute twice when not running as varlink service 39229/head
Mike Yuan [Mon, 6 Oct 2025 20:07:19 +0000 (22:07 +0200)] 
mute-console: don't unmute twice when not running as varlink service

This also avoids the spurious "not restoring" logs if we fail
to dispatch varlink call.

2 months agomute-console: if muting is disabled, suppress "not restoring" messages
Mike Yuan [Mon, 6 Oct 2025 20:19:36 +0000 (22:19 +0200)] 
mute-console: if muting is disabled, suppress "not restoring" messages

2 months agomute-console: honor Context rather than arg_*
Mike Yuan [Mon, 6 Oct 2025 20:34:42 +0000 (22:34 +0200)] 
mute-console: honor Context rather than arg_*

2 months agomute-console: fix typo
Mike Yuan [Mon, 6 Oct 2025 19:54:39 +0000 (21:54 +0200)] 
mute-console: fix typo

2 months agosystem-systemd\x2dmute\x2dconsole.slice: do not disable default deps
Mike Yuan [Mon, 6 Oct 2025 19:39:22 +0000 (21:39 +0200)] 
system-systemd\x2dmute\x2dconsole.slice: do not disable default deps

The only default dep for slice units is exactly what's outlined
here: Conflicts= + Before=shutdown.target. Hence just drop
custom deps.

2 months agounits: enable MaxConnectionsPerSource= for all our Accept=yes units (-ng)
Mike Yuan [Mon, 6 Oct 2025 19:47:42 +0000 (21:47 +0200)] 
units: enable MaxConnectionsPerSource= for all our Accept=yes units (-ng)

Apply 5d1e8cd3e057261c6db3fb3d7de39b7ca48efd3b on newly-added sockets.

2 months agobootspec: also process uki-url boot loader spec field
Lennart Poettering [Mon, 6 Oct 2025 06:52:21 +0000 (08:52 +0200)] 
bootspec: also process uki-url boot loader spec field

Let's also add support for "uki-url", which was added at the same time to
the spec as "uki".

Follow-up for: 4a94a1b83f8857b906bc7924b3f853768b5499b5

2 months agosysctl: support reading configuration from stdin and command line arguments (#39219)
Lennart Poettering [Mon, 6 Oct 2025 14:12:11 +0000 (16:12 +0200)] 
sysctl: support reading configuration from stdin and command line arguments (#39219)

This makes systemd-sysctl support following syntax, like
systemd-sysusers and systemd-tmpfiles:
```sh
$ /usr/lib/systemd/systemd-sysctl --inline 'foo.bar=42'
$ /usr/lib/systemd/systemd-sysctl - <<EOF
foo.bar=42
EOF
```

2 months agomute-console: remove unimplemented option
Antonio Alvarez Feijoo [Mon, 6 Oct 2025 10:42:27 +0000 (12:42 +0200)] 
mute-console: remove unimplemented option

```
$ build/systemd-mute-console -q
Code should not be reached at src/mute-console/mute-console.c:103, function parse_argv(). Aborting. 💥
Aborted (core dumped)
```

2 months agocopilot: Tell the AI to be thorough
Daan De Meyer [Mon, 6 Oct 2025 10:59:44 +0000 (12:59 +0200)] 
copilot: Tell the AI to be thorough

At least when doing a local review, asking it to be thorough results
in a lot more comments on coding style violation so let's add such an
instruction to the global instructions.

2 months agodocs: Mention newline requirement for multi-line function decl
Daan De Meyer [Mon, 6 Oct 2025 10:44:09 +0000 (12:44 +0200)] 
docs: Mention newline requirement for multi-line function decl

2 months agotimesync: several cleanups (#39220)
Mike Yuan [Mon, 6 Oct 2025 10:16:47 +0000 (12:16 +0200)] 
timesync: several cleanups (#39220)

Prompted by the logs provided at
https://github.com/systemd/systemd/issues/36498#issuecomment-3369227155.

2 months agoAdd copilot instructions
Daan De Meyer [Mon, 6 Oct 2025 08:42:10 +0000 (10:42 +0200)] 
Add copilot instructions

This was generated using copilot itself with Claude Sonnet 4.5 as
the backing model.

The idea is to test this out on some PRs to see whether copilot can
provide useful PR reviews. The idea is that it'll be able to take care
of the low hanging fruit like coding style issues and such. Once we get
some feedback on how it performs, we can make more changes to this document
to get it to behave better (assuming we decide to keep using it at all).

2 months agocore/service: properly handle freezer action -> watchdog propagation 39222/head
Mike Yuan [Mon, 6 Oct 2025 00:03:12 +0000 (02:03 +0200)] 
core/service: properly handle freezer action -> watchdog propagation

Follow-up for 25178aadb2bd04ef9e63f48c1ef42fb309f9332e

2 months agocore/service: drop "cgroup" part of service_cgroup_freezer_action()
Mike Yuan [Sun, 5 Oct 2025 23:46:58 +0000 (01:46 +0200)] 
core/service: drop "cgroup" part of service_cgroup_freezer_action()

This operates on more than cgroup, hence use generic naming,
which also aligns with slice_freezer_action().

2 months agounit-def: introduce freezer_state_objective()
Mike Yuan [Mon, 6 Oct 2025 00:27:55 +0000 (02:27 +0200)] 
unit-def: introduce freezer_state_objective()

No functional change, preparation for later commits.

2 months agomkosi: update debian commit reference to e50fce1d4b2a9f1bb990027de8e86603f3b42301
Luca Boccassi [Sun, 5 Oct 2025 18:46:50 +0000 (19:46 +0100)] 
mkosi: update debian commit reference to e50fce1d4b2a9f1bb990027de8e86603f3b42301

e50fce1d4b Fix installation of new manpages
8b45d3d793 Install new files for upstream build
a401468f75 autopkgest: install bsdutils and bsdextrautils for unit tests
587584577e Explicitly disable bpf-framework for stage1 builds
209a8475d9 systemd: recommend login package

2 months agovarlinkctl: add detailed error message when `--more` is needed
Jelle van der Waa [Sat, 4 Oct 2025 13:11:05 +0000 (15:11 +0200)] 
varlinkctl: add detailed error message when `--more` is needed

Instead of reporting a "Invalid exchange", tell the user the `--more`
flag is missing.

Closes: #39201
2 months agotest: add test cases for sysctl reading configuration from stdin or positional arguments 39219/head
Yu Watanabe [Sun, 5 Oct 2025 18:21:05 +0000 (03:21 +0900)] 
test: add test cases for sysctl reading configuration from stdin or positional arguments

2 months agotimesync: assume link NTP servers are unchanged on error and no servers registered yet 39220/head
Yu Watanabe [Sun, 5 Oct 2025 19:03:39 +0000 (04:03 +0900)] 
timesync: assume link NTP servers are unchanged on error and no servers registered yet

This also silences annoying debug message when networkd is not running,
in which case sd_network_get_ntp() returns -ENOENT.

2 months agotimesync: drop redundant space
Yu Watanabe [Sun, 5 Oct 2025 19:21:32 +0000 (04:21 +0900)] 
timesync: drop redundant space

2 months agosd-bus: silence spurious debugging log message
Yu Watanabe [Sun, 5 Oct 2025 19:26:19 +0000 (04:26 +0900)] 
sd-bus: silence spurious debugging log message

2 months agotest: merge TEST-76-SYSCTL into TEST-87-AUX-UTILS-VM
Yu Watanabe [Sun, 5 Oct 2025 18:26:28 +0000 (03:26 +0900)] 
test: merge TEST-76-SYSCTL into TEST-87-AUX-UTILS-VM

2 months agosysctl: add --inline option
Yu Watanabe [Sun, 5 Oct 2025 17:29:39 +0000 (02:29 +0900)] 
sysctl: add --inline option

This maybe useful to apply a simple configuration without creating conf
file.

2 months agosysctl: port parse_file() over conf_file_read()
Yu Watanabe [Sun, 5 Oct 2025 16:51:59 +0000 (01:51 +0900)] 
sysctl: port parse_file() over conf_file_read()

Then, systemd-sysctl can also support stdin and relative paths, like
systemd-sysusers and systemd-tmpfiles do.

2 months agosysctl: assorted coding style cleanups
Yu Watanabe [Sun, 5 Oct 2025 17:55:53 +0000 (02:55 +0900)] 
sysctl: assorted coding style cleanups

2 months agosysctl: shorten code a bit
Yu Watanabe [Sun, 5 Oct 2025 17:41:15 +0000 (02:41 +0900)] 
sysctl: shorten code a bit

2 months agosysctl: propagate failures in parsing credential files
Yu Watanabe [Sun, 5 Oct 2025 17:27:27 +0000 (02:27 +0900)] 
sysctl: propagate failures in parsing credential files

We already propagate failures in parsing conf files in usual places, or
given by command arguments. Let's make the behavior consistent.

2 months agosysctl: prettify help message
Yu Watanabe [Sun, 5 Oct 2025 17:26:04 +0000 (02:26 +0900)] 
sysctl: prettify help message

2 months agosysctl: add missing help entry for --strict
Yu Watanabe [Sun, 5 Oct 2025 17:20:21 +0000 (02:20 +0900)] 
sysctl: add missing help entry for --strict

Follow-up for e88748c17e58aad6818e64fd3071de011808165e.

2 months agomkosi: pull in new knot package for TEST-75-RESOLVED
Luca Boccassi [Sun, 5 Oct 2025 13:12:17 +0000 (14:12 +0100)] 
mkosi: pull in new knot package for TEST-75-RESOLVED

5728s TEST-75-RESOLVED.sh[439]: /usr/lib/systemd/tests/testdata/units/TEST-75-RESOLVED.sh: line 154: keymgr: command not found

The command was split out into a new package

2 months agoNEWS: Document new uaccess udev rule priority requirement
Guido Günther [Sun, 5 Oct 2025 07:26:26 +0000 (09:26 +0200)] 
NEWS: Document new uaccess udev rule priority requirement

Closes: https://github.com/systemd/systemd/issues/39206
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2 months agomam: add sd_bus_track_handler_t signature to manpage (#39204)
jsks [Sun, 5 Oct 2025 10:00:22 +0000 (12:00 +0200)] 
mam: add sd_bus_track_handler_t signature to manpage (#39204)

This is consistent with how the other handler/callback types are
documented.

2 months agoshared/bootspec: don't warn for new `loader.conf` options and correctly parse new...
Yu Watanabe [Sat, 4 Oct 2025 21:35:54 +0000 (23:35 +0200)] 
shared/bootspec: don't warn for new `loader.conf` options and correctly parse new `uki` and `profile` boot entry options (#39165)

Commit e2a3d562189c413de3262ec47cdc1e1b0b13d78b added the `uki` option
to sd-boot, and 1e9c9773b994f2f703a5aa5ba80961e90be3a892 added
`profile`, but because these were not added in src/shared/bootspec,
bootctl still shows warnings like `Unknown line 'uki', ignoring.` when
parsing the config. This PR allows parsing and displaying them correctly
in `bootctl` output. It also stops it from printing a warning for any of
the new `loader.conf` options (`log-level`, `reboot-on-error`, etc.).
Note that `uki-url` is still not handled as I can't easily test it.

2 months agoman/sd-login: minor grammar updates
Zbigniew Jędrzejewski-Szmek [Fri, 3 Oct 2025 16:36:39 +0000 (18:36 +0200)] 
man/sd-login: minor grammar updates

2 months agoman: fix advice regarding thread safety of libsystemd
Zbigniew Jędrzejewski-Szmek [Fri, 3 Oct 2025 11:17:32 +0000 (13:17 +0200)] 
man: fix advice regarding thread safety of libsystemd

The prohibition to move libsystemd objects between threads was added in
64a7ef8bc06b5dcfcd9f99ea10a43bde75c4370f ('man: be more explicit about thread
safety of sd_journal'). At the time, this was valid, because we were using the
mempool for allocation and it apparently didn't handle access from different
threads. Sadlly, the commit links to a bugzilla entry referenced in the commit
is not publicly visible anymore, so the details are murky. But we stopped using
the mempool in a5d8835c78112206bbf0812dd4cb471f803bfe88 ('mempool: only enable
mempool use when linked to libsystemd-shared.so'), with subsequent followup in
b01f31954f1c7c4601925173ae2638b572224e9a ('Turn mempool_enabled() into a weak
symbol'). The restriction added in the man page is not necessary since then.

The text in the man page was arguably incorrect in calling the code
"thread-agnostic". If the code does not support being touched from threads at
all and has global state to tied to the main thread, it is not "agnostic", but
just doesn't support threads.

(I'm looking into https://github.com/systemd/python-systemd/issues/143, and
with the current scheme, the python-systemd module and all python code using
libsystemd would be very hard to use. With the change to free-threaded python
in python3.13, i.e. the replacement of single Global Interpreter Lock by
locking on individual objects, this limitation would become even more
constraining.)

2 months agoUse string tables to parse option arguments (#39173)
Yu Watanabe [Sat, 4 Oct 2025 21:16:12 +0000 (23:16 +0200)] 
Use string tables to parse option arguments (#39173)

2 months agoTEST-74-AUX-UTILS: use sshd_config.d
val4oss [Wed, 1 Oct 2025 15:32:53 +0000 (17:32 +0200)] 
TEST-74-AUX-UTILS: use sshd_config.d

* From the TEST-74-AUX-UTILS.ssh.sh writing directly into
  /etc/ssh/sshd_config can hide config from distro using /usr/etc.
* Using directory configuration /etc/ssh/sshd_config.d/* suits for all
  cases.

Signed-off-by: val4oss <val4oss@pm.me>
2 months agoman: fix typo
Yu Watanabe [Sat, 4 Oct 2025 20:44:28 +0000 (05:44 +0900)] 
man: fix typo

Follow-up for 91214a37ef4eb8042d2598aa89bae52b410d11a7.
Fixes #39203.

2 months agomeson: add man and html targets (#39207)
Yu Watanabe [Sat, 4 Oct 2025 20:41:58 +0000 (22:41 +0200)] 
meson: add man and html targets (#39207)

2 months agopo: Translated using Weblate (Turkish)
Oğuz Ersen [Sat, 4 Oct 2025 19:48:38 +0000 (19:48 +0000)] 
po: Translated using Weblate (Turkish)

Currently translated at 100.0% (264 of 264 strings)

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

2 months agomeson: add target aliases 'man' and 'html' 39207/head
Zbigniew Jędrzejewski-Szmek [Sat, 4 Oct 2025 16:09:20 +0000 (18:09 +0200)] 
meson: add target aliases 'man' and 'html'

Previously we would need to say 'ninja -C build man/man man/html', now
just 'ninja -C build man html'.

2 months agomeson: drop remaining target names
Zbigniew Jędrzejewski-Szmek [Sat, 4 Oct 2025 16:05:47 +0000 (18:05 +0200)] 
meson: drop remaining target names

Most of those were dropped in 7d247d3cb875e1778e6cc81dbf255b13092b29e0. I left
behind the few cases where the 'output' name was different from the target name.
But we actually don't need those either, so get rid of those. (And one case
where I missed the name argument.)

No functional change, except that e.g. 'ninja -C build update-man-rules-impl'
doesn't work, but I hope nobody was using that.