]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
15 months agoman/systemd-detect-virt: list known CVM technologies 33913/head
Daniel P. Berrangé [Fri, 2 Aug 2024 12:17:56 +0000 (13:17 +0100)] 
man/systemd-detect-virt: list known CVM technologies

Add a section which lists the known confidential virtual machine
technologies.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
15 months agoman/systemd-detect-virt: fix row spanning for VM header
Daniel P. Berrangé [Fri, 2 Aug 2024 12:07:13 +0000 (13:07 +0100)] 
man/systemd-detect-virt: fix row spanning for VM header

This fixes

  commit 9b0688f491674b53ef7a52bdf561a430c53673d6
  Author: Yu Watanabe <watanabe.yu+github@gmail.com>
  Date:   Tue Jan 9 10:52:49 2024 +0900

    virt: add Google Compute Engine support

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
15 months agoconfidential-virt: add detection for s390x target
Daniel P. Berrangé [Fri, 2 Aug 2024 10:03:10 +0000 (11:03 +0100)] 
confidential-virt: add detection for s390x target

The s390x platform provides confidential VMs using the "Secure Execution"
technology, which is also referred to as "Protected Virtualization" or
just "prot virt" in Linux / QEMU.

This can be detected through a simple sysfs attribute.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
15 months agoconfidential-virt: split caching of CVM detection into separate method
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>
15 months agotest: don't use /skipped for subtests
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

15 months agolocalectl: introduce -l/--full option
Yu Watanabe [Fri, 2 Aug 2024 04:56:47 +0000 (13:56 +0900)] 
localectl: introduce -l/--full option

Closes #33906.

15 months agoMerge pull request #33032 from yuwata/sd-device-monitor-low-level-api
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

15 months agoMerge pull request #33876 from dbnicholson/firstboot-root-creds-only
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

15 months agoresolved: don't treat conn reset as packet loss
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.

15 months agotest: add test case for restarting device monitor 33032/head
Yu Watanabe [Thu, 1 Aug 2024 06:46:03 +0000 (15:46 +0900)] 
test: add test case for restarting device monitor

15 months agosd-device-monitor: rename device_monitor_send_device() -> device_monitor_send()
Yu Watanabe [Wed, 31 Jul 2024 05:21:33 +0000 (14:21 +0900)] 
sd-device-monitor: rename device_monitor_send_device() -> device_monitor_send()

15 months agosd-device-monitor: expose low-level functions
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.

15 months agosd-device-monitor: make device_monitor_receive_device() always initialize ret on...
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

15 months agosd-device-monitor: remove device_monitor_disconnect()
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.

15 months agoudev: manage only socket address of device monitor
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.

15 months agosd-device-monitor: introduce device_monitor_get_address()
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.

15 months agosd-device: allow to restart device monitor
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().

15 months agosd-device-monitor: introduce sd_device_monitor_is_running()
Yu Watanabe [Thu, 1 Aug 2024 03:26:44 +0000 (12:26 +0900)] 
sd-device-monitor: introduce sd_device_monitor_is_running()

15 months agosd-device-monitor: bind socket in device_monitor_new_full()
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().

15 months agosd-device-monitor: replace -1 with -EBADF
Yu Watanabe [Wed, 31 Jul 2024 03:23:40 +0000 (12:23 +0900)] 
sd-device-monitor: replace -1 with -EBADF

15 months agotest: modernize test-sd-device-monitor.c
Yu Watanabe [Thu, 1 Aug 2024 04:14:47 +0000 (13:14 +0900)] 
test: modernize test-sd-device-monitor.c

15 months agosocket-util: introduce netlink_socket_get_multicast_groups()
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.

15 months agoMerge pull request #33904 from bluca/os_release_type
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

15 months agoos-release: break RELEASE_TYPE into paragraphs and clarify about rolling stable releases 33904/head
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.

15 months agoos-release: change RELEASE_TYPE value from 'pre-release' to 'development'
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

15 months agoMerge pull request #33893 from yuwata/coverity
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

15 months agoMerge pull request #32988 from AdrianVovk/os-release-prerelease
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=

15 months agoos-release: Introduce experiment RELEASE_TYPE 32988/head
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).

15 months agoos-release: Add RELEASE_TYPE=
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

15 months agoimport: check overflow 33893/head
Yu Watanabe [Thu, 1 Aug 2024 03:03:54 +0000 (12:03 +0900)] 
import: check overflow

Fixes CID#1548022 and CID#1548075.

15 months agotest: use ASSERT_OK_ERRNO() for setenv() and unsetenv()
Yu Watanabe [Thu, 1 Aug 2024 06:58:30 +0000 (15:58 +0900)] 
test: use ASSERT_OK_ERRNO() for setenv() and unsetenv()

15 months agotest: resolve "Unchecked return value" coverity warning
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.

15 months agovmspawn: check overflow earlier
Yu Watanabe [Thu, 1 Aug 2024 02:50:53 +0000 (11:50 +0900)] 
vmspawn: check overflow earlier

Follow-up for 862c68a914ab4561d83875e58e05dcf65cb4a551.
Fixes CID#1550749.

15 months agotest: resolve "Unchecked return value" coverity warning
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.

15 months agotest: resolve "Unchecked return value" coverity warning
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.

15 months agotest: attempt to install sshd-session from multiple places
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.

15 months agobuild(deps): bump github/codeql-action from 3.25.11 to 3.25.15
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>
15 months agobuild(deps): bump meson from 1.4.1 to 1.5.1 in /.github/workflows
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>
15 months agobuild(deps): bump systemd/mkosi
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>
15 months agobuild(deps): bump redhat-plumbers-in-action/differential-shellcheck
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>
15 months agobuild(deps): bump ossf/scorecard-action from 2.3.3 to 2.4.0
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>
15 months agojournalctl: fix compile error on i386
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.

15 months agoMerge pull request #33888 from YHNdnzj/followups
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

15 months agoMerge pull request #32448 from yuwata/journalctl-current-invocation
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

15 months agotest: add test for journalctl --list-invocations and --invocation= 32448/head
Yu Watanabe [Sun, 12 May 2024 07:15:22 +0000 (16:15 +0900)] 
test: add test for journalctl --list-invocations and --invocation=

15 months agojournalctl: add --list-invocations command and -I/--invocation options
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.

15 months agologs-show: extend journal_get_boots() and friends to find invocation IDs
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.

15 months agologs-show: introduce several helper functions
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.

15 months agouse int64_t for index in show_log_ids()
Yu Watanabe [Sat, 22 Jun 2024 08:45:57 +0000 (17:45 +0900)] 
use int64_t for index in show_log_ids()

15 months agojournalctl: split out show_log_ids() from action_list_boots()
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.

15 months agojournalctl: update log messages
Yu Watanabe [Wed, 31 Jul 2024 02:27:28 +0000 (11:27 +0900)] 
journalctl: update log messages

15 months agologs-show: rename BootId -> LogId
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.

15 months agocore/socket: stop hardcoding every service inactive state 33888/head
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.

15 months agocore/cgroup: use UNIT_IS_INACTIVE_OR_FAILED where appropriate
Mike Yuan [Wed, 31 Jul 2024 17:53:53 +0000 (19:53 +0200)] 
core/cgroup: use UNIT_IS_INACTIVE_OR_FAILED where appropriate

15 months agocore/unit: merge use of LOG_CONTEXT_SET_LOG_LEVEL into LOG_CONTEXT_PUSH_UNIT
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().

15 months agocore: clean up ambient capability logging
Mike Yuan [Wed, 31 Jul 2024 16:38:14 +0000 (18:38 +0200)] 
core: clean up ambient capability logging

Follow-up for e0ebc81b2d194206c519375394bd67baa19e67ce

15 months agoMerge pull request #33886 from DaanDeMeyer/autologin
Daan De Meyer [Wed, 31 Jul 2024 18:21:12 +0000 (20:21 +0200)] 
Merge pull request #33886 from DaanDeMeyer/autologin

Two mkosi improvements

15 months agoMerge pull request #33885 from DaanDeMeyer/pidref-kthread
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

15 months agomkosi: Beef up testuser a bit 33886/head
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.

15 months agomkosi: Switch to autologin via credentials
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.

15 months agoMerge pull request #33873 from DaanDeMeyer/rename-creds
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=

15 months agosocket: fix socket activation of stopped services with pinned FD store
Michal Sekletar [Tue, 30 Jul 2024 14:22:03 +0000 (16:22 +0200)] 
socket: fix socket activation of stopped services with pinned FD store

15 months agoMerge pull request #32937 from steelman/github/drop-ambient-caps-executor
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

15 months agounits: Import tty specific credentials for each getty unit 33873/head
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.

15 months agocore: Add support for renaming credentials with ImportCredential=
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.

15 months agoexec-credential: Skip duplicate credentials in load_credential_glob()
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.

15 months agoexec-credential: Log if we skip duplicate credential
Daan De Meyer [Wed, 31 Jul 2024 13:01:40 +0000 (15:01 +0200)] 
exec-credential: Log if we skip duplicate credential

15 months agoDrop EEXIST handling in load_credential_glob()
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.

15 months agoMerge pull request #33884 from DaanDeMeyer/log-context
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

15 months agocgroup-util: Don't try to open pidfd for kernel threads 33885/head
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.

15 months agoMerge pull request #33882 from bluca/efi_proto_fallback_memory
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

15 months agolog: Fix size calculation for number of iovecs 33884/head
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.

15 months agoexecute: Drop log level to unit log level in exec_spawn()
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.

15 months agofirstboot: fix root params with creds and prompting disabled 33876/head
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.

15 months agofirstboot: handle missing root password entries
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.

15 months agoRevert "execute: Call capability_ambient_set_apply even if ambient set is 0" 32937/head
Ł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.

15 months agocore: drop ambient capabilities in systemd-executor
Ł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")
15 months agoman: suggest to enable global IPv6Forwarding= setting to make IPv6 packets forwarded
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.

15 months agofirstboot: create locked and empty root passwords consistently
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.

15 months agotest: extend firstboot testing
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.

15 months agoNEWS: mention that udevadm test and test-builtin are now non-destructive
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.

15 months agonetwork: mention that IPv4 ACD is enabled by default for 169.254.0.0/16
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.

15 months agonetwork: request non-NULL SSID when a wlan interface is configured as station
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.

15 months agoMerge pull request #33878 from yuwata/network-bind-carrier
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

15 months agoMerge pull request #33875 from yuwata/network-link-get-address
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()

15 months agoefi: fix link to legacy EFI handover protocol 33882/head
Luca Boccassi [Wed, 31 Jul 2024 00:46:58 +0000 (01:46 +0100)] 
efi: fix link to legacy EFI handover protocol

15 months agostub: allocate and zero enough space in legacy x86 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

15 months agonetwork: shorten code a bit 33878/head
Yu Watanabe [Tue, 30 Jul 2024 18:55:37 +0000 (03:55 +0900)] 
network: shorten code a bit

15 months agonetwork: call link_handle_bound_by_list() before trying to reconfigure interface
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.

15 months agoRevert "network/ndisc: ignore most fields of RA header when lifetime is zero"
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.

15 months agoFix detection of TDX confidential VM on Azure platform
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>
15 months agotest-network: add test case for preferred source with peer 33875/head
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.

15 months agonetwork: make link_get_address() provide matching address with peer
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.

15 months agonetwork/ipv4acd: manage ACD engines with Address object
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.

15 months agonetwork: do not bring down bound interfaces immediately
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.

15 months agodocument how TimeoutStartSec= affects notify-reload (#33653)
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

15 months agonspawn: remove macvlan interfaces before network namespace died
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.

15 months agocgroup-util: Ignore kernel threads in cg_kill_items()
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.

15 months agokernel-install: Try some more initrd variants in 90-loaderentry.install
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.

15 months agokernel-install: Only read cmdline from /proc/cmdline when not in container
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.