Commit Graph
86146 Commits
Author SHA1 Message Date
Yu Watanabe 691d63dbdd sd-netlink: also read the reply for NFNL_MSG_BATCH_BEGIN message
When we send a batch of nfnl messages, but e.g. without sufficient
privilege, the kernel may only return an error message for
NFNL_MSG_BATCH_BEGIN and ignore all later messages.
So, we need to read the response for the NFNL_MSG_BATCH_BEGIN,
and if it is an error ignore the replies for the rest.
2025-12-04 08:24:28 +09:00
Yu Watanabe ea97ca9a06 sd-netlink: drop unused ret_messages argument
This is not only unused, the kernel never provide any meaningful reply
for batch message. Let's drop it.
2025-12-04 08:24:28 +09:00
Yu Watanabe 991703009e sd-netlink: introduce sd_netlink_ignore_serial()
When we send a message with NLM_F_ACK, but if later we are not
interested in the reply and do not want to call sd_netlink_read(),
the reply will be stored in the rqueue forever.

Let's introduce a way to ignore received message without waiting reply.
2025-12-04 08:24:28 +09:00
Yu Watanabe 32682ba02d sd-netlink: introduce netlink_now() and move timespan_to_timestamp()
When sd-event is attached to the sd-netlink object, use the timestamp of
the current event, otherwise call now().

This mostly change nothing. Preparation for later change.
2025-12-04 08:24:28 +09:00
Yu Watanabe 69646ac0e2 include: fix typo
Follow-up for ec32732043.
2025-12-04 07:50:26 +09:00
Alexandru Tocar 1d9a8e439c man: drop --import-credential mention from systemd-nspawn(1) 2025-12-04 07:47:23 +09:00
Daan De Meyer 2253b4c35d dissect: Stop refusing external verity settings for mountfsd
These are supported now so no point in refusing them in systemd-dissect
2025-12-03 22:13:48 +00:00
Antonio Alvarez Feijoo a308e97ad2 run-generator: use generator_add_symlink() 2025-12-03 15:52:55 +01:00
Antonio Alvarez Feijoo 6b892f85e2 man/inhibit: mention handle-reboot-key operation 2025-12-03 17:55:50 +09:00
Antonio Álvarez Feijoo 4ae16cf9b7 kernel-install: exit with option --json=help (#39974)
In that case, `parse_json_argument()` returns 0.

Follow-up for bdd36c003d (v255).
2025-12-03 01:56:01 +09:00
Luca Boccassi ce3acf9acb cryptsetup: downgrade dlopen not compiled message to debug
Every other log in this function is debug level, so downgrade this too.
Otherwise compiling without libcryptsetup means sd-executor logs at
error level when starting any service, regardless of whether it is
needed or not.

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

Follow-up for efaf5a763d
2025-12-02 16:52:24 +00:00
Yu Watanabe 929ce35f8d meson: rework include_directories() and finding of tools (#39956)
This is a cleanup in preparation for later additions.
2025-12-02 20:07:37 +09:00
Lennart Poettering 722dc73699 machined: in --user mode, restrict register access to our own UID, and that's it
This is a follow-up for 119d332d9c and
ensures the check only is applied to the system instance of machined. It
doesn't really apply to the per-user instance, because we never want to
permit differently privileged clients access anyway.

(The process_is_owned_by_uid() call might fail if invoked unpriv, hence
there's value in not calling it if machined runs in --user mode, it's
what makes machined actually work)
2025-12-02 13:34:20 +09:00
Lennart Poettering 81e79ee499 exec-invoke: fix type for gid 2025-12-02 13:34:05 +09:00
Luca Boccassi a3b6ad69ab cgroup-util: fix cg_pid_get_user_unit() to actually query user units
Refactor switched to the wrong implementation for this inline,
breaking querying for user units

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

Follow-up for 015025cba2
2025-12-02 10:50:41 +09:00
Lennart Poettering 8c5917a03b man: remove notes about limitations of unpriv containers that don't apply anymore 2025-12-01 17:14:53 +00:00
Zbigniew Jędrzejewski-Szmek 322f6adbcd meson: add tools/meson.build
Previously, we looked for scripts in the tools/ directory ad hoc,
wherever they were needed. Let's do those checks in one place.
The main meson.build file is shrunk somewhat, which is always nice.
2025-12-01 16:18:11 +01:00
Zbigniew Jędrzejewski-Szmek 963bebd7b0 meson: add source dir to include_directories automatically
Quite often we need to specify include_directories('.'). Normally, meson
does this automatically, but we specify implicit_include_directories : false,
see 30d20907bd for an explanation.
Passing the include_directories argument through the template layers was rather
cumbersome. Let's simplify things by always including the directory of the
first source file. This makes the definitions simpler, at the cost of having an
unnecessary include directory in the list in some cases.

(Tests are excluded from this change, because they happen to not need this, but
also because some tests have source[0] which is a custom target, and we'd need
newer meson to support that.)
2025-12-01 15:35:22 +01:00
Zbigniew Jędrzejewski-Szmek 4c3c60c270 meson: reuse variable in one more place 2025-12-01 14:40:03 +01:00
dependabot[bot] 0413c780ae build(deps): bump softprops/action-gh-release from 2.4.1 to 2.5.0
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/6da8fa9354ddfdc4aeace5fc48d7f679b5214090...a06a81a03ee405af7f2048a818ed3f03bbf83c7b)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 13:25:11 +00:00
dependabot[bot] 05cfef4a92 build(deps): bump super-linter/super-linter from 7.4.0 to 8.3.0
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 7.4.0 to 8.3.0.
- [Release notes](https://github.com/super-linter/super-linter/releases)
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/super-linter/super-linter/compare/12150456a73e248bdc94d0794898f94e23127c88...502f4fe48a81a392756e173e39a861f8c8efe056)

---
updated-dependencies:
- dependency-name: super-linter/super-linter
  dependency-version: 8.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 13:24:35 +00:00
Mike Gilbert 1a88817b83 test-kernel-install: respect TMPDIR in expected output 2025-12-01 13:23:42 +00:00
Abílio Costa 2fd63f831f hwdb: add ProtoArc EM01 NL mouse configuration 2025-11-29 13:02:27 +09:00
Fco. Javier F. Serrador a05969f152 po: Translated using Weblate (Spanish)
Currently translated at 100.0% (264 of 264 strings)

Co-authored-by: Fco. Javier F. Serrador <fserrador@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/es/
Translation: systemd/main
2025-11-29 13:01:44 +09:00
Chris Down 23d02f6327 test: Add comprehensive tests for MultiPathRoute device-only syntax
Add unit tests for config_parse_multipath_route() covering the new
device-only nexthop syntax (@device). Tests verify basic parsing of
device-only routes, gateway with device routes, gateway-only routes,
interface index handling, etc. Also some checks on new hash/duplicate
semantics.

Also add an integration test to verify device-only multipath routes are
correctly installed in the kernel routing table.
2025-11-28 19:09:15 +08:00
Chris Down 645b709a38 network: Support interface-bound ECMP routes in MultiPathRoute=
MultiPathRoute= can now specify device-only nexthops without a gateway
address, e.g. MultiPathRoute=@wg0. This enables ECMP configurations over
interfaces that don't use gateway addresses, such as WireGuard tunnels.

The syntax is extended from "address[@device] [weight]" to
"[address]@device [weight]". The address is now optional, but at least
one of gateway or device must be specified. The @ symbol must still be
present for device-only routes, making the syntax unambiguous: @wg0
specifies a device, while a bare IP address specifies a gateway.

Device-only nexthops are only available for IPv4 routes. Device-only
multipath routes for IPv6 are not supported by the kernel's netlink
interface and will be rejected with a warning.

This change is fully backwards compatible. All existing configurations
continue to work unchanged, as they always included a gateway address.

Closes #39699.
2025-11-28 19:09:15 +08:00
Zbigniew Jędrzejewski-Szmek 21eb636aaa sd-notify: print a debug message when sd_notify() succeds
… and also when it fails, in the few cases where this wasn't done already.
When I was debugging https://github.com/systemd/systemd/issues/39048, it
was quite confusing that we print copious information about D-Bus messages
and all other steps we're undertaking, but nothing about the sd-notify
messages which are much more important. Add some debug messages for the
cases where we didn't print anything. (The case where $NOTIFY_SOCKET is
not set in left unchanged. The variable is often left unset and we don't
need to spam logs in that trivial case.)
2025-11-27 20:03:00 +01:00
Zbigniew Jędrzejewski-Szmek f943ab6efb systemctl: stop showing last message from previous run
--lines=1 means that we show the last message about the unit, whatever it is:

$ SYSTEMD_LOG_LEVEL=debug systemctl --verbose start demo2
...
Invoking 'journalctl -q --follow --no-pager --lines=1 --synchronize-on-exit=yes --unit=demo2.service' as child.
...
Directory /var/log/journal/7d16833bfa924410851e2a193bcfd4ba added.
Journal effective settings seal=no keyed_hash=yes compress=ZSTD compress_threshold_bytes=8B
...
Reiterating files to get inotify watches established.
Considering root directory '/run/log/journal'.
Considering root directory '/var/log/journal'.
Considering directory '/var/log/journal/7d16833bfa924410851e2a193bcfd4ba'.
Nov 26 17:24:35 rawhide systemd[1]: Finished demo2.service.
...
Executing dbus call org.freedesktop.systemd1.Manager StartUnit(demo2.service, replace)
...
Job for demo2.service finished.
Got result done/Success for job demo2.service.
journal: Sending message: {"method":"io.systemd.Journal.Synchronize","parameters":{"offline":false}}
Nov 27 13:05:30 rawhide systemd[1]: Starting demo2.service...
Nov 27 13:05:30 rawhide systemd[1]: demo2.service: Deactivated successfully.
Nov 27 13:05:30 rawhide systemd[1]: Finished demo2.service.
...

We obviously should only show _new_ messages, hence change to --lines=0.
This works properly after the fix in the previous commit.

Fixes #39048.
2025-11-27 20:03:00 +01:00
Zbigniew Jędrzejewski-Szmek ef90afd59e journal: send READY=1 also when --lines=0 is given
If --lines=0 is given, we'd skip the setup and not invoke sd_notify,
potentially blocking the caller. Change the condition for the callback
to also include that case. Since then the callback would always be
set, the 'if' statement is not necessary anymore.
2025-11-27 20:02:02 +01:00
João Rodrigues 68ce283c3f Symlink for the /dev/ptp0 in vmware (#39917)
There are rules to create a symlink for the /dev/ptp0 device in KVM and
Hyper-V virtualization infrastructure but not for vmware.
2025-11-27 03:54:03 +09:00
Yu Watanabe 2feb8f58ce Pull in recent changes from Weblate (#39920)
One of the pending commits in Weblate causes conflicts due to an
unfortunate timing with 9e929e4aa7, so
let's pull the changes into the main tree manually (and resolve the
conflicts).
2025-11-27 03:10:29 +09:00
lumingzh 1fd1001657 po: Translated using Weblate (Chinese (Simplified) (zh_CN))
Currently translated at 100.0% (264 of 264 strings)

Translation: systemd/main
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/zh_CN/
2025-11-26 17:17:37 +01:00
Jesse Guo 556dc3a0f1 po: Translated using Weblate (Chinese (Simplified) (zh_CN))
Currently translated at 100.0% (264 of 264 strings)

Translation: systemd/main
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/zh_CN/
2025-11-26 17:17:19 +01:00
Mike Yuan b9be45f926 analyze-dlopen-metadata: honor --no-legend and --no-pager 2025-11-26 16:17:08 +01:00
Luca Boccassi a895fb38bb meson: bump version to v259~rc2 2025-11-26 12:26:56 +00:00
Luca Boccassi fc06602eb6 NEWS: finalize date 2025-11-26 12:26:45 +00:00
Lennart Poettering 1ceba02ad9 ci: split out nvpcr test, so that it runs before rest of pcrextend (#39915)
in pcrextend we destroy pcr 11, and if we are booted in a kernel that
has pcr11 sigs, we cannot use that signature anymore. hence, let's do
the nvpcr test first, before doing the pcrextend stuff.

Fixes: #39582
2025-11-26 12:24:57 +00:00
Daan De Meyer 6a9f0641cd tree-wide: Fix declaration/definition parameter name mismatches 2025-11-26 19:02:31 +09:00
Luca Boccassi a8374a7607 Chores for RC2 (#39901) 2025-11-26 09:52:33 +00:00
Yu Watanabe caf7cb2737 SD_JSON_BUILD_PAIR() conversions with coccinelle script (#39858) 2025-11-26 16:35:35 +09:00
Yu Watanabe b7f892b390 core/mount: comprehensively disable mount unit support if no libmount (#39884) 2025-11-26 16:29:30 +09:00
Yu Watanabe 7875d9a4f6 run0: two follow-ups (#39900) 2025-11-26 16:24:42 +09:00
Mike Yuan cffb53d742 smbios11: use size_add() where appropriate
Follow-up for 33b0642e6a
2025-11-26 16:23:32 +09:00
Daan De Meyer 9ad1d56f82 import: Make naming consistent
Always abbreviate import/pull/export structs with their first letter
instead of only doing it in some places and using the wrong letter in
other places.
2025-11-26 16:23:13 +09:00
Daan De Meyer 27217200f6 core: Rename error sd_bus_error parameters to reterr_error 2025-11-26 16:22:50 +09:00
Daan De Meyer c421392811 fsprg: Drop const from gcry_mpi_t arguments
gcry_mpi_t is defined as "typedef struct gcry_mpi *gcry_mpi_t;".
When const is applied to this type, it resolves to
"struct gcry_mpi *const" instead of what we expect ("const struct gcry_mpi *").

So we end up with a const pointer to a mutable object instead of a mutable
pointer to a const object. Since the pointer passed to the function
is copied regardless, making it const has zero benefit.

You'd think we could instead stop using gcry_mpi_t and replace it with
"const struct gcry_mpi *", except that gcrypt leaked this mess into its
api, so it expects const pointers to mutable objects as well, which means
we can't take pointers to const objects as arguments, as we'd discard the qualifier
when calling a gcrypt function.

To avoid confusion, let's drop the const qualifiers from the gcry_mpi_t arguments.
2025-11-26 16:22:32 +09:00
Daan De Meyer 9a6a8f35eb tree-wide: Small fixes for various clang-tidy warnings 2025-11-26 16:22:00 +09:00
Mike Yuan 38b59a83d2 libmount-util: build .c only if libmount feature is enabled
Follow-up for 7336f2c748

This alignes with some other optional modules in shraed/,
and it allows dlopen_libmount() to be optimized out entirely.
Let's avoid emitting pointless symbols.
2025-11-26 02:40:28 +01:00
Mike Yuan 46b4b33c25 Revert "pid1: pull in libmount unconditionally"
This reverts commit 6069de1ed3.
2025-11-26 02:40:28 +01:00
Mike Yuan 1bee93e6e2 core/mount: comprehensively disable mount unit support if no libmount
Follow-up for b3243f4bee
and 5df44d0f6a

Since we now consider this a supported senario, let's hook up
libmount loading with the high-level unit_type_supported() machinery
and gracefully skip the whole unit accordingly.
2025-11-26 02:40:27 +01:00