Daniel P. Berrangé [Fri, 2 Aug 2024 15:26:00 +0000 (16:26 +0100)]
confidential-virt: split caching of CVM detection into separate method
We have different impls of detect_confidential_virtualization per
architecture. The detection is cached in the x86_64 impl, and as we
add support for more targets, we want to use caching for all. It thus
makes sense to split caching out into an architecture independent
method.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Frantisek Sumsal [Fri, 2 Aug 2024 08:13:47 +0000 (10:13 +0200)]
test: don't use /skipped for subtests
Since, at least the old framework, checks for the presence of the file
at the end and marks the whole test as skipped if it exists.
Resolves: systemd/systemd-centos-ci#728
Yu Watanabe [Fri, 2 Aug 2024 04:56:47 +0000 (13:56 +0900)]
localectl: introduce -l/--full option
Closes #33906.
Yu Watanabe [Fri, 2 Aug 2024 03:41:53 +0000 (12:41 +0900)]
Merge pull request #33032 from yuwata/sd-device-monitor-low-level-api
sd-device-monitor: expose low-level functions
Yu Watanabe [Fri, 2 Aug 2024 02:37:05 +0000 (11:37 +0900)]
Merge pull request #33876 from dbnicholson/firstboot-root-creds-only
firstboot: fix root params with creds and prompting disabled
Ronan Pigott [Thu, 1 Aug 2024 17:59:12 +0000 (10:59 -0700)]
resolved: don't treat conn reset as packet loss
tcp reset / icmp port-unreachable are markedly different conditions than
packet loss. It doesn't make much sense to retry in this case. It's
actually not clear if there is any benefit at all retrying tcp
connections, which were presumably already retried as necessary by the
tcp stack.
Yu Watanabe [Thu, 1 Aug 2024 06:46:03 +0000 (15:46 +0900)]
test: add test case for restarting device monitor
Yu Watanabe [Wed, 31 Jul 2024 05:21:33 +0000 (14:21 +0900)]
sd-device-monitor: rename device_monitor_send_device() -> device_monitor_send()
Yu Watanabe [Mon, 27 May 2024 03:22:30 +0000 (12:22 +0900)]
sd-device-monitor: expose low-level functions
To make it work without sd-event.
Prompted by recent chat:
> Hey all!
> reading man libudev, it says to use sd-device instead now. I've read that
> APIs header file and it seems it no longer has an equivalent to libudev's
> udev_monitor_get_fd, which AFAICT means I have to use sd-event to watch
> for events I'm interested in. I know I can "embed" sd-event in other event
> loops I might already have, but that seems overkill when I'm only interested
> in this one type of event and don't need sd-event for anything else.
Yu Watanabe [Fri, 2 Aug 2024 02:20:43 +0000 (11:20 +0900)]
sd-device-monitor: make device_monitor_receive_device() always initialize ret on success
Yu Watanabe [Mon, 27 May 2024 03:12:50 +0000 (12:12 +0900)]
sd-device-monitor: remove device_monitor_disconnect()
It is not necessary to be exposed anymore.
Yu Watanabe [Mon, 27 May 2024 03:05:24 +0000 (12:05 +0900)]
udev: manage only socket address of device monitor
Previously, the main process of systemd-udevd manages worker process
with their sd_device_monitor object to save the destination address.
Let's save only destination address, and drop worker's sd_device_monitor
object.
Yu Watanabe [Mon, 27 May 2024 03:31:33 +0000 (12:31 +0900)]
sd-device-monitor: introduce device_monitor_get_address()
Currently it is used internally, but will be used later at other places.
Yu Watanabe [Mon, 27 May 2024 02:08:33 +0000 (11:08 +0900)]
sd-device: allow to restart device monitor
Previously, sd_device_monitor_stop() closes socket, hence we cannot
restart monitoring unless recreating sd_device_monitor object.
Let's allow to restart monitor by sd_device_monitor_start().
Yu Watanabe [Thu, 1 Aug 2024 03:26:44 +0000 (12:26 +0900)]
sd-device-monitor: introduce sd_device_monitor_is_running()
Yu Watanabe [Mon, 27 May 2024 01:43:54 +0000 (10:43 +0900)]
sd-device-monitor: bind socket in device_monitor_new_full()
Previously, device_monitor_enable_receiving() does
- update filter,
- bind socket.
But, binding socket can be done in when the socket is opened.
Let's remove device_monitor_enable_receiving() and bind the socket in
device_monitor_new_full().
Yu Watanabe [Wed, 31 Jul 2024 03:23:40 +0000 (12:23 +0900)]
sd-device-monitor: replace -1 with -EBADF
Yu Watanabe [Thu, 1 Aug 2024 04:14:47 +0000 (13:14 +0900)]
test: modernize test-sd-device-monitor.c
Yu Watanabe [Wed, 31 Jul 2024 04:21:08 +0000 (13:21 +0900)]
socket-util: introduce netlink_socket_get_multicast_groups()
No functional change. Preparation for later commits.
Luca Boccassi [Thu, 1 Aug 2024 21:29:37 +0000 (23:29 +0200)]
Merge pull request #33904 from bluca/os_release_type
os-release: change RELEASE_TYPE value from 'pre-release' to 'development' and break into paragraphs
Luca Boccassi [Thu, 1 Aug 2024 19:44:11 +0000 (20:44 +0100)]
os-release: break RELEASE_TYPE into paragraphs and clarify about rolling stable releases
Arch and Tumbleweed do not do EOLs but are still stable, so clarify the paragraph.
Also break the entry in paragraphs, to make it more readable when rendered.
Luca Boccassi [Thu, 1 Aug 2024 19:35:57 +0000 (20:35 +0100)]
os-release: change RELEASE_TYPE value from 'pre-release' to 'development'
The point was made on https://lists.debian.org/debian-ctte/2024/08/msg00005.html
that 'pre-release sounds' like an RC candidate, ie, something that will change
very slightly in the released version. But this is not necessarily the case
for example at the beginnig of a Fedora Rawhide or Debian Testing release cycle,
so change it to a more generic 'development'
Follow-up for
7102dc52e6b03248da1f01b3a8a4b83c6d7a1316
Luca Boccassi [Thu, 1 Aug 2024 18:33:53 +0000 (20:33 +0200)]
Merge pull request #33893 from yuwata/coverity
tree-wide: resolve several issues found by coverity
Luca Boccassi [Thu, 1 Aug 2024 16:56:15 +0000 (18:56 +0200)]
Merge pull request #32988 from AdrianVovk/os-release-prerelease
os-release: Add RELEASE_TYPE=
Adrian Vovk [Fri, 24 May 2024 03:39:52 +0000 (23:39 -0400)]
os-release: Introduce experiment RELEASE_TYPE
This is for experimental builds of the OS made to test some specific WIP
feature.
For example, let's say the distro in question is Asahi Linux and Apple
just released the M3 SoC. The Asahi developers will start porting to the
M3, and will quickly generate builds of Asahi Linux that can technically
boot but aren't ready for any kind of daily use. These images are marked
as experimental, and can be shared among the developers. If a user
somehow stumbles upon one of these images and tries to install it,
they'll be warned that they're about to install an experimental Apple M3
port of Asahi Linux. Eventually, once the Asahi developers think that
their M3 port is ready for a wider audience, they can merge it into the
mainline Asahi repos, where it will be distributed through the usual
nightly CI builds (where RELEASE_TYPE=pre-release; M3 support is no
longer experimental).
Adrian Vovk [Wed, 22 May 2024 22:06:54 +0000 (18:06 -0400)]
os-release: Add RELEASE_TYPE=
This will allow GUIs to customize their behavior a little based on the
type of release.
For example, an OS installer may display a warning/disclaimer if
RELEASE_TYPE=prerelease. The software updates app might be a bit more
insistent about upgrading to the next major release if
RELEASE_TYPE=stable than if RELEASE_TYPE=lts
Yu Watanabe [Thu, 1 Aug 2024 03:03:54 +0000 (12:03 +0900)]
import: check overflow
Fixes CID#
1548022 and CID#
1548075.
Yu Watanabe [Thu, 1 Aug 2024 06:58:30 +0000 (15:58 +0900)]
test: use ASSERT_OK_ERRNO() for setenv() and unsetenv()
Yu Watanabe [Thu, 1 Aug 2024 02:57:43 +0000 (11:57 +0900)]
test: resolve "Unchecked return value" coverity warning
Follow-up for
c8210d98a4b64af6fadb1cb765c0451758af1303.
Fixes CID#
1548920.
Yu Watanabe [Thu, 1 Aug 2024 02:50:53 +0000 (11:50 +0900)]
vmspawn: check overflow earlier
Follow-up for
862c68a914ab4561d83875e58e05dcf65cb4a551.
Fixes CID#
1550749.
Yu Watanabe [Thu, 1 Aug 2024 02:47:33 +0000 (11:47 +0900)]
test: resolve "Unchecked return value" coverity warning
Follow-up for
5fef5552a658130f00dc97d0a1003a6a49f3ca96.
Fixes CID#
1558540.
Yu Watanabe [Thu, 1 Aug 2024 02:44:51 +0000 (11:44 +0900)]
test: resolve "Unchecked return value" coverity warning
Follow-up for
8c57700b6b61318594aaa757dff5e34219c0281d.
Fixes CID#
1558539.
Frantisek Sumsal [Thu, 1 Aug 2024 11:14:52 +0000 (13:14 +0200)]
test: attempt to install sshd-session from multiple places
On Fedora the sshd-session binary is under /usr/libexec/openssh/ so
cover this path as well in the old framework.
Follow-up for
aaa7b36bd15ca3a96a1e11a557482b0bc59c769f.
dependabot[bot] [Thu, 1 Aug 2024 09:02:04 +0000 (09:02 +0000)]
build(deps): bump github/codeql-action from 3.25.11 to 3.25.15
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.11 to 3.25.15.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/
b611370bb5703a7efb587f9d136a52ea24c5c38c...
afb54ba388a7dca6ecae48f608c4ff05ff4cc77a)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Thu, 1 Aug 2024 09:15:29 +0000 (09:15 +0000)]
build(deps): bump meson from 1.4.1 to 1.5.1 in /.github/workflows
Bumps [meson](https://github.com/mesonbuild/meson) from 1.4.1 to 1.5.1.
- [Release notes](https://github.com/mesonbuild/meson/releases)
- [Commits](https://github.com/mesonbuild/meson/compare/1.4.1...1.5.1)
---
updated-dependencies:
- dependency-name: meson
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Thu, 1 Aug 2024 09:02:16 +0000 (09:02 +0000)]
build(deps): bump systemd/mkosi
Bumps [systemd/mkosi](https://github.com/systemd/mkosi) from
4eba736412c702bbbe2c6d4a58a92fa977219249 to
63fc1fde5b1aac1abf07ac499068c2b62263dafb.
- [Release notes](https://github.com/systemd/mkosi/releases)
- [Changelog](https://github.com/systemd/mkosi/blob/main/NEWS.md)
- [Commits](https://github.com/systemd/mkosi/compare/
4eba736412c702bbbe2c6d4a58a92fa977219249...
63fc1fde5b1aac1abf07ac499068c2b62263dafb)
---
updated-dependencies:
- dependency-name: systemd/mkosi
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Thu, 1 Aug 2024 09:02:10 +0000 (09:02 +0000)]
build(deps): bump redhat-plumbers-in-action/differential-shellcheck
Bumps [redhat-plumbers-in-action/differential-shellcheck](https://github.com/redhat-plumbers-in-action/differential-shellcheck) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/redhat-plumbers-in-action/differential-shellcheck/releases)
- [Changelog](https://github.com/redhat-plumbers-in-action/differential-shellcheck/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/redhat-plumbers-in-action/differential-shellcheck/compare/
60c9f2b924a9c5a2ddbb25e7b23e8e11b56faab9...
cc6721c45a8800cc666de45493545a07a638d121)
---
updated-dependencies:
- dependency-name: redhat-plumbers-in-action/differential-shellcheck
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Thu, 1 Aug 2024 09:02:08 +0000 (09:02 +0000)]
build(deps): bump ossf/scorecard-action from 2.3.3 to 2.4.0
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.3.3 to 2.4.0.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/
dc50aa9510b46c811795eb24b2f1ba02a914e534...
62b2cac7ed8198b15735ed49ab1e5cf35480ba46)
---
updated-dependencies:
- dependency-name: ossf/scorecard-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Yu Watanabe [Thu, 1 Aug 2024 02:40:20 +0000 (11:40 +0900)]
journalctl: fix compile error on i386
Fixes the following error:
===
In file included from ../src/basic/macro.h:13,
from ../src/basic/dirent-util.h:8,
from ../src/journal/journalctl-misc.c:3:
../src/journal/journalctl-misc.c: In function 'show_log_ids':
../src/journal/journalctl-misc.c:107:22: error: comparison is always true due to limited range of data type [-Werror=type-limits]
107 | assert(n_ids < INT64_MAX);
| ^
../src/fundamental/macro-fundamental.h:70:44: note: in definition of macro '_unlikely_'
70 | #define _unlikely_(x) (__builtin_expect(!!(x), 0))
| ^
../src/basic/macro.h:165:22: note: in expansion of macro 'assert_message_se'
165 | #define assert(expr) assert_message_se(expr, #expr)
| ^~~~~~~~~~~~~~~~~
../src/journal/journalctl-misc.c:107:9: note: in expansion of macro 'assert'
107 | assert(n_ids < INT64_MAX);
| ^~~~~~
cc1: all warnings being treated as errors
===
Follow-up for
0a8c1f6212a874b542a57ed5416e7d3575d2da93.
Yu Watanabe [Thu, 1 Aug 2024 02:35:13 +0000 (11:35 +0900)]
Merge pull request #33888 from YHNdnzj/followups
core: a few follow-ups for recent PRs
Yu Watanabe [Thu, 1 Aug 2024 02:33:20 +0000 (11:33 +0900)]
Merge pull request #32448 from yuwata/journalctl-current-invocation
journalctl: introduce --list-invocations, -I, --invocation= options
Yu Watanabe [Sun, 12 May 2024 07:15:22 +0000 (16:15 +0900)]
test: add test for journalctl --list-invocations and --invocation=
Yu Watanabe [Thu, 25 Apr 2024 04:38:24 +0000 (13:38 +0900)]
journalctl: add --list-invocations command and -I/--invocation options
The --list-invocations command is similar to --list-boots, but shows
invocation IDs of specified unit. This should be useful when showing
a specific invocation of a unit.
The --invocation option is similar to --boot, but takes a invocation ID
or an offset. The -I option is equivalent to --invocation=0.
Yu Watanabe [Thu, 25 Apr 2024 06:28:19 +0000 (15:28 +0900)]
logs-show: extend journal_get_boots() and friends to find invocation IDs
Currently the extended features are not used, but will be used later.
Yu Watanabe [Thu, 25 Apr 2024 06:27:43 +0000 (15:27 +0900)]
logs-show: introduce several helper functions
Currently these are not used, but will be used later.
Yu Watanabe [Sat, 22 Jun 2024 08:45:57 +0000 (17:45 +0900)]
use int64_t for index in show_log_ids()
Yu Watanabe [Thu, 25 Apr 2024 04:15:49 +0000 (13:15 +0900)]
journalctl: split out show_log_ids() from action_list_boots()
No functional change, just refactoring and prepraration for later change.
Yu Watanabe [Wed, 31 Jul 2024 02:27:28 +0000 (11:27 +0900)]
journalctl: update log messages
Yu Watanabe [Thu, 25 Apr 2024 01:10:39 +0000 (10:10 +0900)]
logs-show: rename BootId -> LogId
The struct itself is generic, and can be used for other ID.
Let's rename it to more generic one.
No functional change, just refactoring and preparation for later
commits.
Mike Yuan [Wed, 31 Jul 2024 18:02:05 +0000 (20:02 +0200)]
core/socket: stop hardcoding every service inactive state
History (
c068650fcfc69aebb35be1c71f35dbc25b22030a,
941a12dcba57f6673230a9c413738c51374d2998) has proven
that we're not good at keeping socket and service states
in sync. Instead, let's query the high-level unit_active_state()
first, and only hardcode the two special auto-restart
service states.
Additionally, allow returning to listening state on SERVICE_CLEANING.
Mike Yuan [Wed, 31 Jul 2024 17:53:53 +0000 (19:53 +0200)]
core/cgroup: use UNIT_IS_INACTIVE_OR_FAILED where appropriate
Mike Yuan [Wed, 31 Jul 2024 17:51:23 +0000 (19:51 +0200)]
core/unit: merge use of LOG_CONTEXT_SET_LOG_LEVEL into LOG_CONTEXT_PUSH_UNIT
No functional change, since LOG_CONTEXT_PUSH_UNIT is only used
in exec_spawn().
Mike Yuan [Wed, 31 Jul 2024 16:38:14 +0000 (18:38 +0200)]
core: clean up ambient capability logging
Follow-up for
e0ebc81b2d194206c519375394bd67baa19e67ce
Daan De Meyer [Wed, 31 Jul 2024 18:21:12 +0000 (20:21 +0200)]
Merge pull request #33886 from DaanDeMeyer/autologin
Two mkosi improvements
Daan De Meyer [Wed, 31 Jul 2024 17:07:35 +0000 (19:07 +0200)]
Merge pull request #33885 from DaanDeMeyer/pidref-kthread
Two pidfd fixes
Daan De Meyer [Wed, 31 Jul 2024 15:42:56 +0000 (17:42 +0200)]
mkosi: Beef up testuser a bit
Give it a password and add it to some common groups.
Daan De Meyer [Wed, 31 Jul 2024 15:38:12 +0000 (17:38 +0200)]
mkosi: Switch to autologin via credentials
Let's use the newly added credentials to only enable autologin for
/dev/console (systemd-nspawn) and /dev/hvc0 (qemu) instead of enabling
autologin for every tty.
Daan De Meyer [Wed, 31 Jul 2024 15:35:58 +0000 (17:35 +0200)]
Merge pull request #33873 from DaanDeMeyer/rename-creds
core: Add support for renaming credentials with ImportCredential=
Michal Sekletar [Tue, 30 Jul 2024 14:22:03 +0000 (16:22 +0200)]
socket: fix socket activation of stopped services with pinned FD store
Luca Boccassi [Wed, 31 Jul 2024 14:11:30 +0000 (16:11 +0200)]
Merge pull request #32937 from steelman/github/drop-ambient-caps-executor
core: drop ambient capabilities in systemd-executor
Daan De Meyer [Tue, 30 Jul 2024 14:22:34 +0000 (16:22 +0200)]
units: Import tty specific credentials for each getty unit
As explained in the previous commit, this allows us to configure
agetty and login for individual ttys instead of globally.
Daan De Meyer [Tue, 30 Jul 2024 14:16:26 +0000 (16:16 +0200)]
core: Add support for renaming credentials with ImportCredential=
This allows for "per-instance" credentials for units. The use case
is best explained with an example. Currently all our getty units
have the following stanzas in their unit file:
"""
ImportCredential=agetty.*
ImportCredential=login.*
"""
This means that setting agetty.autologin=root as a system credential
will make every instance of our all our getty units autologin as the
root user. This prevents us from doing autologin on /dev/hvc0 while
still requiring manual login on all other ttys.
To solve the issue, we introduce support for renaming credentials with
ImportCredential=. This will allow us to add the following to e.g.
serial-getty@.service:
"""
ImportCredential=tty.serial.%I.agetty.*:agetty.
ImportCredential=tty.serial.%I.login.*:login.
"""
which for serial-getty@hvc0.service will make the service manager read
all credentials of the form "tty.serial.hvc0.agetty.xxx" and pass them
to the service in the form "agetty.xxx" (same goes for login). We can
apply the same to each of the getty units to allow setting agetty and
login credentials for individual ttys instead of globally.
Daan De Meyer [Wed, 31 Jul 2024 13:02:07 +0000 (15:02 +0200)]
exec-credential: Skip duplicate credentials in load_credential_glob()
We document that when multiple credentials of the same name are found,
we use the first one found so let's actually implement that behavior.
Daan De Meyer [Wed, 31 Jul 2024 13:01:40 +0000 (15:01 +0200)]
exec-credential: Log if we skip duplicate credential
Daan De Meyer [Wed, 31 Jul 2024 13:21:17 +0000 (15:21 +0200)]
Drop EEXIST handling in load_credential_glob()
Credentials are written to a temporary file and renamed to the
destination with renameat() which will replace existing files so
EEXIST should not happen so drop the handling for EEXIST.
Daan De Meyer [Wed, 31 Jul 2024 12:23:08 +0000 (14:23 +0200)]
Merge pull request #33884 from DaanDeMeyer/log-context
log: Fix size calculation for number of iovecs
Daan De Meyer [Wed, 31 Jul 2024 11:38:50 +0000 (13:38 +0200)]
cgroup-util: Don't try to open pidfd for kernel threads
The kernel might start returning -EINVAL when trying to open pidfd's
for kernel threads so let's not try to open pidfd's for kernel threads.
Daan De Meyer [Wed, 31 Jul 2024 11:46:41 +0000 (13:46 +0200)]
Merge pull request #33882 from bluca/efi_proto_fallback_memory
stub: allocate and zero enough space in legacy x86 handover protocol
Daan De Meyer [Wed, 31 Jul 2024 09:39:04 +0000 (11:39 +0200)]
log: Fix size calculation for number of iovecs
Each log context field can expand to up to three iovecs (key, value
and newline) so let's fix the size calculation to take this into
account.
Daan De Meyer [Wed, 31 Jul 2024 11:11:51 +0000 (13:11 +0200)]
execute: Drop log level to unit log level in exec_spawn()
All messages logged from exec_spawn() are attributed to the unit
and as such we should set the log level to the unit's max log level
for the duration of the function.
Dan Nicholson [Tue, 30 Jul 2024 13:37:40 +0000 (07:37 -0600)]
firstboot: fix root params with creds and prompting disabled
Remove an early return that prevents --prompt-root-password or
--prompt-root-shell and systemd.firstboot=off using credentials. In that case,
arg_prompt_root_password and arg_prompt_root_shell will be false, but the
prompt helpers still need to be called to read the credentials. Furthermore, if
only the root shell has been set, don't overwrite the root password.
Dan Nicholson [Tue, 30 Jul 2024 19:42:26 +0000 (13:42 -0600)]
firstboot: handle missing root password entries
If /etc/passwd and/or /etc/shadow exist but don't have an existing root entry,
one needs to be added. Previously this only worked if the files didn't exist.
Łukasz Stelmach [Tue, 28 May 2024 14:56:03 +0000 (16:56 +0200)]
Revert "execute: Call capability_ambient_set_apply even if ambient set is 0"
With ambient capabilities being dropped at the start of process managers
(both system and user) as well as systemd-executor it isn't necessary
to drop them here. Moreover, at this point also the inheritable set can
be preserved. This makes it possible to assign a user session manager
inheritable capabilities which combined with file capabilites (ei sets)
of service executables enable running user services with capabilities
but only when started by the manager.
This reverts commit
943800f4e7728feb2416dd57b8c296614497b94f.
Łukasz Stelmach [Mon, 20 May 2024 14:51:55 +0000 (16:51 +0200)]
core: drop ambient capabilities in systemd-executor
Since the commit
963b6b906e ("core: drop ambient capabilities in
user manager") systemd running as the session manager has dropped ambient
capabilities retaining other sets allowing user services to be started
with elevated capabilities. This, worked fine until the introduction of
sd-executor. For a non-root process to be started with elevated
capabilities by a non-root parent it either needs file capabilities or
ambient capabilities in the parent process. Thus, systemd needs to allow
sd-executor to inherit its ambient capabilities and sd-executor should
drop them as systemd did before.
The ambient set is managed for both system and session managers, but
with the default set for PID#1 being empty, this code does not affect
operation of PID#1.
Fixes:
bb5232b6a3 ("core: add systemd-executor binary")
Yu Watanabe [Sun, 23 Jun 2024 20:03:58 +0000 (05:03 +0900)]
man: suggest to enable global IPv6Forwarding= setting to make IPv6 packets forwarded
Closes #33414.
Dan Nicholson [Tue, 30 Jul 2024 17:11:11 +0000 (11:11 -0600)]
firstboot: create locked and empty root passwords consistently
Although locked and empty passwords in /etc/passwd are treated the same, in all
other cases the entry is configured to read the password from /etc/shadow.
Dan Nicholson [Wed, 31 Jul 2024 00:20:13 +0000 (18:20 -0600)]
test: extend firstboot testing
Several features were not being tested or weren't being evaluated thoroughly.
Yu Watanabe [Tue, 30 Jul 2024 22:31:21 +0000 (07:31 +0900)]
NEWS: mention that udevadm test and test-builtin are now non-destructive
Follow-up for
089bef66316e5bdc91b9984148e5a6455449c1da.
Prompted by https://github.com/systemd/systemd/issues/33619#issuecomment-
2257576579.
Yu Watanabe [Tue, 30 Jul 2024 22:21:09 +0000 (07:21 +0900)]
network: mention that IPv4 ACD is enabled by default for 169.254.0.0/16
Prompted by #33824.
Yu Watanabe [Tue, 30 Jul 2024 21:49:32 +0000 (06:49 +0900)]
network: request non-NULL SSID when a wlan interface is configured as station
To avoid conflicts with user .network file for the wlan interface with Bond=.
See https://github.com/systemd/systemd/issues/19832#issuecomment-
857661200.
Yu Watanabe [Wed, 31 Jul 2024 01:05:43 +0000 (10:05 +0900)]
Merge pull request #33878 from yuwata/network-bind-carrier
network: several cleanups for BindCarrier= setting
Yu Watanabe [Wed, 31 Jul 2024 01:05:11 +0000 (10:05 +0900)]
Merge pull request #33875 from yuwata/network-link-get-address
network: several fixlets related to link_get_address()
Luca Boccassi [Wed, 31 Jul 2024 00:46:58 +0000 (01:46 +0100)]
efi: fix link to legacy EFI handover protocol
Luca Boccassi [Wed, 31 Jul 2024 00:45:06 +0000 (01:45 +0100)]
stub: allocate and zero enough space in legacy x86 handover protocol
A PE image's memory footprint might be larger than its file size due
to uninitialized memory sections. Normally all PE headers should be
parsed to check the actual required size, but the legacy EFI handover
protocol is only used for x86 Linux bzImages, so we know only the last
section will require extra memory. Use SizeOfImage from the PE header
and if it is larger than the file size, allocate and zero extra memory
before using it.
Fixes https://github.com/systemd/systemd/issues/33816
Yu Watanabe [Tue, 30 Jul 2024 18:55:37 +0000 (03:55 +0900)]
network: shorten code a bit
Yu Watanabe [Tue, 30 Jul 2024 18:50:55 +0000 (03:50 +0900)]
network: call link_handle_bound_by_list() before trying to reconfigure interface
Otherwise, when an interface gained its carrier, the interface may not
have matching .network file yet, then link_reconfigure_impl() returns
zero, and link_handle_bound_by_list() is skipped.
Fixes #33837.
Ivan Shapovalov [Sun, 16 Jun 2024 08:46:34 +0000 (10:46 +0200)]
Revert "network/ndisc: ignore most fields of RA header when lifetime is zero"
This reverts commit
ffef01acddcac27caaef02f7f28bff03d7799e5e.
Similar to
2d393b1b6d8 ("network: IPv6 Compliance: Router Advertisement
Processing, Reachable Time [v6LC.2.2.15]"),
Extract from: https://www.ietf.org/rfc/rfc4861.html#section-4.2, p.21,
first paragraph:
The Router Lifetime applies only to
the router's usefulness as a default router; it
does not apply to information contained in other
message fields or options.
So it does not make sense to prevent DHCPv6 when Router Lifetime is 0.
Fixes #33357.
Daniel P. Berrangé [Tue, 30 Jul 2024 09:51:21 +0000 (10:51 +0100)]
Fix detection of TDX confidential VM on Azure platform
The original CVM detection logic for TDX assumes that the guest can see
the standard TDX CPUID leaf. This was true in Azure when this code was
originally written, however, current Azure now blocks that leaf in the
paravisor. Instead it is required to use the same Azure specific CPUID
leaf that is used for SEV-SNP detection, which reports the VM isolation
type.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Yu Watanabe [Tue, 30 Jul 2024 16:24:00 +0000 (01:24 +0900)]
test-network: add test case for preferred source with peer
For issue #31950.
Yu Watanabe [Tue, 30 Jul 2024 15:59:28 +0000 (00:59 +0900)]
network: make link_get_address() provide matching address with peer
As all callers do not care if the address has peer address.
This also drops prefixlen argument as it is always zero.
Fixes a bug introduced by
42f8b6a80878e688b821adfb315c0a1f0a7076ce.
Fixes #31950.
Yu Watanabe [Tue, 30 Jul 2024 15:25:43 +0000 (00:25 +0900)]
network/ipv4acd: manage ACD engines with Address object
IPv4 addresses are managed with local and peer addresses and prefix
length. So, potentially, the same address with different prefix length
can be assigned on a link, e.g. 192.168.0.1/24 and 192.168.0.1/26.
If one of the address is configured with ACD but the other is not,
then previously ACD might be unexpectedly disabled or enabled on them,
as we managed ACD engines with only local addresses.
This makes ACD engines managed with the corresponding Address objects.
Yu Watanabe [Tue, 30 Jul 2024 18:04:04 +0000 (03:04 +0900)]
network: do not bring down bound interfaces immediately
Even if a timespan specified to IgnoreCarrierLoss= for an interface,
when the carrier of the interface lost, bound interfaces might be bring
down immediately.
Let's also postpone bringing down bound interfaces with the specified
timespan.
Arian van Putten [Tue, 30 Jul 2024 11:35:52 +0000 (13:35 +0200)]
document how TimeoutStartSec= affects notify-reload (#33653)
* document how TimeoutStartSec= affects notify-reload
Yu Watanabe [Tue, 30 Jul 2024 05:35:33 +0000 (14:35 +0900)]
nspawn: remove macvlan interfaces before network namespace died
This is similar to what we do for veth interfaces in remove_veth_links().
When a container rebooted, macvlan interfaces created by the previous
boot may still exist in the kernel, and that causes -EADDRINUSE after
reboot.
Hopefully fixes #680.
Daan De Meyer [Tue, 30 Jul 2024 09:53:32 +0000 (11:53 +0200)]
cgroup-util: Ignore kernel threads in cg_kill_items()
Similar to the implementation of cgroup.kill in the kernel, let's
skip kernel threads in cg_kill_items() as trying to kill kernel
threads as an unprivileged process will fail with EPERM and doesn't
do anything when running privileged.
Daan De Meyer [Mon, 29 Jul 2024 13:41:51 +0000 (15:41 +0200)]
kernel-install: Try some more initrd variants in 90-loaderentry.install
On CentOS/Fedora, dracut is configured to write the initrd to
/boot/initramfs-$KERNEL_VERSION...img so let's check for that as well
if no initrds were supplied.
Daan De Meyer [Mon, 29 Jul 2024 15:13:28 +0000 (17:13 +0200)]
kernel-install: Only read cmdline from /proc/cmdline when not in container
If we're running from within a container, we're very likely not going
to want to use the kernel command line from /proc/cmdline, so let's add
a check to see if we're running from a container to decide whether we'll
use the kernel command line from /proc/cmdline.
Daan De Meyer [Mon, 29 Jul 2024 13:40:48 +0000 (15:40 +0200)]
Merge pull request #33857 from DaanDeMeyer/mkosi
Two small improvements
Daan De Meyer [Mon, 29 Jul 2024 11:42:28 +0000 (13:42 +0200)]
docs: Simplify hacking instructions a bit
We enable RuntimeBuildSources=yes by default so let's drop it from
the documentation.
Daan De Meyer [Mon, 29 Jul 2024 11:40:42 +0000 (13:40 +0200)]
test: Don't mount build sources into image when running non-interactively