Commit Graph
9171 Commits
Author SHA1 Message Date
Yu Watanabe 280e85224e Revert "logs-show: use _SOURCE_MONOTONIC_TIMESTAMP when _SOURCE_BOOTTIME_TIMESTAMP field exists"
This reverts commit f5bdecba08.

Some kmsg sent before sleep may be received by systemd-journald after
sleep. In that case, map_clock_usec() does not provide correct
timestamp.
So, _SOURCE_MONOTONIC_TIMESTAMP field is anyway unreliable.
Let's not use the field.
2024-06-20 00:10:12 +09:00
Zbigniew Jędrzejewski-Szmek ff3f29537c various: move ptr indicator to return value 2024-06-19 16:37:12 +02:00
Zbigniew Jędrzejewski-Szmek bfd5a0687f various: move const ptr indicator to return value 2024-06-19 16:28:28 +02:00
Yu Watanabe 8f33bfeca1 varlink-idl: allow unbalanced quote and trailing backslash in comment
Fixes #33381.
Fixes OSS-FUZZ#69730.
Follow-up for fbb69c0306.
2024-06-19 14:12:20 +02:00
Luca Boccassi 07748c53df Merge pull request #33386 from yuwata/journal-timestamp
journal: fix _SOURCE_MONOTONIC_TIMESTAMP field
2024-06-18 16:27:36 +01:00
Luca Boccassi 5163c9b1e5 install: allow removing symlinks even for units that are gone
If a symlink is leftover, still allow cleaning it up via 'disable'. This
happens when a unit is stopped and removed, but not disabled, and a reload
has already happened. At that point, cleaning up the old symlinks becomes
impossible through the APIs, and needs to be done manually. Always allow
cleaning up symlinks, if they exist, by only erroring out if there is an
OOM.

Follow-up for f31f10a620
2024-06-18 16:07:26 +02:00
Yu Watanabe f5bdecba08 logs-show: use _SOURCE_MONOTONIC_TIMESTAMP when _SOURCE_BOOTTIME_TIMESTAMP field exists
With the previous commit, now the _SOURCE_MONOTONIC_TIMESTAMP field is
usable but only when _SOURCE_BOOTTIME_TIMESTAMP exists.
2024-06-18 18:01:21 +09:00
Yu Watanabe 144498e7e6 logs-show: do not use _SOURCE_MONOTONIC_TIMESTAMP field
The timestamp is not in CLOCK_MONOTONIC, but CLOCK_BOOTTIME,
while header monotonic timestamp is in CLOCK_MONOTONIC. Hence, we cannot
adjust timestamp by comparing with header monotonic timestamp and
_SOURCE_MONOTONIC_TIMESTAMP field.

Fixes a regression caused by affde1d7e7.
Fixes #33293.
2024-06-18 17:57:40 +09:00
Yu Watanabe 2dda7bd241 varlink-idl: fix typo
Follow-ups for fbb69c0306.
2024-06-18 09:12:29 +09:00
Luca Boccassi 5d42acada4 Merge pull request #33376 from yuwata/strv_sort_uniq
strv: introduce strv_sort_uniq()
2024-06-18 00:22:19 +01:00
Luca Boccassi 656b0f5031 Merge pull request #32559 from poettering/varlink-comments
varlink: add nice commenting to our varlink IDL data
2024-06-17 18:53:11 +01:00
Yu Watanabe e367b42664 tree-wide: replace strv_sort() + strv_uniq() -> strv_sort_uniq() 2024-06-18 00:37:50 +09:00
Lennart Poettering 1ad4e37da1 pretty-print: take console glyph width into account when drawing progress bar
So far this used string length, not character width. Fix that.
2024-06-17 16:12:11 +01:00
Lennart Poettering b4c91fbc07 creds: add comments to credential encryption/decryption method calls 2024-06-17 09:20:21 +02:00
Lennart Poettering ce2d2260c9 varlink: parse comments too 2024-06-17 09:20:21 +02:00
Lennart Poettering fbb69c0306 varlink: add concept for embedding comments into IDL structures 2024-06-17 09:20:21 +02:00
Mike Yuan d4d90ef900 Merge pull request #33214 from keszybz/system-clock-epoch
Rework the setting and description of system clock to the epoch
2024-06-16 17:42:47 +02:00
Luca Boccassi 2a00e92598 Merge pull request #33352 from YHNdnzj/freeconp-void
Trivial follow-ups for recent PRs
2024-06-15 19:57:13 +01:00
Zbigniew Jędrzejewski-Szmek 18c5979465 shared/clock-util: small modernization 2024-06-15 16:19:35 +02:00
Lennart Poettering 4d6222b6a4 random-util: add crypto_random_bytes_allocate_iovec()
Just a simple helper that allocates some memory, initializes it
randomly, and places this in a struct iovec.
2024-06-15 12:43:37 +01:00
Mike Yuan 2128085d0c selinux-util: make type of cleanup func void
Follow-up for 6623c64a02

Return values are pointless for _cleanup_ functions, and
this matches what we do in DEFINE_TRIVIAL_CLEANUP_FUNC().
2024-06-15 13:05:50 +02:00
Mike Yuan 609bc3ae16 Merge pull request #33037 from keszybz/dlopen-open-code-definitions
Make dlopen macros more explicit and drop mac_selinux_free()
2024-06-15 12:49:59 +02:00
Lennart Poettering 26279199cf varlink: handle NULL varlink server object gracefully in varlink_server_current_connections()
let's treat a NULL server as a server with zero connections, to make
things more convenient to use.
2024-06-15 10:57:14 +01:00
Luca Boccassi 05e69717fa Merge pull request #33329 from poettering/varlink-idl-tweaks
varlink-idl: align continuation line character \
2024-06-15 01:18:37 +01:00
Lennart Poettering aab74e1d93 pretty-print: enable stdio buffering while outputting progress bar
Writing the progress bar so far was irritatingly slow, which was caused
by the fact that the various things we output so far resulted in one
write() syscall each because STDERR is unbuffered by default.

Let's fix that, and temporarily turn on full buffering for stderr,
restoring the normal unbuffered output right after.

This makes progress bar print visibly more efficient (and flicker free
too, since terminals no longer will move the cursor around during
output).
2024-06-15 01:18:10 +01:00
Luca Boccassi 67153a7bc4 Merge pull request #33330 from poettering/copy-tweaks
Minor tweaks to copy_bytes()
2024-06-15 00:12:48 +01:00
Lennart Poettering 7d9a8cc4ac creds-util: add common helper for determinign global boot credentials path
It's very useful being able to determine the directory where to write
global boot credentials to, that are picked up by all kernels.
2024-06-14 23:52:35 +01:00
Lennart Poettering c29778a100 fs-util: add simple open_mkdir() wrapper 2024-06-14 23:50:59 +01:00
Lennart Poettering 9b2d9b07a1 copy: increase copy buffer from 16K to 64K
In my tests here this tremendously speeds up things when initializing a
1G file from /dev/urandom
2024-06-14 13:44:29 +02:00
Lennart Poettering 0de442ac31 copy: when a progress callback is provided, never copy more than 1M per iteration
Otherwise if we have to fill GB of data we might never call into the
callback, hence put some limit on how much to copy per iteration.
2024-06-14 13:44:29 +02:00
Lennart Poettering 22ed8700c7 copy: rework how we determine the number of bytes to copy in copy_bytes_full()
Let's freshly calculate "m" on each iteration and always start with the maximum
size we can. If sendfile() is used we must adhere to its limit of
SSIZE_MAX minus the current offset. Otherwise we can copy more, i.e.
SSIZE_MAX without any restrictions.

Also, if we get too close to having copied SSIZE_MAX, let's turn off
sendfile() for the rest.
2024-06-14 13:44:28 +02:00
Lennart Poettering 13e6b823a9 tpm2-util: make one sd_json_dispatch_field[] table static const 2024-06-14 13:22:47 +02:00
Lennart Poettering c16ac6ce94 varlink-idl: include line/column in a parse log msg 2024-06-14 11:23:42 +02:00
Lennart Poettering 901519d583 varlink-idl: align continuation line character \ 2024-06-14 11:22:22 +02:00
Lennart Poettering ef4bfa5524 pretty-print: make separator line grey
Let's deemphasize the line in the output a bit.
2024-06-13 09:33:13 +02:00
Lennart Poettering d3be2a75ae sd-json: rename SD_JSON_SAFE → SD_JSON_STRICT
The flag is fairly generic these days and just selects a slightly
stricter validation, with details depending on the selected dispatch
function. Hence, let's give it more precise name, in particular one that
mirrors the SD_JSON_RELAXED flag nicely (which does the opposite:
relaxes parsing)
2024-06-12 18:42:44 +02:00
Lennart Poettering 309a747fa6 libsystemd: turn json.[ch] into a public API
This is preparation for making our Varlink API a public API. Since our
Varlink API is built on top of our JSON API we need to make that public
first (it's a nice API, but JSON APIs there are already enough, this is
purely about the Varlink angle).

I made most of the json.h APIs public, and just placed them in
sd-json.h. Sometimes I wasn't so sure however, since the underlying data
structures would have to be made public too. If in doubt I didn#t risk
it, and moved the relevant API to src/libsystemd/sd-json/json-util.h
instead (without any sd_* symbol prefixes).

This is mostly a giant search/replace patch.
2024-06-12 18:42:22 +02:00
Lennart Poettering f2eb7716d0 json: merge json_dispatch_path() + json_dispatch_absolute_path()
The functions more or less do the same thing. Merge them.

This makes json_dispatch_path() the common resulting implementation. it
learnt:

1. Will reset the path to NULL if specified as null in JSON
2. Depending on the JSON_SAFE flag will insist on normalized path or not

With this the two implementations are identical, except for the
differences now toggable via JSON_SAFE flag
2024-06-12 18:39:03 +02:00
Lennart Poettering 728c35d903 Merge pull request #33045 from poettering/exit-on-idle-tweaks
bus-util: honour new env var $SYSTEMD_ALLOW_IDLE to permit turning off exit-on-idle logic in hostnamed, timedated, …
2024-06-12 17:35:56 +02:00
Zbigniew Jędrzejewski-Szmek 8e215e938a Move two functions only used in timesyncd from libshared to the binary 2024-06-12 15:33:56 +02:00
Zbigniew Jędrzejewski-Szmek 6623c64a02 selinux: kill mac_selinux_free()
It was a redundant wrapper around freecon.

test-selinux needs to be adjusted because it now needs to be linked to
libselinux, instead of pulling it in via libshared.
2024-06-12 15:21:21 +02:00
Zbigniew Jędrzejewski-Szmek 5c672e90a6 basic/dlfcn-util: deobfuscate macro definitions
When looking at how dlopen for various libs is implemented, I found that the
macros hide too much. I find it much easier to see what is going on if 'extern'
and '= NULL' are written explicitly. After all, we don't hide those for other
definitions, e.g. our style guide says that static variables should be
initialized with '= NULL'. With that change, it's much more obvious what is
a variable declaration and what is a variable initialization.
2024-06-12 15:21:15 +02:00
Luca Boccassi aa6d1f16e8 Merge pull request #33284 from yuwata/hwdb-optimize
hwdb: improve performance
2024-06-12 14:02:25 +01:00
Lennart Poettering e72d5955f6 bus-util: add log message when exiting because of idle 2024-06-12 12:53:54 +02:00
Lennart Poettering afc55a5eff bus-util: add env var for disabling exit-on-idle 2024-06-12 12:53:53 +02:00
Lennart Poettering bfb374e014 core: split out smbios type 11 reader into src/shared/smbios11.[ch] 2024-06-12 12:48:06 +02:00
Daan De Meyer b99b294127 repart: Use crypt_reencrypt_run() if available
crypt_reencrypt() is deprecated, so let's look for and prefer
crypt_reencrypt_run() if it is available.
2024-06-12 18:53:37 +09:00
Yu Watanabe 42d281a197 Merge pull request #32972 from keszybz/small-cleanups
Small cleanups
2024-06-12 18:38:09 +09:00
Daan De Meyer d6518003f8 tpm2-setup: Don't fail if we can't access the TPM due to authorization failure
The TPM might be password/pin protected for various reasons even if
there is no SRK yet. Let's handle those cases gracefully instead of
failing the unit as it is enabled by default.
2024-06-12 18:31:21 +09:00
Yu Watanabe f7da67db58 Merge pull request #32720 from poettering/hostnamed-no-varlink-exit-on-idle
hostnamed: exit-on-idle tweaks
2024-06-12 18:25:24 +09:00