]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 years agotest-network: add a testcase to enter unmanaged state on reconfiguring 19901/head
Yu Watanabe [Tue, 15 Jun 2021 02:57:40 +0000 (11:57 +0900)] 
test-network: add a testcase to enter unmanaged state on reconfiguring

4 years agonetwork: drop configurations in the previous .network file when entering unmanaged...
Yu Watanabe [Sun, 13 Jun 2021 21:58:06 +0000 (06:58 +0900)] 
network: drop configurations in the previous .network file when entering unmanaged state

When reconfiguring an interface and it will enter unmanaged state,
let's drop configurations from the previously assigned .network file.

4 years agonetwork: do not drop foreign configs for loopback and critical interfaces on carrier...
Yu Watanabe [Sun, 13 Jun 2021 22:13:58 +0000 (07:13 +0900)] 
network: do not drop foreign configs for loopback and critical interfaces on carrier lost

4 years agonetwork: do not drop foreign configs based on the previous .network file
Yu Watanabe [Sun, 13 Jun 2021 22:04:18 +0000 (07:04 +0900)] 
network: do not drop foreign configs based on the previous .network file

`link_drop_foreign_config()` will be called later in link_configure().

4 years agonetwork: start/stop LLDP client on carrier gained/lost
Yu Watanabe [Sat, 12 Jun 2021 03:26:37 +0000 (12:26 +0900)] 
network: start/stop LLDP client on carrier gained/lost

Then, link_acquire_dynamic_conf() matches link_stop_engines().
Previously, LLDP client is started on interface is up, and stopped
on both down and carrier loss.

4 years agonetwork: reconfigure link after coming back from sleep
Yu Watanabe [Sat, 12 Jun 2021 03:01:42 +0000 (12:01 +0900)] 
network: reconfigure link after coming back from sleep

Previously, link was reconfigured with `link_carrier_reset()`, but it
just re-request to configure static addresses, routes, etc, and restart
engines (e.g. DHCP client).
However, after coming back from sleep, several link information may be
changed, especially the wifi access point may be different. So, we may
need to reconfigure the interface.

4 years agoUpdate traditional Chinese Translation
Tianlu Shao [Tue, 10 Aug 2021 05:21:51 +0000 (13:21 +0800)] 
Update traditional Chinese Translation

Fix the wrong translation and fill in the new translation.

4 years agohwdb: Add Lenovo Thinkpad P14s Gen1/2 rule
svonohr [Mon, 9 Aug 2021 16:35:07 +0000 (18:35 +0200)] 
hwdb: Add Lenovo Thinkpad P14s Gen1/2 rule

4 years agotest: use a correct kernel binary on ppc64le machines
Frantisek Sumsal [Mon, 9 Aug 2021 12:32:43 +0000 (14:32 +0200)] 
test: use a correct kernel binary on ppc64le machines

Ubuntu calls the kernel binary as `vmlinux-*`, but RHEL/CentOS uses
the "standard" `vmlinuz-` prefix.

Follow-up to eaa602cb14217f2623c9c8c44b6f3012dc4d0b24.

4 years agotimesync: add option to periodically save time
Dimitry Ishenko [Wed, 7 Jul 2021 17:54:47 +0000 (13:54 -0400)] 
timesync: add option to periodically save time

4 years agopid1: add support for cgroup.kill
Albert Brox [Tue, 20 Jul 2021 22:24:20 +0000 (18:24 -0400)] 
pid1: add support for cgroup.kill

4 years agoFix the "Failed to open random seed ..." message.
longpanda [Thu, 5 Aug 2021 01:31:44 +0000 (09:31 +0800)] 
Fix the "Failed to open random seed ..." message.

When boot ArchLinux from Ventoy, it always print `Failed to open random seed file: write protected.`
As Ventoy emulate the ISO file as a read-only CDROM, I didn't test with a real physical CDROM drive, but maybe it also has such problem.
As we use `EFI_FILE_MODE_WRITE`  to open the `loader\random-seed` file, so I think it's better to check the result with both  `EFI_WRITE_PROTECTED` and `EFI_NOT_FOUND`.

4 years agonetwork: use monotonic instead of boot time to handle address creation/update timestamp
Yu Watanabe [Fri, 6 Aug 2021 10:37:16 +0000 (19:37 +0900)] 
network: use monotonic instead of boot time to handle address creation/update timestamp

Follow-up for 25db3aeaf32ba95bad5e765720ebc23c8ef77a99 and 899034ba8167bd16e802cfbea29a9ee85dee5be5.

Fixes another issue in #20244.

4 years agoUpdate 60-autosuspend-fingerprint-reader.hwdb to libfprint-1.92.1
StefanBruens [Fri, 6 Aug 2021 18:56:58 +0000 (20:56 +0200)] 
Update 60-autosuspend-fingerprint-reader.hwdb to libfprint-1.92.1

4 years agoman systemd-sysusers: fix password to passwd
GnunuX [Fri, 6 Aug 2021 18:05:18 +0000 (20:05 +0200)] 
man systemd-sysusers: fix password to passwd

4 years agoMerge pull request #20395 from takaswie/topic/correct-ieee1394-hwdb-entries
Zbigniew Jędrzejewski-Szmek [Mon, 9 Aug 2021 08:12:11 +0000 (10:12 +0200)] 
Merge pull request #20395 from takaswie/topic/correct-ieee1394-hwdb-entries

hwdb: ieee1394-unit-function: correct entries for some models

4 years agoMerge pull request #20399 from mrc0mmand/test-tweaks
Zbigniew Jędrzejewski-Szmek [Mon, 9 Aug 2021 08:06:23 +0000 (10:06 +0200)] 
Merge pull request #20399 from mrc0mmand/test-tweaks

test: yet another fix for ASan detection

4 years agotest: skip a harmless ldd error when installing test libs
Frantisek Sumsal [Sun, 8 Aug 2021 21:47:31 +0000 (23:47 +0200)] 
test: skip a harmless ldd error when installing test libs

Skip a harmless error when running the tests on a system with a significantly
older systemd version (ldd tries to resolve the unprefixed RPATH for libsystemd.so.0,
which is in this case older than the already installed libsystemd.so.0 in $initdir).
The issue is triggered by installing test dependencies in install_missing_libraries().

Spotted on CentOS 8.

```
$ ldd /var/tmp/systemd-test.nZO11F/root/lib/systemd/tests/test-sd-device-thread
/var/tmp/systemd-test.nZO11F/root/lib/systemd/tests/test-sd-device-thread: /lib64/libsystemd.so.0: version `LIBSYSTEMD_240' not found (required by /var/tmp/systemd-test.nZO11F/root/lib/systemd/tests/test-sd-device-thread)
        linux-vdso64.so.1 (0x00007fffb79d0000)
        libclang_rt.asan-powerpc64le.so => /usr/lib64/clang/11.0.0/lib/linux/libclang_rt.asan-powerpc64le.so (0x00007fffb6ef0000)
        libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fffb6d20000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fffb6cd0000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fffb6ab0000)

$ LD_LIBRARY_PATH=/var/tmp/systemd-test.nZO11F/root/lib64/ ldd /var/tmp/systemd-test.nZO11F/root/lib/systemd/tests/test-sd-device-thread
        linux-vdso64.so.1 (0x00007fffaba80000)
        libclang_rt.asan-powerpc64le.so => /usr/lib64/clang/11.0.0/lib/linux/libclang_rt.asan-powerpc64le.so (0x00007fffaafa0000)
        libsystemd.so.0 => /var/tmp/systemd-test.nZO11F/root/lib64/libsystemd.so.0 (0x00007fffaa5f0000)
        libpthread.so.0 => /var/tmp/systemd-test.nZO11F/root/lib64/libpthread.so.0 (0x00007fffaa5a0000)
        libc.so.6 => /var/tmp/systemd-test.nZO11F/root/lib64/libc.so.6 (0x00007fffaa380000)

```

4 years agotest: make busybox TEST-13-only dependency 20399/head
Frantisek Sumsal [Sun, 8 Aug 2021 17:42:25 +0000 (19:42 +0200)] 
test: make busybox TEST-13-only dependency

to make running other tests a bit easier on distributions which don't have
busybox in repositories (CentOS).

4 years agotest: yet another fix for ASan detection
Frantisek Sumsal [Sun, 8 Aug 2021 17:33:10 +0000 (19:33 +0200)] 
test: yet another fix for ASan detection

This time for ppc64le:

```
100737c4: 5d 55 f9 4b  bl      10008d20 <00000024.plt_call.__asan_report_load8>
100737f4: 4d 55 f9 4b  bl      10008d40 <00000024.plt_call.__asan_handle_no_return>
10073884: 5d 50 f9 4b  bl      100088e0 <00000024.plt_call.__asan_init>
1007388c: 75 54 f9 4b  bl      10008d00 <00000024.plt_call.__asan_version_mismatch_check_v8>
100738a0: 41 36 f9 4b  bl      10006ee0 <00000024.plt_call.__asan_register_globals>
100738f0: 71 4c f9 4b  bl      10008560 <00000024.plt_call.__asan_unregister_globals>
```

4 years agotest: attempt to install only kernel modules for each subsystem
Frantisek Sumsal [Sun, 8 Aug 2021 11:18:18 +0000 (13:18 +0200)] 
test: attempt to install only kernel modules for each subsystem

When `linux-headers` is installed on Arch Linux, it stores the module
source tree in the kernel module directory, which is then picked up by
`find` and we get a lot of harmless but annoying errors:

```
...
modprobe: FATAL: Module Kconfig.iosched not found in directory /lib/modules/5.13.7-arch1-1
modprobe: FATAL: Module Kconfig not found in directory /lib/modules/5.13.7-arch1-1
modprobe: FATAL: Module Kconfig not found in directory /lib/modules/5.13.7-arch1-1
modprobe: FATAL: Module dm-mpath.h not found in directory /lib/modules/5.13.7-arch1-1
modprobe: FATAL: Module dm-bio-prison-v2.h not found in directory /lib/modules/5.13.7-arch1-1
modprobe: FATAL: Module raid0.h not found in directory /lib/modules/5.13.7-arch1-1
...
```

Let's fix this by trying to install only kernel modules (*.ko files with
an optional compression).

4 years agohwdb: ieee1394-unit-function: correct entries for eAR Master One and Terratec Aureon... 20395/head
Takashi Sakamoto [Sat, 7 Aug 2021 23:37:46 +0000 (08:37 +0900)] 
hwdb: ieee1394-unit-function: correct entries for eAR Master One and Terratec Aureon 7.1 FireWire

The configuration ROM of Acoustic Reality eAR Master One, Eroica, Figaro,
and Ciaccona has OUI for TerraTec Electronic GmbH in its vendor ID field.
As a result, modalias for the unit is the same as Terratec Electronic
Aureon 7.1 FireWire.

Linux FireWire subsystem adds the same modalias for units of the models.
ALSA bebob driver had duplicated entries for them and was changed at
Linux kernel v5.14 to remove the duplicated entries.

It's better to improve corresponding entries in systemd hwdb, while
it's impossible to distinguish the models by modalias and force to use
the same entry for them. As last resort, this commit selects more
popular model, Aureon 7.1 FireWire for ID_VENDOR_FROM_DATABASE and
ID_MODEL_FROM_DATABASE.

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a07ebc7e050ccdfec508449b2ef8f2b2aa90927b
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
4 years agohwdb: ieee1394-unit-function: correct comment for Mackie d.2 and d.2 Pro
Takashi Sakamoto [Sat, 7 Aug 2021 23:37:46 +0000 (08:37 +0900)] 
hwdb: ieee1394-unit-function: correct comment for Mackie d.2 and d.2 Pro

I had misunderstanding that BridgeCo ASIC would be used for extension
option for Mackie d.2 and OXFW971 would be used for Mackie d.2 Pro like
Mackie d.4 Pro. However, it's clear that the latter is model with
pre-installed option.

This commit fixes commit to entry for Mackie d.2. I note that the modalias
of unit of Mackie d.4 Pro is still unidentified.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
4 years agohwdb: ieee1394-unit-function: correct comment for Mackie Onyx-i series
Takashi Sakamoto [Sat, 7 Aug 2021 23:37:46 +0000 (08:37 +0900)] 
hwdb: ieee1394-unit-function: correct comment for Mackie Onyx-i series

Some Mackie Onyx-i models are known to have two revisions at least, which
use different ASICS; Oxford Semiconductor FW971 and TC Applied
Technologies TCD2210. I misunderstand that Onyx 1640i had not such
revisions.

This commit fixes comment to entry for the model.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
4 years agohwdb: ieee1394-unit-function: correct entries for Phonic products
Takashi Sakamoto [Sat, 7 Aug 2021 23:37:46 +0000 (08:37 +0900)] 
hwdb: ieee1394-unit-function: correct entries for Phonic products

Some of Phonic Firefly series and Helix Board series have the same
combination of vendor ID, model ID, specifier ID, and software
version in their configuration ROM. On the other hand, the other models
have unique combination.

ALSA bebob driver in Linux kernel v5.14 was changed in its modalias table
for the models.

This commit fixes systemd hwdb for the models.

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1586d461f641b60040438275e14c7dbcec5907d6
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
4 years agoMerge pull request #20384 from keszybz/udev-code-modernization
Luca Boccassi [Sat, 7 Aug 2021 11:06:00 +0000 (12:06 +0100)] 
Merge pull request #20384 from keszybz/udev-code-modernization

Various minor refactorings (basic/log, udev, cryptsetup-tokens)

4 years agoudev/builtins: make skip_subsystem() and skip_virtio() alike 20384/head
Zbigniew Jędrzejewski-Szmek [Tue, 3 Aug 2021 14:49:05 +0000 (16:49 +0200)] 
udev/builtins: make skip_subsystem() and skip_virtio() alike

The two functions do not implement identical logic, so they shouldn't
have identical structure, but let's make them both a bit simpler and
more alike.

4 years agoudev/builtins: inline iterator variables and other small modernizations
Zbigniew Jędrzejewski-Szmek [Tue, 3 Aug 2021 14:47:37 +0000 (16:47 +0200)] 
udev/builtins: inline iterator variables and other small modernizations

4 years agoudev-builtin-input_ic: simplify loop in test_key()
Zbigniew Jędrzejewski-Szmek [Mon, 2 Aug 2021 13:44:56 +0000 (15:44 +0200)] 
udev-builtin-input_ic: simplify loop in test_key()

We would update 'found' using bit operations, but studiously ignore the actual
value and treat it as boolean. So just use a boolean variable instead. Because
there is a double loop, we would break the inner loop, but repeat the outer
loop, even though the boolean was already set. Add '&& !found' in the loop
conditions to break iteration immediately.

4 years agotest-log: move logging call where we can still see it
Zbigniew Jędrzejewski-Szmek [Tue, 3 Aug 2021 14:09:52 +0000 (16:09 +0200)] 
test-log: move logging call where we can still see it

We crank the level up in the loop, so we wouldn't see message
from log_info_errno().

Also move the loop iterator declaration inline.

4 years agocryptsetup-tokens: inline one interator variable declaration
Zbigniew Jędrzejewski-Szmek [Mon, 26 Jul 2021 12:57:09 +0000 (14:57 +0200)] 
cryptsetup-tokens: inline one interator variable declaration

4 years agobasic/log: invert loop to avoid repeated evaluation of condition
Zbigniew Jędrzejewski-Szmek [Tue, 3 Aug 2021 14:14:51 +0000 (16:14 +0200)] 
basic/log: invert loop to avoid repeated evaluation of condition

4 years agobasic/log: use structured initialization, drop unused initialization
Zbigniew Jędrzejewski-Szmek [Mon, 26 Jul 2021 12:56:34 +0000 (14:56 +0200)] 
basic/log: use structured initialization, drop unused initialization

We had 'msghdr' and 'mh' in various places. Now 'const struct msghdr msghdr' is
used consistently. With structured init the variable is only used in the call
to sendmsg(), so let's make it a bit more descriptive.

4 years agosd-boot: time measurements for the ARM64
Max Resch [Wed, 4 Aug 2021 15:23:27 +0000 (17:23 +0200)] 
sd-boot: time measurements for the ARM64
This adds assembly to read the platform timer from the CP15 coprocessor
register `cntpct_el0` and the frequency from `cntfrq_el0`

4 years agocryptsetup: validate optional tpm2 pcr bank field in token.
Ondrej Kozina [Wed, 4 Aug 2021 09:38:20 +0000 (11:38 +0200)] 
cryptsetup: validate optional tpm2 pcr bank field in token.

4 years agounits: make sure systemd-tmpfiles-{setup,clean} don't survive switch-root
Zbigniew Jędrzejewski-Szmek [Thu, 5 Aug 2021 11:22:58 +0000 (13:22 +0200)] 
units: make sure systemd-tmpfiles-{setup,clean} don't survive switch-root

Normally, these services are killed because we run isolate. But I booted into
emergency mode (because of a futher bug with us timing out improperly on the
luks password prompt), and then continuted to the host system by running
'systemctl start systemd-switch-root.service'. My error, but the results are
confusing and bad: systemd in the host sees 'systemd-tmpfiles-setup.service'
as started successfully, and doesn't restart it, so the setup for /tmp/.X11 is
not done and gdm.service fails. So while we wouldn't encounter this during
normal successful boot, I think it's good to make this more robust.

The dep is added to systemd-tmpfiles-{setup,clean}, because /tmp is not
propagated over switch-root. /dev is, so I didn't touch
systemd-tmpfiles-setup-dev.service.

4 years agoMerge pull request #20375 from yuwata/network-bridge-vlan-issue-20373
Luca Boccassi [Thu, 5 Aug 2021 10:18:03 +0000 (11:18 +0100)] 
Merge pull request #20375 from yuwata/network-bridge-vlan-issue-20373

network: fix bridge and openvswitch issues

4 years agosd-dhcp6-client: do not ignore errors in client_receive_advertise()
Yu Watanabe [Wed, 4 Aug 2021 13:59:39 +0000 (22:59 +0900)] 
sd-dhcp6-client: do not ignore errors in client_receive_advertise()

This also adds several debug log messages.

4 years agoMerge pull request #20381 from yuwata/cgroup-empty-to-root
Luca Boccassi [Thu, 5 Aug 2021 09:25:14 +0000 (10:25 +0100)] 
Merge pull request #20381 from yuwata/cgroup-empty-to-root

core: use empty_to_root() for cgroup path in log messages

4 years agocore: wrap cgroup path with empty_to_root() in log messages 20381/head
Yu Watanabe [Wed, 4 Aug 2021 18:14:41 +0000 (03:14 +0900)] 
core: wrap cgroup path with empty_to_root() in log messages

This fixes e.g. the following log message:
---
systemd[1]: -.slice: Failed to migrate controller cgroups from , ignoring: Read-only file system
---

4 years agocore/cgroup: fix error handling of cg_remove_xattr()
Yu Watanabe [Wed, 4 Aug 2021 18:13:48 +0000 (03:13 +0900)] 
core/cgroup: fix error handling of cg_remove_xattr()

4 years agoMerge pull request #20377 from yuwata/network-bridge-fdb-20305
Yu Watanabe [Wed, 4 Aug 2021 17:44:24 +0000 (02:44 +0900)] 
Merge pull request #20377 from yuwata/network-bridge-fdb-20305

network: always append new bridge FDB entries

4 years agoMerge pull request #19944 from yuwata/network-radv-introduce-uplink-interface
Zbigniew Jędrzejewski-Szmek [Wed, 4 Aug 2021 17:36:42 +0000 (19:36 +0200)] 
Merge pull request #19944 from yuwata/network-radv-introduce-uplink-interface

network: introduce UplinkInterface= in [IPv6SendRA]

4 years agonetwork: ignore errors on unsetting master ifindex 20375/head
Yu Watanabe [Wed, 4 Aug 2021 15:10:52 +0000 (00:10 +0900)] 
network: ignore errors on unsetting master ifindex

Fixes #20241.

4 years agotest-network: add a test case for issue #20373
Yu Watanabe [Wed, 4 Aug 2021 08:23:06 +0000 (17:23 +0900)] 
test-network: add a test case for issue #20373

4 years agonetwork: ignore errors on setting bridge config
Yu Watanabe [Wed, 4 Aug 2021 04:53:21 +0000 (13:53 +0900)] 
network: ignore errors on setting bridge config

For some setups, kernel refuses to set bridge configs with -EOPNOTSUPP.
See kernel's rtnl_bridge_setlink() in net/core/rtnetlink.c.

Fixes #20373.

4 years agonetwork: add comments
Yu Watanabe [Wed, 4 Aug 2021 04:52:52 +0000 (13:52 +0900)] 
network: add comments

4 years agotest-network: add a testcase for UplinkInterface= in [IPv6SendRA] 19944/head
Yu Watanabe [Tue, 15 Jun 2021 19:50:49 +0000 (04:50 +0900)] 
test-network: add a testcase for UplinkInterface= in [IPv6SendRA]

4 years agonetwork: introduce UplinkInterface= in [IPv6SendRA]
Yu Watanabe [Tue, 15 Jun 2021 18:51:57 +0000 (03:51 +0900)] 
network: introduce UplinkInterface= in [IPv6SendRA]

4 years agonetwork: use request queue to configure IPv6 RA engine
Yu Watanabe [Tue, 15 Jun 2021 18:37:57 +0000 (03:37 +0900)] 
network: use request queue to configure IPv6 RA engine

4 years agonetwork: update comment and man page
Yu Watanabe [Tue, 13 Jul 2021 12:27:51 +0000 (21:27 +0900)] 
network: update comment and man page

4 years agoMerge pull request #18567 from Werkov/mkosi-opensuse-v9+
Luca Boccassi [Wed, 4 Aug 2021 10:35:13 +0000 (11:35 +0100)] 
Merge pull request #18567 from Werkov/mkosi-opensuse-v9+

CI for openSUSE Tumbleweed

4 years agotest-network: add a testcase for vxlan with IPv6 local address 20377/head
Yu Watanabe [Wed, 4 Aug 2021 09:33:23 +0000 (18:33 +0900)] 
test-network: add a testcase for vxlan with IPv6 local address

4 years agoci: Add openSUSE Tumbleweed among tested distros 18567/head
Michal Koutný [Fri, 12 Feb 2021 17:17:01 +0000 (18:17 +0100)] 
ci: Add openSUSE Tumbleweed among tested distros

4 years agoci: Detect shell prompt with higher specificity
Michal Koutný [Mon, 21 Jun 2021 15:18:54 +0000 (17:18 +0200)] 
ci: Detect shell prompt with higher specificity

The current pattern '#' triggers on the openSUSE kernel version that is
printed early during boot when no actual prompt is ready
> [    0.000000] Linux version 5.12.10-1-default (geeko@buildhost) (gcc (SUSE Linux) 11.1.1 20210510 [revision 23855a176609fe8dda6abaf2b21846b4517966eb], GNU ld (GNU Binutils; openSUSE Tumbleweed) 2.36.1.20210326-4) #1 SMP Fri Jun 11 05:05:06 UTC 2021 (b92eaf7)

Instead wait for pattern that: a) should have fewer false positives, b)
still be with working on distro shells:

openSUSE (red color)
^[[1m^[[31mimage:~ #^[[m^O

arch
[root@image ~]#

debian
root@image:~#

ubuntu
root@image:~#

fedora
[root@image ~]#

4 years agoci: Do not require network in test images
Michal Koutný [Fri, 12 Feb 2021 17:13:59 +0000 (18:13 +0100)] 
ci: Do not require network in test images

The current boot test relies on terminal login, therefore network setup
inside image is unnecessary. This opens up possibility to test images
that don't support the network setup via veth devices.

4 years agoci: Bump mkosi version to v10
Michal Koutný [Fri, 12 Feb 2021 17:19:06 +0000 (18:19 +0100)] 
ci: Bump mkosi version to v10

Use mkosi GH action that includes fixes for openSUSE builds. This
enables testing openSUSE builds in CI.

4 years agosd-netlink: always append new bridge FDB entries
Yu Watanabe [Wed, 4 Aug 2021 09:16:44 +0000 (18:16 +0900)] 
sd-netlink: always append new bridge FDB entries

This partially reverts 192a9d95ea3e058afd824d38a9cea16ad0a84a57 (#19432).

Fixes #20305.

4 years agonetwork: use address_equal()/route_equal() to compare addresses or routes configured...
Yu Watanabe [Wed, 4 Aug 2021 04:14:03 +0000 (13:14 +0900)] 
network: use address_equal()/route_equal() to compare addresses or routes configured by NDisc

Fixes #20244.

4 years agoMerge pull request #20372 from keszybz/veritysetup-help
Luca Boccassi [Tue, 3 Aug 2021 23:05:28 +0000 (00:05 +0100)] 
Merge pull request #20372 from keszybz/veritysetup-help

Document veritysetup syntax

4 years agoMerge pull request #20368 from keszybz/drop-assert-not-reached-text
Luca Boccassi [Tue, 3 Aug 2021 20:15:25 +0000 (21:15 +0100)] 
Merge pull request #20368 from keszybz/drop-assert-not-reached-text

Drop the text argument from assert_not_reached()

4 years agoMerge pull request #20371 from bluca/coverity
Luca Boccassi [Tue, 3 Aug 2021 20:14:31 +0000 (21:14 +0100)] 
Merge pull request #20371 from bluca/coverity

Two small coverity fixes

4 years agoman: describe veritysetup command syntax 20372/head
Zbigniew Jędrzejewski-Szmek [Sat, 31 Jul 2021 07:16:52 +0000 (09:16 +0200)] 
man: describe veritysetup command syntax

It makes it easier to diagnose what the generated units actually do.

4 years agoveritysetup: print help for --help/-h/help
Zbigniew Jędrzejewski-Szmek [Sat, 31 Jul 2021 07:00:11 +0000 (09:00 +0200)] 
veritysetup: print help for --help/-h/help

In general our commands print help on --help, but here this would trigger
the error that two arguments are needed. Let's make this more user-friendly.

4 years agotree-wide: voidify unchecked close_nointr calls 20371/head
Luca Boccassi [Tue, 3 Aug 2021 14:00:40 +0000 (15:00 +0100)] 
tree-wide: voidify unchecked close_nointr calls

These have ignored the return value forever. Two are public APIs so
we can't really change what they return anyway, and the other one is
a cleanup path and the existing error code is more important.

CID#1461274
CID#1461275
CID#1461276

4 years agocreds: assert that credential read from file fits in data struct
Luca Boccassi [Tue, 3 Aug 2021 13:53:31 +0000 (14:53 +0100)] 
creds: assert that credential read from file fits in data struct

Coverity CID#1458114

4 years agobasic/log: use appropriate glyph in log_assert_failed_unreachable() 20368/head
Zbigniew Jędrzejewski-Szmek [Tue, 3 Aug 2021 13:46:05 +0000 (15:46 +0200)] 
basic/log: use appropriate glyph in log_assert_failed_unreachable()

Per popular demand.

4 years agoDrop the text argument from assert_not_reached()
Zbigniew Jędrzejewski-Szmek [Tue, 27 Jul 2021 10:27:28 +0000 (12:27 +0200)] 
Drop the text argument from assert_not_reached()

In general we almost never hit those asserts in production code, so users see
them very rarely, if ever. But either way, we just need something that users
can pass to the developers.

We have quite a few of those asserts, and some have fairly nice messages, but
many are like "WTF?" or "???" or "unexpected something". The error that is
printed includes the file location, and function name. In almost all functions
there's at most one assert, so the function name alone is enough to identify
the failure for a developer. So we don't get much extra from the message, and
we might just as well drop them.

Dropping them makes our code a tiny bit smaller, and most importantly, improves
development experience by making it easy to insert such an assert in the code
without thinking how to phrase the argument.

4 years agoMerge pull request #20346 from poettering/strlen-unsigned-fix
Yu Watanabe [Tue, 3 Aug 2021 02:03:29 +0000 (11:03 +0900)] 
Merge pull request #20346 from poettering/strlen-unsigned-fix

CONST_MAX() integer size fix

4 years agotime-set: adjust system clock if rtc is far in future
Egor Ignatov [Wed, 28 Jul 2021 09:13:31 +0000 (12:13 +0300)] 
time-set: adjust system clock if rtc is far in future

4 years agoMerge pull request #20352 from poettering/copy-tweaks
Luca Boccassi [Mon, 2 Aug 2021 19:31:42 +0000 (20:31 +0100)] 
Merge pull request #20352 from poettering/copy-tweaks

various tweaks to copy.c

4 years agoUse correct `<poll.h>` include
David Seifert [Mon, 2 Aug 2021 14:09:10 +0000 (16:09 +0200)] 
Use correct `<poll.h>` include

* `<sys/poll.h>` is not specified in POSIX

4 years agobtrfs-util: expose COPY_SIGTERM for btrfs_snapshot() too 20352/head
Lennart Poettering [Fri, 26 Feb 2021 14:00:29 +0000 (15:00 +0100)] 
btrfs-util: expose COPY_SIGTERM for btrfs_snapshot() too

4 years agocopy: add COPY_SIGTERM, matching the existing COPY_SIGINT
Lennart Poettering [Fri, 26 Feb 2021 14:10:24 +0000 (15:10 +0100)] 
copy: add COPY_SIGTERM, matching the existing COPY_SIGINT

4 years agocopy: add COPY_SYNCFS flag
Lennart Poettering [Fri, 26 Feb 2021 09:27:00 +0000 (10:27 +0100)] 
copy: add COPY_SYNCFS flag

When copying large directory trees it should be a better idea to sync
the whole fs once when we are done instead of individually for each
file, hence add COPY_SYNCFS.

As opposed to COPY_FSYNC/COPY_FSYNC_FULL this only really applies to the
top-level directory, after completion of the whole copy.

4 years agocopy: optionally fsync() files after copying them
Lennart Poettering [Mon, 1 Feb 2021 16:48:32 +0000 (17:48 +0100)] 
copy: optionally fsync() files after copying them

As a safety precaution it makes sense to fsync() files after copying
them, and maybe even the directories they are contained in. Let's add a
flag for these two cases.

4 years agocopy: tighten destination checks when copying files
Lennart Poettering [Mon, 1 Feb 2021 16:45:25 +0000 (17:45 +0100)] 
copy: tighten destination checks when copying files

let's make sure we only operate on regular files when copying files.

Also, make sure to copy file attributes only over if target is a regular
file (so that copying a file to /dev/null won't alter the access
mode/ownership of that device node...)

4 years agocopy: move to single clean-up path
Lennart Poettering [Mon, 1 Feb 2021 16:37:11 +0000 (17:37 +0100)] 
copy: move to single clean-up path

(This might not look like a big improvement, but will shortly, when we
add fsync() support to the copy logic, at which point there are more
error paths we can unify that way.)

While we are at it, tweak a clean-up path: only unlink a copied file if
we are definitely the ones who created them, i.e. if O_EXCL is set.

4 years agomachined-varlink: fix double free
David Tardon [Mon, 2 Aug 2021 11:31:04 +0000 (13:31 +0200)] 
machined-varlink: fix double free

Fixes: #18599
4 years agoUse correct `<fcntl.h>` include
David Seifert [Mon, 2 Aug 2021 10:41:38 +0000 (12:41 +0200)] 
Use correct `<fcntl.h>` include

* `<sys/fcntl.h>` is not specified in POSIX

4 years agocryptsetup: unbreak CI build
Lennart Poettering [Fri, 30 Jul 2021 20:19:23 +0000 (22:19 +0200)] 
cryptsetup: unbreak CI build

PR #20176 broke building of the cryptsetup token logic. This wasn't
noticed before the PR was merged, because the only CIs new enough to be
able to build the token logic (the Fedora Rawhide ones) didn't actually
run at all on the PR.

Let's add the missing hookup for the TPM2 PCR bank logic also to the
token module, to make the CI pass again.

4 years agocoredump/stacktrace.c: avoid crash on binaries without NHDR
Sergei Trofimovich [Sat, 31 Jul 2021 12:07:54 +0000 (13:07 +0100)] 
coredump/stacktrace.c: avoid crash on binaries without NHDR

Observed as a crash on binaries built with gcc-master:

```
 3  0x00005573b8841d6a in parse_package_metadata (name=name@entry=0x5573b901a620 "/a", id_json=0x0,
    elf=0x5573b9028730, c=c@entry=0x7fffc688f790) at ../systemd-stable-249.2/src/coredump/stacktrace.c:157
 4  0x00005573b884209e in module_callback (mod=0x7fffc688f6c0, userdata=<optimized out>,
    name=0x5573b901a620 "/a", start=<optimized out>, arg=0x7fffc688f790)
    at ../systemd-stable-249.2/src/coredump/stacktrace.c:306
 5  0x00007f56d60dcbd5 in dwfl_getmodules (dwfl=0x5573b901fda0,
    callback=callback@entry=0x5573b8841eb0 <module_callback>, arg=arg@entry=0x7fffc688f790, offset=offset@entry=0)
    at ../../elfutils-0.185/libdwfl/dwfl_getmodules.c:86
 6  0x00005573b884231b in parse_core (ret_package_metadata=0x7fffc688f848, ret=0x7fffc688f850,
    executable=0x7fffc688f790 "\200\332\001\271sU", fd=21) at ../systemd-stable-249.2/src/coredump/stacktrace.c:366
 7  coredump_parse_core (fd=fd@entry=6, executable=0x7fffc688f790 "\200\332\001\271sU", ret=ret@entry=0x7fffc688f850,
    ret_package_metadata=ret_package_metadata@entry=0x7fffc688f848)
    at ../systemd-stable-249.2/src/coredump/stacktrace.c:406
 8  0x00005573b883f897 in submit_coredump (context=context@entry=0x7fffc688fa10, iovw=iovw@entry=0x7fffc688f990,
    input_fd=input_fd@entry=5) at ../systemd-stable-249.2/src/coredump/coredump.c:827
 9  0x00005573b883d339 in process_socket (fd=3) at ../systemd-stable-249.2/src/coredump/coredump.c:1041
 10 run (argv=<optimized out>, argc=-964101648) at ../systemd-stable-249.2/src/coredump/coredump.c:1416
 11 main (argc=-964101648, argv=<optimized out>) at ../systemd-stable-249.2/src/coredump/coredump.c:1422
```

Happens only on enabled elfutils symbolizer.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
4 years agosignal-util: fix typo
Lennart Poettering [Fri, 30 Jul 2021 19:54:21 +0000 (21:54 +0200)] 
signal-util: fix typo

Noticed by @behrmann: https://github.com/systemd/systemd/pull/20156#discussion_r667451006

4 years agoMerge pull request #20121 from poettering/bootctl-auto
Lennart Poettering [Fri, 30 Jul 2021 19:36:40 +0000 (21:36 +0200)] 
Merge pull request #20121 from poettering/bootctl-auto

units: run "bootctl update" automatically after boot, to ensure boot loader is regularly updated

4 years agoMerge pull request #20172 from poettering/import-util-tweaks
Lennart Poettering [Fri, 30 Jul 2021 17:05:06 +0000 (19:05 +0200)] 
Merge pull request #20172 from poettering/import-util-tweaks

Import-util: URL processing tweaks

4 years agoMerge pull request #20170 from poettering/moar-glyphs
Lennart Poettering [Fri, 30 Jul 2021 17:03:59 +0000 (19:03 +0200)] 
Merge pull request #20170 from poettering/moar-glyphs

util: define more emoji glyphs

4 years agotpm2-util: auto-detect supported PCR banks
Lennart Poettering [Thu, 8 Jul 2021 11:52:21 +0000 (13:52 +0200)] 
tpm2-util: auto-detect supported PCR banks

Previously, we'd encode PCR policies strictly with the SHA256 PCR bank
set. However, as it appears not all hw implement those. Sad.

Let's add some minimal logic to auto-detect supported PCR banks: if
SHA256 is supported, use that. But if not, automatically fall back to
SHA1.

This then changes both the LUKS code, and the credentials code to
serialize the selected bank, along with the rest of the data in order to
make this robust.

This extends the LUK2 JSON metadata in a compatible way. The credentials
encryption format is modified in an incompatible way however, but given
that this is not part of any official release should be OK.

Fixes: #20134
4 years agoupdate TODO 20121/head
Lennart Poettering [Mon, 5 Jul 2021 12:37:04 +0000 (14:37 +0200)] 
update TODO

4 years agoboot: optionally update sd-boot on boot
Lennart Poettering [Fri, 2 Jul 2021 13:04:10 +0000 (15:04 +0200)] 
boot: optionally update sd-boot on boot

Boot loaders are software like any other, and hence muse be updated in
regular intervals. Let's add a simple (optional) service that updates
sd-boot automatically from the host if it is found installed but
out-of-date in the ESP.

Note that traditional distros probably should invoke "bootctl update"
directly from the package scripts whenver they update the sd-boot
package. This new service is primarily intended for image-based update
systems, i.e. where the rootfs or /usr are atomically updated in A/B
style and where the current boot loader should be synced into the ESP
from the currently booted image every now and then. It can also act as
safety net if the packaging scripts in classic systems are't doing the
bootctl update stuff themselves.

Since updating boot loaders mit be a tiny bit risky (even though we try
really hard to make them robust, by fsck'ing the ESP and mounting it only on
demand, by doing updates mostly as single file updates and by fsync()ing
heavily) this is an optional feature, i.e. subject to "systemctl
enable". However, since it's the right thing to do I think, it's enabled
by default via the preset logic.

Note that the updating logic is implemented gracefully: i.e. it's a NOP
if the boot loader is already new enough, or was never installed.

4 years agobootctl: tweak "bootctl update" to be a NOP when boot loader is already current and...
Lennart Poettering [Fri, 2 Jul 2021 13:16:52 +0000 (15:16 +0200)] 
bootctl: tweak "bootctl update" to be a NOP when boot loader is already current and --graceful is given

Previously, the "bootctl update" logic would refrain from downrgading a
boot loader, but if the boot loader that is installed already matched
the version we could install we'd install it anyway, under the
assumption this was effectively without effect. This behaviour was handy
while developing boot loaders, since installing a modified boot loader
didn't require a version bump.

However, outside of the systems of boot loader developers I don't think
this behaviour makes much sense: we should always emphasize doing
minimal changes to the ESP, hence when an update is supposedly not
necessary, then don't do it. Only update if it really makes sense, to
minimize writes to the ESP. Updating the boot loader is a good thing
after all, but doing so redundantly is not.

Also, downgrade the message about this to LOG_NOTICE, given this
shouldn't be a reason to log.

Finally, exit cleanly in this cases (or if another boot loader is
detected)

4 years agotest: add simple test for import-util 20172/head
Lennart Poettering [Mon, 14 Jun 2021 20:41:58 +0000 (22:41 +0200)] 
test: add simple test for import-util

4 years agoimport-util: tweak url patching helper
Lennart Poettering [Tue, 2 Feb 2021 21:37:36 +0000 (22:37 +0100)] 
import-util: tweak url patching helper

let's share some code between import_url_last_component() and
import_url_change_last_component(), and make sure we never eat up the
hostname component of the URL when parsing out the last component.

Let's also make import_url_change_last_component() more generic so that
we can also use it for append components to paths, instead of replacing
suffixes.

4 years agoutil: add one more helper for generating colored check mark glyphs 20170/head
Lennart Poettering [Wed, 30 Dec 2020 20:49:10 +0000 (21:49 +0100)] 
util: add one more helper for generating colored check mark glyphs

This one is useful for a outputs with a slightly more "positive"
outlook, i.e. where only the checkmarks are shown but the crossmarks are
replaced by spaces.

(Usecase: a larger table with many checkmarks, where the red crossmarks
might just be too much negative noise)

4 years agoglyph-util: add three more emojis to emoji list
Lennart Poettering [Fri, 25 Jun 2021 09:50:54 +0000 (11:50 +0200)] 
glyph-util: add three more emojis to emoji list

4 years agorm-rf: refactor rm_rf_children(), split out body of directory iteration loop
Lennart Poettering [Tue, 26 Jan 2021 15:30:06 +0000 (16:30 +0100)] 
rm-rf: refactor rm_rf_children(), split out body of directory iteration loop

This splits out rm_rf_children_inner() as body of the loop. We can use
that to implement rm_rf_child() for deleting one specific entry in a
directory.

4 years agomacro: change DECIMAL_STR_WIDTH() return type to size_t, like strlen() and so on 20346/head
Lennart Poettering [Thu, 29 Jul 2021 16:47:04 +0000 (18:47 +0200)] 
macro: change DECIMAL_STR_WIDTH() return type to size_t, like strlen() and so on

4 years agomacro: sizeof() returns size_t, and that's good
Lennart Poettering [Thu, 29 Jul 2021 15:45:19 +0000 (17:45 +0200)] 
macro: sizeof() returns size_t, and that's good

Now that CONST_MAX() is a bit more foregiving, let's stick to the native
return type of sizeof() everywhere, which is size_t, instead of casting
to "unsigned", so that on the common archs we don't unnecessarily lose
the upper 32bits.

This semi-reverts d3e40294572512810c9329933a488619e7ce22fd.

4 years agomacro: relax CONST_MAX() type check a tiny bit
Lennart Poettering [Thu, 29 Jul 2021 16:39:09 +0000 (18:39 +0200)] 
macro: relax CONST_MAX() type check a tiny bit

This checked for strict type compatibility so far, which mean CONST_MAX()
couldn't be used on two differently signed integers, even though
conceptually there's nothing wrong with allowing that here, as C
correctly picks the larger type in the ternary op.

hence, let's explicitly whitelist integer comparisons here, as long as
the signedness matches.

4 years agoMerge pull request #20348 from poettering/free-and-replace-double-eval
Luca Boccassi [Fri, 30 Jul 2021 10:38:13 +0000 (11:38 +0100)] 
Merge pull request #20348 from poettering/free-and-replace-double-eval

make free_and_replace() double eval free

4 years agotest: correctly detect ASan on s390x
Frantisek Sumsal [Thu, 29 Jul 2021 16:44:51 +0000 (18:44 +0200)] 
test: correctly detect ASan on s390x

s390x uses BRAS(L) instead of CALL(Q), e.g.:

```
 1009528: c0 e5 ff ff f8 a0  brasl %r14,1008668 <__asan_report_load1@plt>
 10095f0: c0 e5 ff ff ea ec  brasl %r14,1006bc8 <__asan_stack_malloc_4@plt>
 10097f8: c0 e5 ff ff f8 f8  brasl %r14,10089e8 <__asan_report_load8@plt>
```

x86_64 for reference:

```
  4011f3: e8 48 fe ff ff        callq  401040 <__asan_report_load1@plt>
  401227: e8 24 fe ff ff        callq  401050 <__asan_report_load8@plt>
  401251: e8 da fd ff ff        callq  401030 <__asan_init@plt>
```