Commit Graph
78926 Commits
Author SHA1 Message Date
Yu Watanabe e7e707f058 networkd-test.py: generate debugging logs of networkd 2025-01-21 09:48:17 +01:00
Luca Boccassi 606c5e7580 ukify: add --policy-digest option
Uses the newly added policy-digest verb of systemd-measure, for the same
purpose: build a UKI and get digests for the .pcrsig section out, so
that they can be offline signed and reattached
2025-01-21 09:19:49 +01:00
Luca Boccassi 175cb87a1c measure: add policy-digest verb
When doing offline signing we need to know the exact payload
to sign, and the 'calculate' verb doesn't really show that, it
shows the PCR values. But what we sign is the hash of the policy.
So add a new verb that outputs the json payload that goes in the
.pcrsig section, without the .sig object, so that we can take them
and give the .pol object to an offline and asynchronous signing
service, such as SUSE's Open Build Service, and then add the .sig
object to the json and attach it to a UKI.
2025-01-21 00:07:58 +00:00
Mike Yuan 9bfc13e93a pidfd: cache our own pidfd inode id, and use it at various places (#36060)
This is split out of and preparation for #35224, but makes a ton of
sense on its own
2025-01-21 00:16:12 +01:00
Luca Boccassi f6a04dc149 ukify: print debug/progress messages to stderr and pass through --json to systemd-measure (#36081) 2025-01-20 21:34:59 +00:00
Lennart Poettering 169b0d4eb0 udev: allow to enable trace logging in systemd-udevd (#36070)
split out of #35968.
2025-01-20 22:02:13 +01:00
Lennart Poettering b2b7c54c17 update TODO 2025-01-20 21:51:40 +01:00
Lennart Poettering 243f7ea3ed notify: add support for MANAGERPIDFDID 2025-01-20 21:51:40 +01:00
Lennart Poettering 7933e971ce pid1: pass pidfdids to invoked services in $MAINPIDFDID and $MANAGERPIDFDID 2025-01-20 21:51:40 +01:00
Lennart Poettering 36a2be13c4 random-util: include pidfdid in fallback RNG buffer
This doesn't make the RNG cryptographic strength, but if we have it
easily accessible, why not include the pidfd id. It is after all not
vulnerable to reuse.
2025-01-20 21:51:40 +01:00
Lennart Poettering 4ace93da8c pidref: now that we have the cached pidfdid of our own process, use it
Note that this drops a lot of "const" qualifiers on PidRef arguments.
That's because pidref_is_self() suddenly might end changing the PidRef
because it acquires the pidfd ID.

We had this previously already with pidfd_equal(), but this amplifies
the problem.

I guess we C's "const" doesn't really work for stuff that contains
caches, that is just conceptually constant, but not actually.
2025-01-20 21:51:40 +01:00
Lennart Poettering afede53ae9 pidfd-util: add helper for getting our own pidfdid
let's start caching our own pidfd id, since it's somewhat involved to
get but a much better identifier for things than the classic PID is.
2025-01-20 21:51:29 +01:00
Lennart Poettering 5dc9d5b4ea pidfd-util: dont open a new pidfd unnecessarily in pidfd_check_pidfs() 2025-01-20 21:49:38 +01:00
Lennart Poettering 81cf3dc466 build: fail the build if we accidentally drop a "const" qualifier on a parameter
let's be strict here, our codebase allows it.
2025-01-20 21:44:23 +01:00
Lennart Poettering c66a7ca6e5 machine-id-setup: move code to use chase() (#35979)
I just wanted to switch the machine id setup code to use chase() or its
changes, given it supports --root=/--image= operation. That turned out
to be a rabbit hole, and became much bigger...
2025-01-20 21:18:24 +01:00
Lennart Poettering 52e2033ebc cryptsetup and friends: use dispatch_verb() (#36072) 2025-01-20 21:17:01 +01:00
Luca Boccassi 8fa7863a93 nspawn: downgrade log message about usrquota to debug
This is shown every time nspawn is started, which is annoying
and there's nothing a user can do about it, since it depends on
an extremely new kernel. Downgrade to debug.

Follow-up for 611ae59888
2025-01-20 21:16:12 +01:00
Yu Watanabe 25a2e4738b udevadm-control: allow to enable/disable trace logging in systemd-udevd
Should be useful for debugging udev rules.
2025-01-21 04:12:18 +09:00
Yu Watanabe 993b481ad1 udev-varlink: allow to enable/disable trace logging through varlink
This introduces io.systemd.Udev.SetTrace varlink method. With the
method, trace logging by udev worker can be dynamically controlled.
2025-01-21 04:12:18 +09:00
Yu Watanabe 695c592a03 udev-config: allow to enable trace logging through kernel command line
This adds udev.trace[=BOOL] kernel command line option to control trace
logging.
2025-01-21 04:12:18 +09:00
Yu Watanabe b5a10b2127 udev-control: move setting of log level to manager_adjust_config()
No functional change, just refactoring.
2025-01-21 04:12:18 +09:00
Tommi Rantala 26551c0f67 resolved: empty "ipv4hint" and "ipv6hint" SvcParams are invalid
According to RFC 9460 "An empty list of addresses is invalid."

https://www.rfc-editor.org/rfc/rfc9460.html#section-7.3
2025-01-20 19:03:09 +00:00
Yu Watanabe 5c4fa7b9b2 integritysetup: use dispatch_verb() 2025-01-21 03:42:38 +09:00
Yu Watanabe 50c0f5de8f veritysetup: use dispatch_verb() 2025-01-21 03:42:38 +09:00
Yu Watanabe a0b1ee2fca cryptsetup: use dispatch_verb() 2025-01-21 03:42:38 +09:00
Yu Watanabe 13a3b59144 cryptsetup: drop doubled space 2025-01-21 03:42:38 +09:00
Yu Watanabe 7e21105002 cryptsetup: use mangle_none() at one more place 2025-01-21 03:42:34 +09:00
Yu Watanabe a8fe005209 tree-wide: drop merely used _cleanup_ macros, and introduce several new ones (#36071) 2025-01-21 03:41:27 +09:00
Lennart Poettering 6d8582ecd6 udev: cleanups around sd_listen_fds() (#36030)
Fixes a bug introduced by 2f0aa9a804.

In the offending commit, `sd_varlink_server_listen_auto()` is used. That
may add file descriptors of netlink socket for uevent and legacy control
socket varlink server. Then, udevd may fail to receive uevents.
2025-01-20 18:06:56 +01:00
Lennart Poettering a6fb250b50 tree-wide: several follow-ups for varlink methods (#36080)
Follow-ups for #35914.
2025-01-20 18:00:21 +01:00
Lennart Poettering 50ffe4058c udev-rules: introduce OPTIONS="dump" (#36069)
split out of #35968.
2025-01-20 17:59:40 +01:00
Daan De Meyer 5e65856829 sbsign: Make sure output file respects umask (#36083) 2025-01-20 14:02:29 +01:00
Lennart Poettering 09b70f7cc9 update TODO 2025-01-20 11:35:04 +01:00
Lennart Poettering 3351c0a510 chase: move appending of trailing slash out of loop
let's move final processing of the filename out of the loop, and apply
it in all cases, uniformly, even if we are asked to only return the
final filename.
2025-01-20 11:35:04 +01:00
Lennart Poettering 90b9f7a07e chase: introduce flags that verify that chased inode is regular file or dir
This also implies the new CHASE_MUST_BE_DIRECTORY flag in case the
specified path ends in a slash. This makes the rules stricter, it means
we'll be closer to how this is handled in kernel: if a path ends in a
slash it can never refer to a non-directory.
2025-01-20 11:35:03 +01:00
Lennart Poettering 64d52739c5 machine-id-setup: rework writing of /etc/machine-id around chase()
Let's make sure we properly stay inside of the root fs if one is
provided, i.e. stop using prefix_roota() at one more place.
2025-01-20 11:34:20 +01:00
Lennart Poettering 3773d4dd9a machine-id-setup: remove unnecessary 'else' 2025-01-20 11:32:01 +01:00
Lennart Poettering efabf4e044 machine-id-setup: rework --commit based on chase() 2025-01-20 11:32:01 +01:00
Lennart Poettering 4d0fb50e9e machine-id-setup: do sync() stuff only when operating on the real rootfs
If we operate relative some explicit rootfs the reason for the sync()ing
is not really given, we are not really acting as a milestone at boot,
but "offline".
2025-01-20 11:31:55 +01:00
Lennart Poettering 849552c80b machine-id-setup: rearrange --help to match how we do them these days 2025-01-20 11:31:55 +01:00
Lennart Poettering b0afd29f7d chase: use streq() not path_equal() to compare filenames 2025-01-20 11:31:55 +01:00
Lennart Poettering e49e76d64d chase: allow using chase() as mkdir_p() replacement
This allows using CHASE_MKDIR_0755 without CHASE_NONEXISTENT or
CHASE_PARENT, so that it will create the final component of the path
too should it be missing.

This is really useful as a mkdir_p() replacement that returns an fd to
the final component, and knows how to operate relative to a root fs.

Kinda reverts 4ea0bcb922 (which only
refused the flags combination which didn't work, instead of making it
work, which is what this commit does.)

This also corrects behaviour if CHASE_MKDIR_0755 is used in one more
way: we'll now always open the dir as O_PATH. This is generally the
better idea, but matters in particular once with allow using
CHASE_MKDIR_0755 to create the final component: we should uniformly
return an O_PATH dir that must be converted to a proper fd first before
using it.
2025-01-20 11:31:55 +01:00
Lennart Poettering b979368075 mount-util: introduce umountat_detach_verbose()
This new helper allows unmounting paths by fd.
2025-01-20 11:31:55 +01:00
Daan De Meyer 6f594acd63 sbsign: Make sure output file mode respects umask 2025-01-20 10:06:11 +01:00
Daan De Meyer 7180a3b38c sbsign: Make two debug logs into error logs 2025-01-20 10:05:18 +01:00
Luca Boccassi 7d64e2f368 ukify: print debug/progress messages to stderr
Otherwise json will be interleaved with plain text messages
2025-01-19 16:52:00 +00:00
Luca Boccassi 7bf31680ad ukify: pass through --json to systemd-measure
So that --measure --json prints usable json output
2025-01-19 16:22:38 +00:00
Luca Boccassi 7fe9fb9599 linter: run ruff format --diff so that the needed changes are actually printed 2025-01-19 15:59:01 +00:00
Yu Watanabe d919a155c0 udev-varlink: add io.systemd.service.GetEnvironment
There is no reason to not support the method in udevd.

Follow-up for c8127075ae.
2025-01-20 00:21:45 +09:00
Yu Watanabe 901bfcd8c1 tree-wide: rely on sd_varlink_dispatch() for validating zero-argument method calls, too
Follow-ups for a7cc7038ac.
2025-01-20 00:21:31 +09:00