David Tardon [Fri, 12 Oct 2018 12:48:41 +0000 (14:48 +0200)]
do not try to allocate 0 bytes
David Tardon [Tue, 9 Oct 2018 13:04:58 +0000 (15:04 +0200)]
be consistent about sun_path length
Most places use the whole buffer for name, without leaving extra space
for the trailing NUL.
David Tardon [Tue, 9 Oct 2018 11:50:55 +0000 (13:50 +0200)]
dissect-image: use right comparison function
fstype can be NULL here.
David Tardon [Wed, 3 Oct 2018 10:48:58 +0000 (12:48 +0200)]
console: avoid promotion to signed int
coverity message:
sign_extension: Suspicious implicit sign extension: "keydata.Key.ScanCode" with type "UINT16" (16 bits, unsigned) is promoted in "keydata.Key.ScanCode << 16" to type "int" (32 bits, signed), then sign-extended to type "unsigned long" (64 bits, unsigned). If "keydata.Key.ScanCode << 16" is greater than 0x7FFFFFFF, the upper bits of the result will all be 1.
dana [Tue, 9 Oct 2018 19:25:12 +0000 (14:25 -0500)]
man: clarify behaviour of RandomizedDelaySec=
Zbigniew Jędrzejewski-Szmek [Wed, 10 Oct 2018 12:21:18 +0000 (14:21 +0200)]
Merge pull request #10316 from poettering/json-api
just the json stuff from #9762
Yu Watanabe [Wed, 10 Oct 2018 10:50:35 +0000 (19:50 +0900)]
Merge pull request #10351 from keszybz/meson-cpp-fixups
Meson c++-related fixups
Zbigniew Jędrzejewski-Szmek [Wed, 10 Oct 2018 10:36:16 +0000 (12:36 +0200)]
Merge pull request #10343 from poettering/manager-state-fix
various fixes for PID1's Manager object
Zbigniew Jędrzejewski-Szmek [Wed, 10 Oct 2018 10:04:33 +0000 (12:04 +0200)]
Merge pull request #10349 from poettering/bus-creds-shift-overflow
sd-bus creds bitshift overflow fix
Lennart Poettering [Wed, 10 Oct 2018 09:34:30 +0000 (11:34 +0200)]
tree-wide: various ubsan zero size memory fixes
Fixes: #10346
Zbigniew Jędrzejewski-Szmek [Wed, 10 Oct 2018 09:56:45 +0000 (11:56 +0200)]
meson: c++ is required for the fuzzer builds
The configuration would fail with an error about cpp being an unknown language
anyway, but it's nicer to fail early and explicitly.
https://github.com/systemd/systemd/pull/10339#issuecomment-
428279175
Zbigniew Jędrzejewski-Szmek [Wed, 10 Oct 2018 09:50:57 +0000 (11:50 +0200)]
meson: rename cpp_cmd to cxx_cmd
cpp is a really bad alias for c++ because it's also the name of the
preprocessor. Let's rename the variable.
Lennart Poettering [Wed, 10 Oct 2018 09:12:54 +0000 (11:12 +0200)]
sd-bus: call cap_last_cap() only once in has_cap()
Also, use the same type everywhere for dealing with it.
Lennart Poettering [Wed, 10 Oct 2018 09:12:22 +0000 (11:12 +0200)]
sd-bus: use size_t when dealing with memory offsets
Lennart Poettering [Wed, 10 Oct 2018 09:07:54 +0000 (11:07 +0200)]
capability: introduce CAP_TO_MASK_CORRECTED() macro replacing CAP_TO_MASK()
linux/capability.h's CAP_TO_MASK potentially shifts a signed int "1"
(i.e. 32bit wide) left by 31 which means it becomes negative. That's
just weird, and ubsan complains about it. Let's introduce our own macro
CAP_TO_MASK_CORRECTED which doesn't fall into this trap, and make use of
it.
Fixes: #10347
Evgeny Vereshchagin [Wed, 1 Aug 2018 10:25:26 +0000 (10:25 +0000)]
tests: add a fuzzer for the json parser and dumper
Lennart Poettering [Wed, 4 Jul 2018 13:42:04 +0000 (15:42 +0200)]
json: add test
Lennart Poettering [Wed, 25 Apr 2018 09:21:59 +0000 (11:21 +0200)]
json: add a nice JSON parser
As preparation for OCI support in nspawn, let's add a JSON parser.
The json.h file contains an explanation why this is new code instead of
just us linking against an existing JSON library.
Asbjørn Apeland [Wed, 10 Oct 2018 07:13:39 +0000 (09:13 +0200)]
man: fix typo
Lennart Poettering [Tue, 9 Oct 2018 21:29:27 +0000 (23:29 +0200)]
Merge pull request #10062 from rgushchin/device
Support cgroup v2 bpf-based device controller
Zbigniew Jędrzejewski-Szmek [Tue, 9 Oct 2018 16:48:09 +0000 (18:48 +0200)]
meson: we cannot call get_compiler('cpp') if we didn't "add" it
Follow-up for
f6d783ac3d145f3f3ffc2023d4ad90f76cf7fe34.
Lennart Poettering [Tue, 9 Oct 2018 16:45:10 +0000 (18:45 +0200)]
bpf-firewall: always use log_unit_xyz() insteadof log_xyz()
That way it's easier to figure out what the various messages belong to
Lennart Poettering [Tue, 9 Oct 2018 11:14:04 +0000 (13:14 +0200)]
device: clean up DeviceFound flags set
No need to avoid bit 0. Also the U suffix has no effect, don't use it.
Lennart Poettering [Tue, 9 Oct 2018 13:33:13 +0000 (15:33 +0200)]
core: add missing 'continue' statement
Lennart Poettering [Tue, 9 Oct 2018 17:42:28 +0000 (19:42 +0200)]
core: include environment generator runtime in generator timestamps
Currently they aren't covered and it probably isn't worth adding another
kind of timestamp just for this, hence simply include it in the regular
generator timestamps.
Lennart Poettering [Tue, 9 Oct 2018 17:41:24 +0000 (19:41 +0200)]
core: add a common helper call manager_ready() sharing some common code between manager_reload() and manager_startup()
Just sharing some common code. No functional changes
Lennart Poettering [Tue, 9 Oct 2018 17:34:23 +0000 (19:34 +0200)]
core: turn our four vacuum calls into a new helper function
Just share some code. No functional changes.
Lennart Poettering [Tue, 9 Oct 2018 15:58:08 +0000 (17:58 +0200)]
core: rework how we set the objective to MANAGER_OK
Let's do so already when we are about to complete startup/reload, so
that manager_catchup() is run in a context where MANAGER_IS_RUNNING()
returns true, as the intention is.
Fixes: #9518
Lennart Poettering [Tue, 9 Oct 2018 15:57:41 +0000 (17:57 +0200)]
core: make use of manager_loop()'s return value
The objective is returned in the return value, let's make use of that,
instead of reaching into the object.
Lennart Poettering [Tue, 9 Oct 2018 15:56:54 +0000 (17:56 +0200)]
core: try to recover from failed reloads
Let's simply continue with everything we loaded, in the hope it's
somewhat useful.
Lennart Poettering [Tue, 9 Oct 2018 15:37:57 +0000 (17:37 +0200)]
core: bring manager_startup() and manager_reload() more inline
Both functions do partly the same, let's make sure they do it in the
same order, and that we don't miss some calls.
This makes a number of changes:
1. Moves exec_runtime_vacuum() two calls down in manager_startup(). This
should not have any effect but makes manager_startup() more like
manager_reload().
2. Calls manager_recheck_journal(), manager_recheck_dbus(),
manager_enqueue_sync_bus_names() in manager_startup() too. This is a
good idea since during reeexec we pass through manager_startup() and
hence can't assume dbus and journald weren't up yet, hence let's
check if they are ready to be connected to.
3. Include manager_enumerate_perpetual() in manager_reload(), too. This
is not strictly necessary, since these units are included in the
serialization anyway, but it's still a nice thing, in particular as
theoretically the deserialization could fail.
Lennart Poettering [Tue, 9 Oct 2018 15:16:55 +0000 (17:16 +0200)]
core: break lines in comments
Lennart Poettering [Tue, 9 Oct 2018 15:16:08 +0000 (17:16 +0200)]
core: log in all cases in manager_startup()
We missed some cases where we'd fail without any logging at all. Let's
fix that.
Lennart Poettering [Tue, 9 Oct 2018 15:02:14 +0000 (17:02 +0200)]
manager: rework error handling and logging in manager_reload()
let's clean up error handling and logging in manager_reload() a bit.
Specifically: make sure we log about every error we might encounter at
least and at most once.
When we encounter an error before the "point of no return" then log at
LOG_ERR about it and propagate it. Otherwise, eat it up, but warn about
it and proceed, it's the best we can do.
Lennart Poettering [Tue, 9 Oct 2018 14:59:16 +0000 (16:59 +0200)]
core: add comments about n_reloading to manager_deserialize()
Lennart Poettering [Tue, 9 Oct 2018 14:54:40 +0000 (16:54 +0200)]
core: handle OOM during deserialization always the same way
OOM failures we consider fatal, while other failures we generally skip
over.
Lennart Poettering [Tue, 9 Oct 2018 14:53:35 +0000 (16:53 +0200)]
core: clean up deserialization log messages a bit
Always, say that we ignore these kind of issues. We already say that for
many fields, but for a few this was missing.
Lennart Poettering [Tue, 9 Oct 2018 14:47:30 +0000 (16:47 +0200)]
core: make sure manager_run_generators() logs about all errors
Since it's mostly a wrapper around execute_directories() it already logs
in most cases, but a few were missing. Fix that.
Lennart Poettering [Tue, 9 Oct 2018 14:45:33 +0000 (16:45 +0200)]
core: allow manager_serialize() to fail correctly
If manager_serialize() fails in the middle (which it hopefully doesn't)
make sure to fix up m->n_reloading correctly again so that we don't
leave it > 0 when it really shouldn't be.
Lennart Poettering [Tue, 9 Oct 2018 14:44:04 +0000 (16:44 +0200)]
path-lookup: downgrade logging in lookup_paths_init() a bit
So far lookup_paths_init() did not log on its own beyond LOG_DEBUG,
fix one exception, in order to avoid duplicate logging.
Lennart Poettering [Tue, 9 Oct 2018 14:15:54 +0000 (16:15 +0200)]
core: clean up test run flags
Let's make them typesafe, and let's add a nice macro helper for checking
if we are in a test run, which should make testing for this much easier
to read for most cases.
Lennart Poettering [Tue, 9 Oct 2018 14:02:31 +0000 (16:02 +0200)]
manager: normalize /run disk space checks
Let's avoid using a variable needlessly. More importantly, special case
the error, not the regular case.
Lennart Poettering [Tue, 9 Oct 2018 13:56:27 +0000 (15:56 +0200)]
core: tiny tweak for cgroup trimming during manager_free()
Instead of blacklisting when not to trim the cgroup tree, let's instead
whitelist when to do it, as an excercise of being careful when being
destructive.
This should not change behaviour with exception that during switch roots
we now won't attempt to trim the cgroup tree anymore. Which is more
correct behaviour after all we serialize/deserialize during the
transition and should be needlessly destructive.
Lennart Poettering [Tue, 9 Oct 2018 13:54:10 +0000 (15:54 +0200)]
core: use structure initialization for Manager
No changes in behaviour, just a nicer way to fill in the Manager
initially.
Lennart Poettering [Tue, 9 Oct 2018 13:45:05 +0000 (15:45 +0200)]
manager: rework test flags set
No reason to avoid bit 0.
Also, fix some tests that pass "true" as flags value, which is just
wrong.
Lennart Poettering [Tue, 9 Oct 2018 13:42:19 +0000 (15:42 +0200)]
core: rename ManagerExitCode → ManagerObjective
"ExitCode" is a bit of a misnomer in two ways: it suggests this was
about the "exit code" concept that exit()/waitid() deal with, but really
isn't. Moreover, it's not event just about exiting either, but more
often about reloading/reexecing or rebooting. Let's hence pick a new
name for this that is a bit more correct.
I initially thought about naming this the "state", but that'd be a
misnomer too, as the value really encodes a "goal" more than a current
state. Also we already have the externally visible ManagerState.
No actual changes in behaviour, just the rename.
Lennart Poettering [Tue, 9 Oct 2018 13:32:35 +0000 (15:32 +0200)]
manager: add explanatory comment regarding ManagerState
Lennart Poettering [Tue, 9 Oct 2018 13:30:48 +0000 (15:30 +0200)]
main: minor coding style update
Roman Gushchin [Mon, 8 Oct 2018 21:33:05 +0000 (14:33 -0700)]
core: support cgroup v2 device controller
Cgroup v2 provides the eBPF-based device controller, which isn't currently
supported by systemd. This commit aims to provide such support.
There are no user-visible changes, just the device policy and whitelist
start working if cgroup v2 is used.
Roman Gushchin [Thu, 23 Aug 2018 17:46:20 +0000 (10:46 -0700)]
core: bump mlock ulimit to 64Mb
Bpf programs are charged against memlock ulimit, and the default value
can be too tight on machines with many cgroups and attached bpf programs.
Let's bump it to 64Mb.
Roman Gushchin [Thu, 23 Aug 2018 17:45:26 +0000 (10:45 -0700)]
libbpf.h: add BPF_JMP_A macro
Add unconditional jump macro to use in generated bpf programs.
Roman Gushchin [Sun, 30 Sep 2018 10:33:16 +0000 (11:33 +0100)]
core: refactor bpf firewall support into a pseudo-controller
The idea is to introduce a concept of bpf-based pseudo-controllers
to make adding new bpf-based features easier.
Lennart Poettering [Tue, 9 Oct 2018 16:11:08 +0000 (18:11 +0200)]
Merge pull request #10331 from keszybz/tests-ip6-and-readme
Test suite fix and README update
Marko Myllynen [Tue, 9 Oct 2018 14:13:34 +0000 (17:13 +0300)]
More polite passphrase prompt
Instead of
Please enter passphrase for disk <disk-name>!
use
Please enter passphrase for disk <disk-name>:
which is more polite and matches Plymouth convention.
Zbigniew Jędrzejewski-Szmek [Tue, 9 Oct 2018 13:33:49 +0000 (15:33 +0200)]
Merge pull request #10136 from yuwata/run-unit-tests
test: run unit tests under containers
Zbigniew Jędrzejewski-Szmek [Tue, 9 Oct 2018 12:37:00 +0000 (14:37 +0200)]
README.testsuite: update the documentation for meson
Zbigniew Jędrzejewski-Szmek [Tue, 9 Oct 2018 12:58:22 +0000 (14:58 +0200)]
Merge pull request #10307 from poettering/portable-path
finishing touches to portable services, and let's move portablectl to /usr/bin to make it official
Yu Watanabe [Tue, 9 Oct 2018 10:19:19 +0000 (19:19 +0900)]
sd-hwdb: update error log a bit
Yu Watanabe [Tue, 9 Oct 2018 10:50:43 +0000 (19:50 +0900)]
tree-wide: use CMP() macros where applicable
Zhang Xianwei [Tue, 9 Oct 2018 10:53:25 +0000 (18:53 +0800)]
hwdb: Map 45 to bookmarks on the ThinkPad L380
The ThinkPad L380 has a F12(Favorate) key. The keycode 0x45 is mapped
to KEY_FAVORITES(0x16c) in kernel thinkpad_acpi driver, but this
keycode is too big for xorg to handle.
xkeyboard-config mapped KEY_BOOKMARKS to XF86Favorites:
keycodes/evdev:
<I164> = 164; // #define KEY_BOOKMARKS 156
symbols/inet:
key <I164> { [ XF86Favorites ] };
So map 45 to bookmarks to correct keycode.
Signed-off-by: Zhang Xianwei <zhang.xianwei8@zte.com.cn>
Zbigniew Jędrzejewski-Szmek [Tue, 9 Oct 2018 12:08:09 +0000 (14:08 +0200)]
test-execute: filter out ip6tnl0@ and ip6gre0@ interfaces
Those interfaces are created automatically when ip6_tunnel and ip6_gre loaded.
They break the test with exec-privatenetwork-yes.service.
C.f.
6b08180ca6f1ceb913f6a69ffcaf96e9818fbdf5.
Yu Watanabe [Wed, 19 Sep 2018 05:30:29 +0000 (14:30 +0900)]
test: add TEST-24-UNIT-TESTS running all basic tests under containers
Yu Watanabe [Fri, 14 Sep 2018 04:25:02 +0000 (13:25 +0900)]
test: do not use global variable to pass error
Yu Watanabe [Wed, 12 Sep 2018 18:01:42 +0000 (03:01 +0900)]
test: replace duplicated Makefile by symbolic link
Yu Watanabe [Wed, 19 Sep 2018 01:54:28 +0000 (10:54 +0900)]
test: make install_keymaps() optionally install more keymaps
Yu Watanabe [Wed, 19 Sep 2018 01:54:16 +0000 (10:54 +0900)]
test: add paths of keymaps in install_keymaps()
It seems that the paths of directories storing keymaps are changed.
Yu Watanabe [Wed, 12 Sep 2018 09:20:31 +0000 (18:20 +0900)]
test: introduce install_zoneinfo()
But it is not called by default.
Yu Watanabe [Wed, 12 Sep 2018 09:19:45 +0000 (18:19 +0900)]
test: install libraries required by tests
Lennart Poettering [Tue, 9 Oct 2018 09:59:05 +0000 (11:59 +0200)]
Merge pull request #10324 from poettering/audit-serialize-bool
properly serialize in_audit boolean
Yu Watanabe [Wed, 3 Oct 2018 19:52:44 +0000 (04:52 +0900)]
meson: use same compilers to build fuzzers
Lennart Poettering [Thu, 26 Jul 2018 15:26:18 +0000 (17:26 +0200)]
nspawn: add comments explaining the namespacing situation and the inner/outer children
Lennart Poettering [Tue, 9 Oct 2018 08:30:35 +0000 (10:30 +0200)]
Merge pull request #10323 from keszybz/test-udev-cleanup
Small cleanup for test-udev
Lennart Poettering [Mon, 30 Jul 2018 18:57:22 +0000 (20:57 +0200)]
ptyfwd: when we can't copy the window size from caller, use $LINES and $COLUMNS
This way users can directly influence the tty size if they like when
nspawn is invoked as a service and thus stdin/stdout/stderr are not
connected to a TTY.
Franck Bui [Mon, 8 Oct 2018 14:09:59 +0000 (16:09 +0200)]
core: introduce systemd.early_core_pattern= kernel cmdline option
Until a core dump handler is installed by systemd-sysctl, the generation of
core dump for services is turned OFF which can make the debugging of the early
boot process harder especially since there's no easy way to restore the core
dump generation.
This patch introduces a new kernel command line option which specifies an
absolute path where the kernel should write the core dump file when an early
process crashes.
This will take effect until systemd-coredump (or any other handlers) takes
over.
Zbigniew Jędrzejewski-Szmek [Tue, 9 Oct 2018 07:27:26 +0000 (09:27 +0200)]
test-udev: sprinkle (void) and assert_se() as necessary
CID #996263.
Zbigniew Jędrzejewski-Szmek [Tue, 9 Oct 2018 07:23:52 +0000 (09:23 +0200)]
test-udev: remove unsatisfiable conditionals
CID #1396013.
Lennart Poettering [Tue, 9 Oct 2018 08:08:44 +0000 (10:08 +0200)]
core: properly serialize "in_audit" per-unit boolean
Fixes: #9962
Lennart Poettering [Tue, 9 Oct 2018 08:05:44 +0000 (10:05 +0200)]
core: rearrange conditions in unit_notify() a bit
This shouldn't change control flow, with one exception: we won't send
notifications for boot progress to plymouth anymore during reload, which
is something we really shouldn't.
Lennart Poettering [Tue, 9 Oct 2018 07:49:04 +0000 (09:49 +0200)]
terminal-util: extra safety checks when parsing $COLUMNS or $LINES (#10314)
Let's make sure the integers we parse out are not larger than USHRT_MAX.
This is a good idea as the kernel's TIOCSWINSZ ioctl for sizing
terminals can't take larger values, and we shouldn't risk an overflow.
Lennart Poettering [Tue, 9 Oct 2018 07:45:55 +0000 (09:45 +0200)]
machine: use size_t for array sizes (#10309)
Some uses of n_netif already assumed it had time size_t. Others were a
bit sloppy. Let's clean this up.
Lennart Poettering [Tue, 9 Oct 2018 07:43:47 +0000 (09:43 +0200)]
logs-show: make highlight parameter const (#10311)
Zbigniew Jędrzejewski-Szmek [Mon, 8 Oct 2018 21:14:14 +0000 (23:14 +0200)]
Merge pull request #10175 from poettering/sd-boot-count-bootctl
the bootctl changes from PR #9437 (the boot counting PR)
Lennart Poettering [Mon, 25 Jun 2018 19:09:37 +0000 (21:09 +0200)]
bootctl: include boot entries discovered by the boot loader but not in $BOOT in the "list" output
Let's use the new LoaderEntries efi var for this, and show all entries
we couldn't find via the config snippets.
Lennart Poettering [Mon, 25 Jun 2018 17:19:09 +0000 (19:19 +0200)]
bootctl: add new verbs for setting the default boot/oneshot entry
Fixes: #5739 #8574
Lennart Poettering [Mon, 25 Jun 2018 18:12:00 +0000 (20:12 +0200)]
efivars: newer efivarfs sets FS_IMMUTABLE_FL by default, deal with that
On EFI variables that aren't whitelisted in the kernel the
FS_IMMUTABLE_FL is set, as protection against accidental
removal/modification. Since our own variables do not appear in those
whielists, and we are not changing these variables, let's unset the flag
temporarily when needed. We restore the flag after all writes, just in
case.
Lennart Poettering [Mon, 25 Jun 2018 18:04:07 +0000 (20:04 +0200)]
chattr: optionally, return the old flags when updating them
Lennart Poettering [Mon, 25 Jun 2018 13:08:24 +0000 (15:08 +0200)]
efi: allow ESP validity checks to be turned off
let's add an env var for this, as this really shouldn't be a top-level
feature, as it turning off the validity checks certainly isn't
advisable.
Fixes: #4925
Lennart Poettering [Fri, 22 Jun 2018 18:19:27 +0000 (20:19 +0200)]
man: various updates to the bootctl man page
Lennart Poettering [Fri, 22 Jun 2018 18:07:32 +0000 (20:07 +0200)]
man: document the new --no-pager switch of bootctl
Also, let's move the --help and --version items to the end of the list.
Lennart Poettering [Fri, 22 Jun 2018 18:03:49 +0000 (20:03 +0200)]
bootctl: add auto-paging
Lennart Poettering [Fri, 22 Jun 2018 18:00:19 +0000 (20:00 +0200)]
bootctl: highlight various title/product fields in output
Lennart Poettering [Fri, 22 Jun 2018 17:57:06 +0000 (19:57 +0200)]
bootctl: unify the code which we use to show boot loader entries
Lennart Poettering [Fri, 22 Jun 2018 17:46:13 +0000 (19:46 +0200)]
bootctl: downgrade to log messages that aren't actually errors
Lennart Poettering [Fri, 22 Jun 2018 17:39:17 +0000 (19:39 +0200)]
bootctl: reword status/list section headers a bit
This is really confusing, let's try to clean this up a bit, in
particular as there are two very similar concepts:
1. The boot loaders, i.e. the category you find systemd-boot, the
Windows and Apple boot loaders in. These may typically be listed in the
firmware's EFI variables.
2. The boot loader entries, as defined by the Boot Loader Spec. In this
category you find the various Linux kernels that are installed, i.e.
the stuff systemd-boot shows on screen. To make things confusing, the
Windows and Apple boot loaders can appear both as boot loaders and as
boot loader entries.
This tries to establish the following nomenclature: "boot loaders" and
"boot loader entries" for these two concepts.
Lennart Poettering [Fri, 22 Jun 2018 17:33:42 +0000 (19:33 +0200)]
bootspec: access EFI variables on on EFI boots
Lennart Poettering [Fri, 22 Jun 2018 17:32:49 +0000 (19:32 +0200)]
bootctl: show 'Default Boot Entry' header only when we found something
Lennart Poettering [Fri, 22 Jun 2018 17:31:50 +0000 (19:31 +0200)]
bootspec: it's fine if loader.conf is absent
We shouldn't generate an error in that case, as the file is optional.
Lennart Poettering [Fri, 22 Jun 2018 17:30:12 +0000 (19:30 +0200)]
bootspec: reduce number of functions we export
Let's internalize these four calls as noone else calls them.
Lennart Poettering [Fri, 22 Jun 2018 17:26:22 +0000 (19:26 +0200)]
bootspec: remove redundant logging
boot_loader_read_conf(), boot_entries_find(), boot_entries_load_config()
all log their errors internally, hence no need to log a second or third
time about the same error when they return.
Lennart Poettering [Fri, 22 Jun 2018 17:01:21 +0000 (19:01 +0200)]
test: shorten test-boot-timestamps a bit