Luca Boccassi [Wed, 12 Apr 2023 19:14:17 +0000 (20:14 +0100)]
Uphold/StopWhenUnneeded/BindsTo: add retry timer on rate limit
The Upholds= promise is that as long as unit A is up and Upholds=B,
B will be activated if failed or inactive. But there is a hard-coded,
non-configurable rate limit for this, so add a timed retry after the
ratelimit has expired.
Apply to BindsTo= and StopWhenUnneeded= as well.
Michal Sekletar [Wed, 12 Apr 2023 16:58:21 +0000 (18:58 +0200)]
man: add util-linux to the package list for Fedora container
/bin/login is shipped in util-linux, however, systemd.spec on Fedora has
"Requires: (util-linux-core or util-linux)". If the dependency is
fulfilled just by installation of util-linux-core then users won't be
able to log in into the container after it boots. Let's add util-linux
package to the package list so that /bin/login is always present.
Lennart Poettering [Wed, 12 Apr 2023 18:34:01 +0000 (20:34 +0200)]
Merge pull request #27153 from poettering/varlin-fd-pass
varlink: implement file descriptor passing
Mike Yuan [Wed, 12 Apr 2023 17:12:03 +0000 (01:12 +0800)]
Merge pull request #27212 from DaanDeMeyer/notify-exit
core: Propagate exit status via notify socket when running in VM
Mike Yuan [Wed, 12 Apr 2023 16:14:30 +0000 (00:14 +0800)]
Merge pull request #27229 from poettering/dissect-policy-confext
dissect: follow-up for image policy merge
Zbigniew Jędrzejewski-Szmek [Wed, 12 Apr 2023 16:00:49 +0000 (18:00 +0200)]
man: link to Fedora 37
Fedora 36 is a bit old at this point and will be EOL in about 6 weeks.
Fedora 38 is not out yet, so the cloud link wouldn't work.
Yu Watanabe [Wed, 12 Apr 2023 13:59:54 +0000 (22:59 +0900)]
Merge pull request #27217 from yuwata/boot-entry-at
boot-entry: introduce _at() variant
Lennart Poettering [Wed, 12 Apr 2023 09:21:01 +0000 (11:21 +0200)]
varlink: honour "sensitive" flag of json variant objects all the way into the socket
Let's honour the flag if it is set, just to be safe.
(This only handles the case for the writing side: whenever the client
code hands us a json object with the flag set we'll honour it till the
it's out of reach for us. This does *not* handle the reading side, which
is left for a later patch once needed. We probably should add a
per-connection flag that simply globally enables the sensitive logic for
all messages coming in on a specific varlink conneciton.)
Lennart Poettering [Wed, 5 Apr 2023 13:54:52 +0000 (15:54 +0200)]
test: add varlink fd passing test
Lennart Poettering [Wed, 5 Apr 2023 14:03:38 +0000 (16:03 +0200)]
varlink: implement file descriptor passing
Let's add infrastructure to implement fd passing in varlink, when used
over AF_UNIX.
This will optionally associate one or more fds with a message sent via
varlink and deliver it to the server.
Lennart Poettering [Wed, 5 Apr 2023 14:08:15 +0000 (16:08 +0200)]
varlink: add helper that clears the currently processed incoming message JSON object
Some minor refactoring. This adds a helper call whose only job is to
unref the JSON object of the currently processed incoming message.
This doesn't make too much sense on its own, given this just replaces
one line by another. However, in a later patch when we'll add fd passing
we'll extend the function to also destroy associated fds, and then it
will start to make more sense.
Lennart Poettering [Wed, 5 Apr 2023 13:57:44 +0000 (15:57 +0200)]
varlink: get rid of "reply" field
So far, if we do a synchronous varlink call from the client side via
varlink_call(), we'll
move the returned json object from "v->current" into "v->reply", and
keep it referenced there until the next call. We then return a pointer
to it. This ensures that the json object remains valid between two
varlink_call() invocations.
But the thing is, we don't need a separate field for that, we can just
leave the data in "v->current". This means VARLINK_IDLE_CLIENT state
will be permitted with and without v->current initialized. Initially,
after connection setup it will be set to NULL, but after the first
varlink_call() it will be set to the most recent response, pinning it
into memory.
Lennart Poettering [Wed, 5 Apr 2023 13:53:55 +0000 (15:53 +0200)]
varlink: add some comments explaining what by various errors are defined
Daan De Meyer [Wed, 12 Apr 2023 10:08:27 +0000 (12:08 +0200)]
core: Send ERRNO= via notify socket on exit
Daan De Meyer [Tue, 11 Apr 2023 11:17:13 +0000 (13:17 +0200)]
core: Propagate exit status via notify socket when running in VM
When running in a container, we can propagate the exit status of
pid1 as usual via the process exit status. This is not possible
when running in a VM. Instead, let's send EXIT_STATUS=%i via the
notify socket if one is configured. The user running the VM can then
pick up the exit status from the notify socket after the VM has shut
down.
Daan De Meyer [Wed, 12 Apr 2023 09:56:00 +0000 (11:56 +0200)]
notify: Add EXIT_STATUS field
Whenever one of our tools or daemons exits, let's send the exit status
via sd-notify in the EXIT_STATUS field.
Lennart Poettering [Wed, 12 Apr 2023 12:27:20 +0000 (14:27 +0200)]
sysext: define a default image dissection policy for confext images
Lennart Poettering [Wed, 12 Apr 2023 12:26:56 +0000 (14:26 +0200)]
discover-image: bring discover path list up-to-date.
While merge
3af48a86d99b3117a44bc22258ab4d34d0ba7655 was for a working
PR it was based on an older version of git main. Let's catch up with the
search path changes from
de862276eddbbe76b436213b4d427205356d1886.
Daan De Meyer [Wed, 12 Apr 2023 12:11:23 +0000 (14:11 +0200)]
Fix compilation error
Thierry Martin [Mon, 5 Sep 2022 13:02:06 +0000 (15:02 +0200)]
nspawn: container network interface naming
systemd-nspawn now optionally supports colon-separated pair of
host interface name and container interface name for --network-macvlan, --network-ipvlan and --network-interface options.
Also supported in .nspawn configuration files (i.e Interface=, MACVLAN=, IPVLAN= parameters).
man page changed for ntwk interface naming
Lennart Poettering [Wed, 12 Apr 2023 11:46:08 +0000 (13:46 +0200)]
Merge pull request #25608 from poettering/dissect-moar
dissect: add dissection policies
Luca Boccassi [Wed, 12 Apr 2023 11:13:43 +0000 (12:13 +0100)]
Merge pull request #27165 from poettering/fdstore-envvar
service: tell service processes that the fdstore is available via an e…
Yu Watanabe [Sat, 8 Apr 2023 17:42:47 +0000 (02:42 +0900)]
boot-entry: introduce boot_entry_token_ensure_at()
Yu Watanabe [Wed, 12 Apr 2023 10:30:51 +0000 (19:30 +0900)]
Merge pull request #27223 from dtardon/install-changes
Simplify use of bus_deserialize_and_dump_unit_file_changes()
Daan De Meyer [Wed, 12 Apr 2023 09:49:08 +0000 (11:49 +0200)]
Merge pull request #27220 from yuwata/sd-device-follow-ups-for-devlink
sd-device: several follow-ups about devlink creation
Lennart Poettering [Wed, 12 Apr 2023 08:29:14 +0000 (10:29 +0200)]
man: rebreak all of sd_notify(3)
No change of contents, just some rebreaking of the full file to match
our current line break settings.
Lennart Poettering [Wed, 5 Apr 2023 13:48:31 +0000 (15:48 +0200)]
service: tell service processes that the fdstore is available via an env var
David Tardon [Tue, 11 Apr 2023 15:35:38 +0000 (17:35 +0200)]
systemctl: reduce variable scope
David Tardon [Tue, 11 Apr 2023 15:25:42 +0000 (17:25 +0200)]
tree-wide: drop unneeded output params
Neither of the callers of bus_deserialize_and_dump_unit_file_changes()
touches the changes array, so let's simplify things and keep it internal
to the function.
Yu Watanabe [Wed, 12 Apr 2023 07:43:39 +0000 (16:43 +0900)]
Merge pull request #27033 from dtardon/array-cleanup
Use CLEANUP_ARRAY more
Yu Watanabe [Wed, 12 Apr 2023 07:15:03 +0000 (16:15 +0900)]
boot-entry: use chase_and_fopen_unlocked() to open /etc/kernel/entry-token
Otherwise, when 'root' is specified, the file may be a symlink to a host
file, and we may read wrong entry.
Yu Watanabe [Wed, 12 Apr 2023 01:27:07 +0000 (10:27 +0900)]
udev-test: add more testcases for SYMLINK
Frantisek Sumsal [Tue, 11 Apr 2023 15:23:23 +0000 (17:23 +0200)]
test: drop binary stripping stuff
Stripping the binaries in the test images makes potential stack straces
quite useless, so let's drop the stripping stuff to make test fails a bit
more developer friendly.
Related: https://github.com/systemd/systemd-centos-ci/pull/616
Yu Watanabe [Wed, 12 Apr 2023 00:01:45 +0000 (09:01 +0900)]
sd-device: absolute devlink must start with /dev/
This also makes device node path is handled with the same logic.
Addresses https://github.com/systemd/systemd/pull/27169#discussion_r1162739511.
Follow-up for
2c5f119c3cc78bd7da0c7c56b57eca43bac464c1.
Yu Watanabe [Wed, 29 Mar 2023 02:14:02 +0000 (11:14 +0900)]
boot-entry: prioritize machine ID only when it is not randomly generated
Preparation for later commits. The parameter will be used in
kernel-install later.
Daan De Meyer [Tue, 11 Apr 2023 20:30:09 +0000 (22:30 +0200)]
Merge pull request #27214 from DaanDeMeyer/firstboot
firstboot: Use root directory file descriptor for everything
Tanishka [Tue, 4 Apr 2023 13:00:31 +0000 (18:30 +0530)]
Modified to use STRV_MAKE() in strv_env_name_is_valid() function listed in env-util.c
Zbigniew Jędrzejewski-Szmek [Tue, 11 Apr 2023 18:44:48 +0000 (20:44 +0200)]
Merge pull request #27209 from jamacku/patch-1
Don't run release workflow on `systemd-security` & drop checkout action
Mike Yuan [Tue, 4 Apr 2023 14:12:32 +0000 (22:12 +0800)]
systemctl: suppress error for try-* if unit is masked
Closes #16521
Jan Janssen [Mon, 10 Apr 2023 09:43:56 +0000 (11:43 +0200)]
boot: Fix alignment of long long inside structs on x86
On x86 EFI follows the windows ABI, which expects 8-byte aligned long
long. The x86 sysv ELF ABI expects them to be 8-byte aligned when used
alone, but 4-byte aligned when they appear inside of structs:
struct S {
int i;
long long ll;
};
// _Static_assert(sizeof(struct S) == 12, "x86 sysv ABI");
_Static_assert(sizeof(struct S) == 16, "EFI/MS ABI");
To get the behavior we need when building with sysv ELF ABI we need to
pass '-malign-double' to the compiler as done by EDK2.
This in turn will make ubsan unhappy as the stack may not be properly
aligned on entry, so we have to tell the compiler explicitly to re-align
the stack on entry to efi_main.
This fixes loading EFI drivers on x86 that were previously always
rejected as the EFI_LOADED_IMAGE_PROTOCOL had a wrong memory layout.
See also: https://github.com/rhboot/shim/pull/516
Jan Macku [Tue, 11 Apr 2023 07:33:46 +0000 (09:33 +0200)]
ci: drop checkout from release workflow
It's not required as per comment - https://github.com/systemd/systemd/pull/27110#issuecomment-
1499653913
Jan Macku [Tue, 11 Apr 2023 07:30:15 +0000 (09:30 +0200)]
ci: don't run release wf on `systemd-security`
David Tardon [Tue, 28 Mar 2023 11:44:16 +0000 (13:44 +0200)]
portabled-image-bus: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 11:39:04 +0000 (13:39 +0200)]
portabled-image-bus: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 11:38:18 +0000 (13:38 +0200)]
portabled-image-bus: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 11:33:48 +0000 (13:33 +0200)]
portabled-bus: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 11:30:26 +0000 (13:30 +0200)]
sd-bus: use _cleanup_
David Tardon [Tue, 28 Mar 2023 11:27:02 +0000 (13:27 +0200)]
sd-bus: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 09:28:13 +0000 (11:28 +0200)]
execute: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 09:22:35 +0000 (11:22 +0200)]
execute: use more automatic cleanup
Bill Peterson [Tue, 11 Apr 2023 14:11:16 +0000 (09:11 -0500)]
hwdb: add matrix for Asus BR1100F (#27197)
David Tardon [Tue, 28 Mar 2023 09:17:09 +0000 (11:17 +0200)]
execute: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 09:05:06 +0000 (11:05 +0200)]
systemctl-set-default: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 09:03:13 +0000 (11:03 +0200)]
systemctl-preset-all: shorten code a tiny bit
David Tardon [Tue, 28 Mar 2023 09:02:38 +0000 (11:02 +0200)]
systemctl-preset-all: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 09:00:23 +0000 (11:00 +0200)]
systemctl-enable: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 08:57:02 +0000 (10:57 +0200)]
systemctl-add-dependency: shorten code a tiny bit
David Tardon [Tue, 28 Mar 2023 08:51:29 +0000 (10:51 +0200)]
systemctl-add-dependency: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 08:46:20 +0000 (10:46 +0200)]
portablectl: use CLEANUP_ARRAY
David Tardon [Thu, 30 Mar 2023 10:49:15 +0000 (12:49 +0200)]
machinectl: do not repeat the same comparison
David Tardon [Thu, 30 Mar 2023 10:38:24 +0000 (12:38 +0200)]
machinectl: drop unneeded else
David Tardon [Tue, 28 Mar 2023 08:44:46 +0000 (10:44 +0200)]
machinectl: use CLEANUP_ARRAY
David Tardon [Tue, 28 Mar 2023 08:39:33 +0000 (10:39 +0200)]
dbus-manager: use CLEANUP_ARRAY
Daan De Meyer [Tue, 11 Apr 2023 13:22:08 +0000 (15:22 +0200)]
firstboot: Use root directory file descriptor for everything
There were a few remaining cases where we used arg_root instead of
the root directory file descriptor. Let's port those over to use the
root directory file descriptor as well.
Daan De Meyer [Tue, 11 Apr 2023 13:21:51 +0000 (15:21 +0200)]
user-util: Add default_root_shell_at()
David Tardon [Tue, 28 Mar 2023 08:37:33 +0000 (10:37 +0200)]
dbus-manager: use CLEANUP_ARRAY
Daan De Meyer [Tue, 11 Apr 2023 12:54:56 +0000 (14:54 +0200)]
Merge pull request #27186 from yuwata/os-release
os-util: several cleanups and introduce _at() variants of os-release parsers
Zbigniew Jędrzejewski-Szmek [Tue, 11 Apr 2023 12:43:50 +0000 (14:43 +0200)]
Merge pull request #27169 from yuwata/udev-rule-refuse-unsafe-path
sd-device,udev: refuse unsafe path in SYMLINK= and TAG=
Yu Watanabe [Tue, 11 Apr 2023 10:20:49 +0000 (19:20 +0900)]
hwdb: fix ambiguous glob pattern for Lenovo machines
Fixes #27195.
Follow-up for
a5c0ad9a9a2964079a19a1db42f79570a3582bee.
Yu Watanabe [Sat, 8 Apr 2023 09:48:57 +0000 (18:48 +0900)]
os-util: introduce several _at() variants of os-release parsers
Yu Watanabe [Sat, 8 Apr 2023 13:33:40 +0000 (22:33 +0900)]
os-util: make $SYSTEMD_OS_RELEASE prefixed with the root directory
To make it consistent with other env vars, e.g. $SYSTEMD_ESP_PATH or
$SYSTEMD_XBOOTLDR_PATH.
This is useful when the root is specified by a file descriptor, instead
of a path.
Yu Watanabe [Sat, 8 Apr 2023 09:16:04 +0000 (18:16 +0900)]
os-util: merge parse_{extension,os}_release()
Yu Watanabe [Sat, 8 Apr 2023 13:10:25 +0000 (22:10 +0900)]
os-util: invert order of arguments in extension release parser
For consistency with other functions.
Unfortunately, va_start() requires that the previous argument is a
pointer, hence the order of the arguments in the internal function
cannot be changed.
Yu Watanabe [Sat, 8 Apr 2023 16:38:34 +0000 (01:38 +0900)]
os-util: shorten temporal variable names
No functional change, just refactoring.
Yu Watanabe [Sat, 8 Apr 2023 16:37:16 +0000 (01:37 +0900)]
os-util: log one more error cause
Yu Watanabe [Sat, 8 Apr 2023 16:31:29 +0000 (01:31 +0900)]
os-util: do not use 'r' for storing loop status
The variable 'r' is usually used for storing return value of functional
call. Let's introduce another boolean to store the current loop status.
No functional change, just refactoring.
Yu Watanabe [Sat, 8 Apr 2023 16:16:26 +0000 (01:16 +0900)]
os-util: return earlier when unsupported image class is specified
Yu Watanabe [Sat, 8 Apr 2023 16:09:09 +0000 (01:09 +0900)]
os-util: return earlier when extension release file is found
No functional change, just refactoring.
Yu Watanabe [Sat, 8 Apr 2023 16:02:13 +0000 (01:02 +0900)]
os-util: split-out open_os_release() from open_extension_release()
The logics of opening os-release and extension-release are completely
different.
No functional change, just refactoring.
Yu Watanabe [Sat, 8 Apr 2023 16:11:52 +0000 (01:11 +0900)]
os-util: fix fd leak on failure
Yu Watanabe [Sat, 8 Apr 2023 09:00:31 +0000 (18:00 +0900)]
os-util: make open_extension_release() return O_PATH fd
Yu Watanabe [Sat, 8 Apr 2023 08:15:09 +0000 (17:15 +0900)]
os-util: drop fopen_extension_release()
Yu Watanabe [Sat, 8 Apr 2023 06:15:25 +0000 (15:15 +0900)]
compress: replace compress_blob() with compress_blob_explicit()
And make compress_xyz() return 0 on success, as we know which compression
algorithm is used when calling compress_blob().
Follow-up for
2360352ef02548723ac0c8eaf5ff6905eb9eeca5.
Daan De Meyer [Tue, 11 Apr 2023 07:12:21 +0000 (09:12 +0200)]
Merge pull request #27206 from yuwata/udev-rename
udev: rename arguments and options, update comments
Yu Watanabe [Mon, 10 Apr 2023 19:50:32 +0000 (04:50 +0900)]
chase: drop redundant call of delete_trailing_chars()
In that branch, 'root' is a non-root and absolute path.
Hence, delete_trailing_chars() does not make the path empty.
And, if the path contains redundant slashes at the end, that will be
dropped by path_simplify().
Yu Watanabe [Tue, 11 Apr 2023 05:42:27 +0000 (14:42 +0900)]
Merge pull request #27207 from masatake/busctl--help-msg
busctl: add --xml-interface to the help message
Yu Watanabe [Tue, 11 Apr 2023 03:37:37 +0000 (12:37 +0900)]
Merge pull request #27201 from yuwata/o-path-support
Support O_PATH more
Colin Walters [Mon, 10 Apr 2023 20:22:25 +0000 (16:22 -0400)]
tree-wide: A few more uses of "unmet" for conditions
This is a followup to
413e8650b71d4404a7453403797f93d73d88c466
> tree-wide: Use "unmet" for condition checks, not "failed"
Since I noticed when running `systemctl status` on a recent
systemd still seeing
`Condition: start condition failed`
To recap the original rationale here for "unmet" is that it's
normal for some units to be conditional, so the term "failure"
here is too strong.
Yu Watanabe [Tue, 11 Apr 2023 03:36:13 +0000 (12:36 +0900)]
Merge pull request #27199 from yuwata/find-esp
path-util: introduce path_prefix_root_cwd(), and use it in find_esp() and friends
Yu Watanabe [Tue, 11 Apr 2023 03:35:34 +0000 (12:35 +0900)]
Merge pull request #27202 from yuwata/os-release-tiny-cleanups
os-util: tiny cleanups
Yu Watanabe [Sat, 8 Apr 2023 08:48:04 +0000 (17:48 +0900)]
env-file: introduce parse_env_file_fdv()
Masatake YAMATO [Tue, 11 Apr 2023 02:45:44 +0000 (11:45 +0900)]
shell-completion: add --xml-interface option of busctl to the rules
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Masatake YAMATO [Tue, 11 Apr 2023 02:29:30 +0000 (11:29 +0900)]
busctl: add --xml-interface to the help message
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Yu Watanabe [Mon, 10 Apr 2023 19:57:34 +0000 (04:57 +0900)]
find-esp: use path_prefix_root_cwd()
Unlikely, but even if find_esp() or friends called with unnormalized or
relative 'root', let's make the result path normalized and absolute.
Note, before
63105f33edad423691e2d53bf7071f99c83799ba, these functions
returned an absolute and normalized path. But the commit made the result
path simply concatenated with root.
Follow-up for
63105f33edad423691e2d53bf7071f99c83799ba.
Yu Watanabe [Mon, 10 Apr 2023 19:09:55 +0000 (04:09 +0900)]
path-util: introduce path_prefix_root_cwd()
Yu Watanabe [Mon, 10 Apr 2023 21:05:35 +0000 (06:05 +0900)]
test: update description
Yu Watanabe [Mon, 10 Apr 2023 21:01:13 +0000 (06:01 +0900)]
udev/scsi_id: rename positional arguments
Yu Watanabe [Mon, 10 Apr 2023 20:53:58 +0000 (05:53 +0900)]
device-nodes: rename argument
Yu Watanabe [Sat, 8 Apr 2023 08:56:38 +0000 (17:56 +0900)]
os-util: drop redundant declaration of load_os_release_pairs()
Yu Watanabe [Sat, 8 Apr 2023 07:15:03 +0000 (16:15 +0900)]
os-util: use _IMAGE_CLASS_INVALID
When extension is not specified, image class is not necessary to be
specified. Let's use _IMAGE_CLASS_INVALID as an indicator that no
extension is specified.