Commit Graph
67177 Commits
Author SHA1 Message Date
Daan De Meyer 2defccf3e1 mkosi: Drop kernel command line arguments that are set by mkosi
mkosi sets these by default now so let's drop them from our
configuration.
2023-07-14 14:51:42 +02:00
Daan De Meyer 5b79e9d7a9 mkosi: Update to latest
mkosi now supports CentOS SIGs natively so we drop our own definition
of that and use the mkosi builtin one. We also enable hyperscale for
both CentOS 8 and CentOS 9 for consistency and add epel-next as well
which is a requirement for Hyperscale.
2023-07-14 14:47:45 +02:00
Daan De Meyer 09444a2e76 elf2efi: Make compatible with python 3.6 again
CentOS 8 ships python 3.6 so let's try and stay compatible with that
since the only feature we're using that requires python 3.9 is the
streamlined type annotations which are trivial to convert back to
the older stuff to stay compatible with python 3.6.
2023-07-14 14:41:19 +02:00
Yuri Chornoivan 11696fbbd1 po: Translated using Weblate (Ukrainian)
Currently translated at 100.0% (227 of 227 strings)

po: Translated using Weblate (Ukrainian)

Currently translated at 93.8% (213 of 227 strings)

Co-authored-by: Yuri Chornoivan <yurchor@ukr.net>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/uk/
Translation: systemd/main
2023-07-14 11:55:07 +00:00
Weblate 64efe0bfa1 po: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/
Translation: systemd/main
2023-07-14 12:51:32 +01:00
Frantisek Sumsal f1adb4a2ea packit: temporarily use older Rawhide spec
Until [0] is deployed to production.

[0] https://github.com/packit/specfile/commit/2bdcec3db5cbee5e1f61fd578edd6a3393afd787
2023-07-14 20:47:19 +09:00
Daan De Meyer a061312324 kernel-install: Avoid reopening file descriptor via /proc
kernel-install used to work without /proc mounted before the rewrite
in C. Let's restore that property by making sure we don't reopen
file descriptors via /proc. In this case, parse_env_file_fdv() calls
fdopen_independent() to get a FILE * for the given file descriptor
(which itself calls fd_reopen()). Let's avoid the call to
fdopen_independent() by using chase_and_fopenat_unlocked() which
gives us a FILE * immediately without having to reopen any file
descriptors.
2023-07-14 12:28:26 +02:00
Luca Boccassi 7f92564b38 Merge pull request #28380 from bluca/homed_translate
homed: make all pam_prompt strings translatable
2023-07-14 10:35:58 +01:00
Luca Boccassi 1118a39a77 po: add homed file and regenerate pot 2023-07-14 10:32:54 +01:00
Daan De Meyer 6d4f612c70 Merge pull request #28376 from yuwata/json_append
Use json_append() and json_variant_append_array()
2023-07-14 10:07:48 +02:00
Yu Watanabe dc32de3924 network: check lifetime of address and route before configure
Otherwise, we may configure a route that depends on the existence
of an address or another route, and may fail when lifetime of one
of them are already zero.

Hopefully fixes #28358.
2023-07-14 10:01:20 +02:00
Yu Watanabe 4cbabc195c sd-journal: fix 'the the' 2023-07-14 16:53:41 +09:00
Daan De Meyer 95b8bf9df2 mkosi: Set systemd.early_core_pattern=/core
This makes sure we get pid1 coredumps during early boot.
2023-07-14 09:13:10 +02:00
Daan De Meyer 102f36efd1 terminal-util: Document boolean parameter in one more place 2023-07-14 09:12:54 +02:00
Daan De Meyer 29f5a5aef0 tree-wide: Set /dev/console size when we reset it
If a size is configured for /dev/console via the kernel cmdline,
let's make sure we take that into account when resetting /dev/console.
2023-07-14 09:11:29 +02:00
Yu Watanabe 0bf091a626 proc-cmdline: re-implement proc_cmdline_filter_pid1_args() without using getopt_long()
If getopt_long() is called for a list of arguments and it is freed, then
calling getopt_long() for another list will trigger use-after-free.

The function proc_cmdline_filter_pid1_args() may be called before or during
parsing program arguments (typically named as parse_argv()), hence we cannot
use getopt_long() in proc_cmdline_filter_pid1_args().

Fixes #28366.
2023-07-14 13:36:50 +09:00
Yu Watanabe 542f99cc8b test: add more test cases for proc_cmdline_filter_pid1_args() 2023-07-14 13:36:50 +09:00
Yu Watanabe f14f1273d3 Merge pull request #27526 from mrc0mmand/journal-fss
journal: clean up the FSS related code a bit & add a couple of tests
2023-07-14 13:30:30 +09:00
Fuminobu TAKEYAMA ef4300654e core: fix race condition during startup of a service with ExitType=cgroup
This commit allows service_sigchld_event() is executed before
service_dispatch_exec_io(), which might happen when a main process exits
very quickly.

Also do not check PID for service goodness because the main process have
already been exited in this case.

Fix: #27919
2023-07-14 10:51:41 +08:00
Yu Watanabe a035a33f83 Merge pull request #28385 from YHNdnzj/fstab-initrd-bind-mount
fstab-generator: resolve bind mount source when in initrd
2023-07-14 11:21:14 +09:00
Mike Yuan b5fd3956ec fstab-generator: resolve bind mount source when in initrd
We currently prepend /sysroot to mount points for entries
in /sysroot/etc/fstab. But when it comes to bind mounts,
the source needs to canonicalized too.

Fixes #6827
Replaces #7894
2023-07-14 01:29:23 +08:00
Mike Yuan 35df78cd88 fstab-util: add fstab_is_bind 2023-07-14 01:27:02 +08:00
Daan De Meyer d7d36252e5 ukify: Derive public key from private key if not specified 2023-07-13 16:31:05 +01:00
David Tardon b1ebc20137 bus-polkit: avoid extra variable 2023-07-13 16:40:30 +02:00
David Tardon 2f50a4f38f bus-polkit: allow to auth. a bus call for multiple actions
In #20155, verify_shutdown_creds() needs to authenticate for both
org.freedesktop.login1.hibernate-multiple-sessions and
org.freedesktop.login1.hibernate-ignore-inhibit . Previously, the second
authentication attempt would fail with -ESTALE.

Fixes #20155.
2023-07-13 16:40:05 +02:00
David Tardon 959301cf9f bus-polkit: parse reply from polkit on receive
... and store just the result.
2023-07-13 16:29:17 +02:00
David Tardon c71901b247 bus-polkit: extract action into a separate struct
This is a preparation for later commits.
2023-07-13 16:29:17 +02:00
David Tardon 361c4ee82f bus-polkit: describe async. polkit verification 2023-07-13 16:29:16 +02:00
David Tardon 0df66e42fa bus-polkit: refactor a bit to avoid goto 2023-07-13 16:00:06 +02:00
David Tardon 8f7195ef3c bus-polkit: drop unused argument 2023-07-13 16:00:06 +02:00
David Tardon 10ee1413f6 bus-polkit: use automatic cleanup 2023-07-13 16:00:06 +02:00
Frantisek Sumsal 6ce3d33bd5 test: add a couple of tests for FSS journals 2023-07-13 15:32:20 +02:00
Frantisek Sumsal 9e94023236 journal: clean up the FSS handling code a bit 2023-07-13 15:32:20 +02:00
Luca Boccassi 4e680156c8 homed: make all pam_prompt strings translatable
Users get prompted with these, so they should be translated.
Note that a comment is moved up, as otherwise the pot generation picks
it up and copies it into the translation file.

Fixes https://github.com/systemd/systemd/issues/28379
2023-07-13 13:24:53 +01:00
Zbigniew Jędrzejewski-Szmek 1339b950cf network: use RET_GATHER
No functional change intended.
2023-07-13 11:40:15 +02:00
Zbigniew Jędrzejewski-Szmek eb6cae1a40 modules-load: use RET_GATHER, update error handling
We would try to return the first error, but conf_files_list_nulstr()
failure would terminate the app immediately. So let's just return the
error from conf_files_list_nulstr(), and the first error encountered for
other failures after which we continue.
2023-07-13 11:40:15 +02:00
Zbigniew Jędrzejewski-Szmek fa989c74a6 gpt-auto-generator: use RET_GATHER, return first error 2023-07-13 11:40:15 +02:00
David Tardon 85fe60b9e8 docs: fix order 2023-07-13 09:37:00 +00:00
Zbigniew Jędrzejewski-Szmek 60ecc386ab coredump: use RET_NERRNO and RET_GATHER
No functional change indended.
2023-07-13 11:12:00 +02:00
Zbigniew Jędrzejewski-Szmek 0114bab25f bootctl: use RET_GATHER, return first error 2023-07-13 11:12:00 +02:00
Zbigniew Jędrzejewski-Szmek 9ef648cca1 various: use RET_GATHER
No functional change indentended.
2023-07-13 11:12:00 +02:00
Zbigniew Jędrzejewski-Szmek 809c3a84e1 Introduce RET_GATHER and use it in src/shared/
The idea is to make it easier to implement the common pattern of
accumulating errors (negative values) in an accumulator to return
the first error.
2023-07-13 11:12:00 +02:00
Zbigniew Jędrzejewski-Szmek c8e02e408f sysusers: add comments and simplify how set with names is created
The code was correct, but rather confusing: it used two sets with strings with
trivial_hash_ops to store strings used in other hashmaps. Let's add a bunch of
comments to explain what is happening. We also don't need two sets, using just
one saves a bit of memory.

While at it, let's add some debug messages if duplicate user/group names or
uids/gids are present.
2023-07-13 11:12:00 +02:00
Zbigniew Jędrzejewski-Szmek 09ace4c76d sd-device: simplify code flow
This function was written as if it wanted to do some cleanup after exiting from
the loop, but that never happened.
2023-07-13 11:12:00 +02:00
Zbigniew Jędrzejewski-Szmek 8623dab880 units/systemd-vconsole-setup: suppress error when service is restarted
The service has Type=oneshot, which means that the default value of SuccessExitStatus=0.
When multiple vtcon devices are detected, udev will restart the service after each
one. If this happens quickly enough, the old instance will get SIGTERM while it is
still running:

[    5.357341] (udev-worker)[593]: vtcon1: /usr/lib/udev/rules.d/90-vconsole.rules:12 RUN '/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service
[    5.357439] (udev-worker)[593]: vtcon1: Running command "/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service"
[    5.357485] (udev-worker)[593]: vtcon1: Starting '/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service'
[    5.357537] (udev-worker)[609]: vtcon0: /usr/lib/udev/rules.d/90-vconsole.rules:12 RUN '/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service
[    5.357587] (udev-worker)[609]: vtcon0: Running command "/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service"
[    5.357634] (udev-worker)[609]: vtcon0: Starting '/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service'
...
[    5.680529] systemd[1]: systemd-vconsole-setup.service: Trying to enqueue job systemd-vconsole-setup.service/restart/replace
[    5.680565] systemd[1]: systemd-vconsole-setup.service: Merged into running job, re-running: systemd-vconsole-setup.service/restart as 557
[    5.680600] systemd[1]: systemd-vconsole-setup.service: Enqueued job systemd-vconsole-setup.service/restart as 557
...
[    5.682334] systemd[1]: Received SIGCHLD from PID 744 ((le-setup)).
[    5.682377] systemd[1]: Child 744 ((le-setup)) died (code=killed, status=15/TERM)
[    5.682407] systemd[1]: systemd-vconsole-setup.service: Child 744 belongs to systemd-vconsole-setup.service.
[    5.682436] systemd[1]: systemd-vconsole-setup.service: Main process exited, code=killed, status=15/TERM
[    5.682471] systemd[1]: systemd-vconsole-setup.service: Failed with result 'signal'.
[    5.682518] systemd[1]: systemd-vconsole-setup.service: Service will not restart (manual stop)
[    5.682552] systemd[1]: systemd-vconsole-setup.service: Changed stop-sigterm -> failed

This is expected and not a problem. Let's treat SIGTERM as success so we don't
get this spurious "failure".
2023-07-13 10:56:52 +02:00
Zbigniew Jędrzejewski-Szmek a8425c53eb core: adjust indentation
One of the two conditionals in the function had different indentation than the
other.
2023-07-13 10:56:52 +02:00
Zbigniew Jędrzejewski-Szmek a0043bfa51 pid1,vconsole-setup: take a lock for the console device
When systemd-firstboot (or any other unit which uses the tty) is started,
systemd will reset the terminal. If systemd-vconsole-setup happens to be
running at that time, it'll error out when it tries to use the vconsole fd and
gets an EIO from ioctl.

e019ea738d was the first fix. It added an
implicit ordering between units using the tty and systemd-vconsole-setup.
(The commit title is wrong. The approach was generalized, but the commit title
wasn't updated.)
Then cea32691c3 was added to restart
systemd-vconsole-setup.service from systemd-firstboot.service. This was OK,
with the ordering in place, systemd-vconsole-setup.service would wait until
systemd-firstboot.service exited. But this wasn't enough, because we want the
key mappings to be loaded immediately after systemd-firstboot writes the
config. 8eb668b9ab implemented that, but actually
reintroduced the original issue. I had to drop the ordering between the two
units because otherwise we'd deadlock, waiting from firstboot for
vconsole-setup which wouldn't start while firstboot was running.
Restarting vconsole-setup.service from systemd-firstboot.service works just
fine, but when vconsole-setup.service is started earlier, it may be interrupted
by systemd-firstboot.service.

To resolve the issue, let's take a lock around the tty device. The reset is
performed after fork, so the (short) delay should not matter too much.

In xopenat_lock() the assert on <path> is dropped so that we can call
xopenat(fd, NULL) to get a copy of the original fd.

Fixes #26908.
2023-07-13 10:47:12 +02:00
Yu Watanabe 8d3c5b39b9 network: use json_append() and json_variant_append_array() 2023-07-13 17:06:47 +09:00
Yu Watanabe c619033f09 hashmap: introduce hashmap_dump_sorted() and friends 2023-07-13 17:06:47 +09:00
Yu Watanabe ddd6875d19 logs-show: use json_variant_append_array() 2023-07-13 17:06:47 +09:00