]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
18 months agoMerge pull request #32724 from bluca/dynamic_user_no_private_tmp
Luca Boccassi [Mon, 17 Jun 2024 23:11:11 +0000 (00:11 +0100)] 
Merge pull request #32724 from bluca/dynamic_user_no_private_tmp

core: do not imply PrivateTmp with DynamicUser, create a private tmpfs instead

18 months agoMerge pull request #33377 from yuwata/strbuf-cleanups
Luca Boccassi [Mon, 17 Jun 2024 19:08:22 +0000 (20:08 +0100)] 
Merge pull request #33377 from yuwata/strbuf-cleanups

strbuf: several cleanups

18 months agoMerge pull request #33375 from yuwata/trivial-follow-ups
Luca Boccassi [Mon, 17 Jun 2024 19:06:46 +0000 (20:06 +0100)] 
Merge pull request #33375 from yuwata/trivial-follow-ups

Trivial follow ups for recent PRs

18 months agoMerge pull request #33374 from YHNdnzj/coverity-fixes-1
Luca Boccassi [Mon, 17 Jun 2024 19:05:58 +0000 (20:05 +0100)] 
Merge pull request #33374 from YHNdnzj/coverity-fixes-1

core: a few more fixes for serialization

18 months agoMerge pull request #32559 from poettering/varlink-comments
Luca Boccassi [Mon, 17 Jun 2024 17:53:11 +0000 (18:53 +0100)] 
Merge pull request #32559 from poettering/varlink-comments

varlink: add nice commenting to our varlink IDL data

18 months agoMerge pull request #32872 from YHNdnzj/pidref-inode
Mike Yuan [Mon, 17 Jun 2024 16:47:44 +0000 (18:47 +0200)] 
Merge pull request #32872 from YHNdnzj/pidref-inode

pidref: record pidfd inode number in PidRef struct

18 months agoportable: drop explicit PrivateTmp=yes from profiles 32724/head
Luca Boccassi [Wed, 8 May 2024 19:16:05 +0000 (20:16 +0100)] 
portable: drop explicit PrivateTmp=yes from profiles

It is already implied by DynamicUser=yes if not set, but dropping it
allows users to instead define TemporaryFileSystem=/tmp/ /var/tmp/
in their portable services, which has fewer side effects.

18 months agocore: do not imply PrivateTmp with DynamicUser, create a private tmpfs instead
Luca Boccassi [Wed, 8 May 2024 19:12:57 +0000 (20:12 +0100)] 
core: do not imply PrivateTmp with DynamicUser, create a private tmpfs instead

DynamicUser= enables PrivateTmp= implicitly to avoid files owned by reusable uids
leaking into the host. Change it to instead create a fully private tmpfs instance
instead, which also ensures the same result, since it has less impactful semantics
with respect to PrivateTmp=yes, which links the mount namespace to the host's /tmp
instead. If a user specifies PrivateTmp manually, let the existing behaviour
unchanged to ensure backward compatibility is not broken.

18 months agostrbuf: use _cleanup_ attribute at one more place 33377/head
Yu Watanabe [Wed, 12 Jun 2024 15:24:38 +0000 (00:24 +0900)] 
strbuf: use _cleanup_ attribute at one more place

18 months agostrbuf: several cleanups
Yu Watanabe [Wed, 12 Jun 2024 15:20:26 +0000 (00:20 +0900)] 
strbuf: several cleanups

- use FOREACH_ARRAY(),
- add one missing assertion,
- reduce indentation.

18 months agostrbuf: use CMP() macro
Yu Watanabe [Wed, 12 Jun 2024 15:17:20 +0000 (00:17 +0900)] 
strbuf: use CMP() macro

strbuf_child_entry.c is uint8_t, so using CMP() is safer.

This also adds missing assertions.

18 months agotest-network: mention that the captive portal option is supported since v2.20 33375/head
Yu Watanabe [Mon, 17 Jun 2024 15:09:03 +0000 (00:09 +0900)] 
test-network: mention that the captive portal option is supported since v2.20

The current latest release is v2.19, hence the test is typically skipped now.

18 months agojson: const char *func() -> const char* func()
Yu Watanabe [Mon, 17 Jun 2024 14:10:18 +0000 (23:10 +0900)] 
json: const char *func() -> const char* func()

Follow-up for 309a747fa6cfeac0a0165543f23a924866727c9b.

18 months agocore/mount: suffix function name with paren
Yu Watanabe [Mon, 17 Jun 2024 14:08:36 +0000 (23:08 +0900)] 
core/mount: suffix function name with paren

Follow-up for 88188e1ff1ffa2a4a41c9b8ee127f75cc03bc18d.

18 months agologind: tweaklets
Lennart Poettering [Mon, 27 May 2024 12:33:22 +0000 (14:33 +0200)] 
logind: tweaklets

18 months agopretty-print: take console glyph width into account when drawing progress bar
Lennart Poettering [Fri, 24 May 2024 11:56:10 +0000 (13:56 +0200)] 
pretty-print: take console glyph width into account when drawing progress bar

So far this used string length, not character width. Fix that.

18 months agocore/service: fix accept-socket deserialization 33374/head
Mike Yuan [Mon, 17 Jun 2024 05:47:20 +0000 (07:47 +0200)] 
core/service: fix accept-socket deserialization

Follow-up for 45b1017488cef2a5bacdf82028ce900a311c9a1c

18 months agocore: cast ignored retval of deserialize_* to void
Mike Yuan [Mon, 17 Jun 2024 05:21:43 +0000 (07:21 +0200)] 
core: cast ignored retval of deserialize_* to void

Fixes CID#1547098

18 months agocore/socket: use FOREACH_ARRAY at one more place
Mike Yuan [Mon, 17 Jun 2024 14:39:59 +0000 (16:39 +0200)] 
core/socket: use FOREACH_ARRAY at one more place

18 months agohwdb: add support for AIPTEK Media Tablet Ultimate (#33371)
reDBo0n [Mon, 17 Jun 2024 14:05:23 +0000 (16:05 +0200)] 
hwdb: add support for AIPTEK Media Tablet Ultimate (#33371)

The "AIPTEK Media Tablet Ultimate", detected as "Waltop International Corp. Batteryless Tablet",
is missing the resolution of the x-/y-axes.

Adding a new rule to 60-evdev.hwdb with the same values as another entry
"WALTOP International Corp. Batteryless Tablet" just with another matching string makes the
device usable.

Fixes #33362.

18 months agoMerge pull request #33355 from YHNdnzj/shutdown-cad
Luca Boccassi [Mon, 17 Jun 2024 08:19:08 +0000 (09:19 +0100)] 
Merge pull request #33355 from YHNdnzj/shutdown-cad

shutdown: re-enable CAD handling in kernel at start, several other cleanups

18 months agoupdate TODO 32559/head
Lennart Poettering [Mon, 29 Apr 2024 13:47:17 +0000 (15:47 +0200)] 
update TODO

18 months agocreds: add comments to credential encryption/decryption method calls
Lennart Poettering [Fri, 26 Apr 2024 15:44:12 +0000 (17:44 +0200)] 
creds: add comments to credential encryption/decryption method calls

18 months agovarlink: parse comments too
Lennart Poettering [Mon, 29 Apr 2024 13:33:02 +0000 (15:33 +0200)] 
varlink: parse comments too

18 months agovarlink: add concept for embedding comments into IDL structures
Lennart Poettering [Fri, 26 Apr 2024 15:43:21 +0000 (17:43 +0200)] 
varlink: add concept for embedding comments into IDL structures

18 months agostrv: add new helper strv_rebreak_lines() with a simple line breaking algorithm
Lennart Poettering [Fri, 26 Apr 2024 15:40:32 +0000 (17:40 +0200)] 
strv: add new helper strv_rebreak_lines() with a simple line breaking algorithm

18 months agoutf8: export utf8_char_console_width()
Lennart Poettering [Fri, 26 Apr 2024 15:40:54 +0000 (17:40 +0200)] 
utf8: export utf8_char_console_width()

18 months agoMerge pull request #33363 from YHNdnzj/service-serialization-cleanup
Luca Boccassi [Sun, 16 Jun 2024 22:01:35 +0000 (23:01 +0100)] 
Merge pull request #33363 from YHNdnzj/service-serialization-cleanup

core/service: several cleanups for serialization logic

18 months agoMerge pull request #33364 from YHNdnzj/utf8-modernization
Luca Boccassi [Sun, 16 Jun 2024 21:33:08 +0000 (22:33 +0100)] 
Merge pull request #33364 from YHNdnzj/utf8-modernization

basic/utf8: some modernizations

18 months agostring-util: introduce string_is_safe_ascii helper 33364/head
Mike Yuan [Thu, 9 May 2024 14:01:07 +0000 (22:01 +0800)] 
string-util: introduce string_is_safe_ascii helper

18 months agobasic/utf8: modernize ascii_is_valid_n, make ascii_is_valid static inline
Mike Yuan [Thu, 9 May 2024 13:58:36 +0000 (21:58 +0800)] 
basic/utf8: modernize ascii_is_valid_n, make ascii_is_valid static inline

18 months agobasic/utf8: modernize utf8_is_valid_n a bit
Mike Yuan [Thu, 9 May 2024 13:55:09 +0000 (21:55 +0800)] 
basic/utf8: modernize utf8_is_valid_n a bit

18 months agocore/service: use r to store parsed int values 33363/head
Mike Yuan [Sun, 16 Jun 2024 16:58:42 +0000 (18:58 +0200)] 
core/service: use r to store parsed int values

18 months agocore/service: drop unused bus_name_owner
Mike Yuan [Sun, 16 Jun 2024 16:40:39 +0000 (18:40 +0200)] 
core/service: drop unused bus_name_owner

Follow-up for fc67a943d989d5e74577adea9676cdc7928b08fc

After the mentioned comment, we no longer need to record
the owner to restore the previous bus owner state.
Therefore, bus_name_owner is effectively unused. Kill it.

18 months agocore/service: also serialize/dump status_errno
Mike Yuan [Sun, 16 Jun 2024 16:34:27 +0000 (18:34 +0200)] 
core/service: also serialize/dump status_errno

18 months agocore/service: use serialize_usec where appropriate, drop redundant debug log
Mike Yuan [Sun, 16 Jun 2024 16:16:23 +0000 (18:16 +0200)] 
core/service: use serialize_usec where appropriate, drop redundant debug log

18 months agoMerge pull request #33214 from keszybz/system-clock-epoch
Mike Yuan [Sun, 16 Jun 2024 15:42:47 +0000 (17:42 +0200)] 
Merge pull request #33214 from keszybz/system-clock-epoch

Rework the setting and description of system clock to the epoch

18 months agoMerge pull request #33352 from YHNdnzj/freeconp-void
Luca Boccassi [Sat, 15 Jun 2024 18:57:13 +0000 (19:57 +0100)] 
Merge pull request #33352 from YHNdnzj/freeconp-void

Trivial follow-ups for recent PRs

18 months agoshutdown: re-enable CAD handling in kernel at start 33355/head
Mike Yuan [Wed, 5 Jun 2024 15:57:07 +0000 (17:57 +0200)] 
shutdown: re-enable CAD handling in kernel at start

18 months agoshutdown: clean up sync_with_progress a bit
Mike Yuan [Wed, 5 Jun 2024 15:53:27 +0000 (17:53 +0200)] 
shutdown: clean up sync_with_progress a bit

Also, ignore the error on caller's side.

18 months agostring-util: modernize first_word a bit
Mike Yuan [Wed, 5 Jun 2024 14:54:29 +0000 (16:54 +0200)] 
string-util: modernize first_word a bit

18 months agocore/manager: correct alignment in manager_handle_ctrl_alt_del
Mike Yuan [Wed, 12 Jun 2024 13:48:06 +0000 (15:48 +0200)] 
core/manager: correct alignment in manager_handle_ctrl_alt_del

18 months agoman,units: drop "temporary" from description of systemd-tmpfiles
Mike Yuan [Sat, 15 Jun 2024 15:27:33 +0000 (17:27 +0200)] 
man,units: drop "temporary" from description of systemd-tmpfiles

Historically, systemd-tmpfiles was designed to manager temporary
files, but nowadays it has become a generic tool for managing
all kinds of files. To avoid user confusion, let's remove "temporary"
from the tool's description.

As discussed in #33349

18 months agoman: describe setting of the clock by systemd and systemd-timesyncd 33214/head
Zbigniew Jędrzejewski-Szmek [Wed, 5 Jun 2024 12:15:21 +0000 (14:15 +0200)] 
man: describe setting of the clock by systemd and systemd-timesyncd

The setting of systemd clock is important and deserves an accurate description,
see for example:
https://discussion.fedoraproject.org/t/f38-to-f39-40-dnf-system-upgrade-can-fail-on-raspberry-pi/92403
https://bugzilla.redhat.com/show_bug.cgi?id=2242759

The meat of the description was in systemd-timesyncd.service(8), but
actually it's systemd that sets the clock. In particular, systemd-timesyncd
doesn't know anything about /usr/lib/clock-epoch, and since systemd sets
the clock to the epoch when initializing, systemd-timesyncd would only
get to advance the clock to the epoch under special circumstances.
Also, systemd-timesyncd is an optional component, so we can't even rely
on its man page being installed in all circumstances. The description needs
to be moved to systemd(1).

The description is updated to describe the changes that were made in
previous commits.

18 months agomanager: add structured log message about clock bump
Zbigniew Jędrzejewski-Szmek [Wed, 12 Jun 2024 09:55:14 +0000 (11:55 +0200)] 
manager: add structured log message about clock bump

Requested in https://github.com/systemd/systemd/pull/33214#discussion_r1630251308.
Also, reword error messages a bit. When /usr/lib/clock-epoch was introduced,
"build time" stopped being acurate. Just say "epoch" instead.

The same message ID is used in the manager and timesyncd. The event is
essentially equivalent for the user, and it seems reasonable that to search for
both at the same time.

The catalog entry is dropped. It provided almost no additional information above
the message. When the same message ID is now applied to messages from PID1 and
timesyncd, and the clock can be both advanced and rewound, it becomes very hard
to make the catalog entry provide something useful, because catalog entries don't
allow conditionalization.

18 months agotimesyncd: simplify handling of timestamps
Zbigniew Jędrzejewski-Szmek [Wed, 5 Jun 2024 11:31:07 +0000 (13:31 +0200)] 
timesyncd: simplify handling of timestamps

We would attempt to take the built-in epoch twice. Since
advance_tstamp() is only called from one place, we don't need to do that.
Also, just pass usec_t instead of a pointer to stat buf.

Don't say we set the clock to "recorded timestamp" if we just set it
to the built-in epoch. Also, consistently say "advance" to make it clear
that we'll not attempt to rewind the clock here.

18 months agomanager: apply clock epoch on updates too
Zbigniew Jędrzejewski-Szmek [Wed, 5 Jun 2024 11:21:45 +0000 (13:21 +0200)] 
manager: apply clock epoch on updates too

If we're updating on a system with an invalid clock, and we're installing
a newer system version with a higher update, adjust the clock. This
way the invariant that the clock is always later than
max(compile time, timestamp file, other timestamp file) is maintained.

Also, adjust the wording of messages. When /usr/lib/clock-epoch was
introduced, "build time" stopped being acurate. Just say "epoch" instead.

18 months agomanager: use max of: compile epoch, epoch file, timesyncd file
Zbigniew Jędrzejewski-Szmek [Wed, 5 Jun 2024 10:50:52 +0000 (12:50 +0200)] 
manager: use max of: compile epoch, epoch file, timesyncd file

Previously systemd would not use /var/lib/systemd/timesync/clock. This means
that even if /var/ is mounted when systemd is started and the file is
available, we would potentially make one time jump and than another time jump.
From a user's POV, this doesn't seem useful at all.

Also, we would always let /usr/lib/clock-epoch take priority over the built-in
epoch. But there is no guarantee that this file is actually fresh. In
particular, a user may touch /usr/lib/clock-epoch to work around a broken clock
during installation (as recommended in [1]), and then this file will grow stale
over time.

So just load the three timestamps and use the highest one as the epoch.

[1] https://discussion.fedoraproject.org/t/f38-to-f39-40-dnf-system-upgrade-can-fail-on-raspberry-pi/92403

18 months agoshared/clock-util: small modernization
Zbigniew Jędrzejewski-Szmek [Wed, 12 Jun 2024 08:24:52 +0000 (10:24 +0200)] 
shared/clock-util: small modernization

18 months agorandom-util: add crypto_random_bytes_allocate_iovec()
Lennart Poettering [Thu, 6 Jun 2024 09:21:02 +0000 (11:21 +0200)] 
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.

18 months agoimportd: unify setup of bus connectivity in one place
Lennart Poettering [Tue, 7 May 2024 15:44:31 +0000 (17:44 +0200)] 
importd: unify setup of bus connectivity in one place

18 months agoselinux-util: make type of cleanup func void 33352/head
Mike Yuan [Sat, 15 Jun 2024 10:55:45 +0000 (12:55 +0200)] 
selinux-util: make type of cleanup func void

Follow-up for 6623c64a02fae52103cdc9c80dfcabec9eeaf8ba

Return values are pointless for _cleanup_ functions, and
this matches what we do in DEFINE_TRIVIAL_CLEANUP_FUNC().

18 months agomissing_loop: add missing assertions for fallback values
Mike Yuan [Sat, 15 Jun 2024 10:55:21 +0000 (12:55 +0200)] 
missing_loop: add missing assertions for fallback values

18 months agomacro-fundamental: correct comment and remove trailing ';' for macro
Mike Yuan [Sat, 15 Jun 2024 10:54:44 +0000 (12:54 +0200)] 
macro-fundamental: correct comment and remove trailing ';' for macro

Follow-up for 3c2f2146f50c75662987541719bedc4aee9df939

18 months agoMerge pull request #33037 from keszybz/dlopen-open-code-definitions
Mike Yuan [Sat, 15 Jun 2024 10:49:59 +0000 (12:49 +0200)] 
Merge pull request #33037 from keszybz/dlopen-open-code-definitions

Make dlopen macros more explicit and drop mac_selinux_free()

18 months agojson: extend JsonDispatch flags with nullable and refuse-null flags
Lennart Poettering [Wed, 8 May 2024 07:42:12 +0000 (09:42 +0200)] 
json: extend JsonDispatch flags with nullable and refuse-null flags

currently when dispatching json objects into C structs we either insist
on the field type or we don't. Let's extend this model a bit: depending
on two new fields either allow or refuse null types in addition to the
specified type.

This is useful for example when dispatch enums as this allows us
explicitly refuse null in various scenarios where we allow multiple
types.

18 months agovarlink: handle NULL varlink server object gracefully in varlink_server_current_conne...
Lennart Poettering [Wed, 8 May 2024 08:40:48 +0000 (10:40 +0200)] 
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.

18 months agomachined: use bus_message_read_id128() at one more place
Lennart Poettering [Mon, 13 May 2024 13:02:37 +0000 (07:02 -0600)] 
machined: use bus_message_read_id128() at one more place

18 months agoMerge pull request #33329 from poettering/varlink-idl-tweaks
Luca Boccassi [Sat, 15 Jun 2024 00:18:37 +0000 (01:18 +0100)] 
Merge pull request #33329 from poettering/varlink-idl-tweaks

varlink-idl: align continuation line character \

18 months agopretty-print: enable stdio buffering while outputting progress bar
Lennart Poettering [Fri, 24 May 2024 09:56:13 +0000 (11:56 +0200)] 
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).

18 months agoutf8: let utf8_console_width() handle NULL strings somewhat reasonably
Lennart Poettering [Fri, 26 Apr 2024 15:41:38 +0000 (17:41 +0200)] 
utf8: let utf8_console_width() handle NULL strings somewhat reasonably

18 months agoMerge pull request #33325 from poettering/vsock-ret-optional
Luca Boccassi [Fri, 14 Jun 2024 23:45:28 +0000 (00:45 +0100)] 
Merge pull request #33325 from poettering/vsock-ret-optional

socket-util: make return parameter for socket_address_parse_vsock() o…

18 months agojson: add sd_json_dispatch_double() helper
Lennart Poettering [Wed, 8 May 2024 07:11:13 +0000 (09:11 +0200)] 
json: add sd_json_dispatch_double() helper

18 months agoMerge pull request #33334 from poettering/machined-more-pidfd
Luca Boccassi [Fri, 14 Jun 2024 23:13:50 +0000 (00:13 +0100)] 
Merge pull request #33334 from poettering/machined-more-pidfd

machined: prefer pinning clients via pidfd when creating machine, rat…

18 months agoMerge pull request #33330 from poettering/copy-tweaks
Luca Boccassi [Fri, 14 Jun 2024 23:12:48 +0000 (00:12 +0100)] 
Merge pull request #33330 from poettering/copy-tweaks

Minor tweaks to copy_bytes()

18 months agosrc/basic/missing_loop.h: fix missing LOOP_SET_BLOCK_SIZE
Raphaël Mélotte [Fri, 14 Jun 2024 12:37:29 +0000 (14:37 +0200)] 
src/basic/missing_loop.h: fix missing LOOP_SET_BLOCK_SIZE

Builds with kernels headers < 4.14 fail with:

../src/shared/loop-util.c: In function ‘loop_configure_fallback’:
../src/shared/loop-util.c:237:31: error: ‘LOOP_SET_BLOCK_SIZE’ undeclared (first use in this function); did you mean ‘LOOP_SET_DIRECT_IO’?
                 if (ioctl(fd, LOOP_SET_BLOCK_SIZE, (unsigned long) c->block_size) < 0)
                               ^~~~~~~~~~~~~~~~~~~
                               LOOP_SET_DIRECT_IO

Fixes: https://github.com/systemd/systemd/issues/33341
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
18 months agoman: add a bit of a warning to systemd-tmpfiles --purge
Nick Rosbrook [Fri, 14 Jun 2024 21:31:22 +0000 (17:31 -0400)] 
man: add a bit of a warning to systemd-tmpfiles --purge

Mention that by default, /home is managed by tmpfiles.d/home.conf, and
recommend that users run systemd-tmpfiles --dry-run --purge first to
see exactly what will be removed.

18 months agocreds-util: add common helper for determinign global boot credentials path
Lennart Poettering [Thu, 6 Jun 2024 10:14:35 +0000 (12:14 +0200)] 
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.

18 months agofs-util: add simple open_mkdir() wrapper
Lennart Poettering [Thu, 6 Jun 2024 13:23:01 +0000 (15:23 +0200)] 
fs-util: add simple open_mkdir() wrapper

18 months agostring-util: make sure strrepa() doesn't doubly evaluate expressions
Lennart Poettering [Wed, 22 May 2024 13:42:56 +0000 (15:42 +0200)] 
string-util: make sure strrepa() doesn't doubly evaluate expressions

18 months agopcrlock: move event_log_reduce_to_safe_pcrs() down a bit
Lennart Poettering [Wed, 5 Jun 2024 19:47:43 +0000 (21:47 +0200)] 
pcrlock: move event_log_reduce_to_safe_pcrs() down a bit

Let's keep the verb_lock_xyz() and verb_unlock_xyz() calls together, and
move event_log_reduce_to_safe_pcrs() which so far was in betwee them all
further down closer to where the function is actually used.

18 months agopcrlock: don't override conf_root parameter for boot_entry_token_ensure()
Lennart Poettering [Mon, 10 Jun 2024 12:57:18 +0000 (14:57 +0200)] 
pcrlock: don't override conf_root parameter for boot_entry_token_ensure()

if we pass NULL boot_entry_token_ensure() will use its own default,
which is the same as what we passed so far explicitly, hence let's make
use of that.

18 months agofileio: add new helper write_base64_file_at() which encodes a binary object into...
Lennart Poettering [Mon, 10 Jun 2024 12:50:18 +0000 (14:50 +0200)] 
fileio: add new helper write_base64_file_at() which encodes a binary object into base64 and writes it to a file

18 months agovmspawn: report "systemd-vmspawn" as "service" to machined
Lennart Poettering [Mon, 27 May 2024 12:34:10 +0000 (14:34 +0200)] 
vmspawn: report "systemd-vmspawn" as "service" to machined

The "service" field that one is supposed to pass to machine is supposed
to indicate the implementation of the client, not the service unit the
client runs in (which is typically even a scope unit, not a system
unit). Hence fix that, and make it closely match what systemd-nspawn
does.

18 months agonspawn: use parse_boolean_argument() at two places
Lennart Poettering [Mon, 27 May 2024 11:29:45 +0000 (13:29 +0200)] 
nspawn: use parse_boolean_argument() at two places

18 months agoutf8: assume tabs are 8 characters wide when written to console
Lennart Poettering [Fri, 26 Apr 2024 15:41:15 +0000 (17:41 +0200)] 
utf8: assume tabs are 8 characters wide when written to console

18 months agofundamental: declare flex array updated for gcc15 and clang 19
Cristian Rodríguez [Thu, 13 Jun 2024 15:59:28 +0000 (11:59 -0400)] 
fundamental: declare flex array updated for gcc15 and clang 19

Silly workaround that:
- allowed flexible arrays in unions
- allowed flexible arrays in otherwise empty structs

Is no longer needed since https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=adb1c8a0f167c3a1f7593d75f5a10eb07a5d741a
(GCC15) or clang 19 https://github.com/llvm/llvm-project/commit/14ba782a87e16e9e15460a51f50e67e2744c26d9

18 months agopidref: record pidfd inode number in PidRef struct 32872/head
Mike Yuan [Thu, 23 May 2024 14:19:05 +0000 (22:19 +0800)] 
pidref: record pidfd inode number in PidRef struct

Besides internal comparisons, the inode number of pidfds
might be interesting directly to users, too. In the future
this field should also be exposed, so that it can serve as
a unique identifier of a process (but only for display,
as there's no method to map this back to a pid or pidfd).

18 months agopidref: introduce pidfd_inode_ids_supported helper
Mike Yuan [Wed, 22 May 2024 11:27:36 +0000 (19:27 +0800)] 
pidref: introduce pidfd_inode_ids_supported helper

Also, correct the comment about pidfs (added in kernel 6.9
rather than 6.8).

Co-authored-by: Lennart Poettering <lennart@poettering.net>
18 months agocopy: increase copy buffer from 16K to 64K 33330/head
Lennart Poettering [Fri, 24 May 2024 10:18:23 +0000 (12:18 +0200)] 
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

18 months agocopy: when a progress callback is provided, never copy more than 1M per iteration
Lennart Poettering [Fri, 24 May 2024 10:17:00 +0000 (12:17 +0200)] 
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.

18 months agocopy: rework how we determine the number of bytes to copy in copy_bytes_full()
Lennart Poettering [Fri, 24 May 2024 10:02:42 +0000 (12:02 +0200)] 
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.

18 months agoiovec-util: add exported constant empty but valid (i.e. non-NULL) iovec
Lennart Poettering [Mon, 3 Jun 2024 15:39:04 +0000 (17:39 +0200)] 
iovec-util: add exported constant empty but valid (i.e. non-NULL) iovec

Also, make sure the NUL byte iovec becomes an exported constant too.

This is better than the previous situation where this was a macro
resolving to a compount expression, since the lifetime of the expression
is limited to its invoking scope. By turning this into a proper variable
the lifetime becomes unbounded, which makes it easier to use in various
scenarios, such as "if" blocks.

18 months agoanalyze: show pcrs also in sha384 bank
Lennart Poettering [Tue, 4 Jun 2024 09:02:34 +0000 (11:02 +0200)] 
analyze: show pcrs also in sha384 bank

SHA384 is pretty much the bank we actually *want* to use, since it's
faster to calculate than SHA256, hence at the very least, start
considering.

18 months agomachined: use pidref instead of just pid when determining unit of pid when registerin... 33334/head
Lennart Poettering [Mon, 27 May 2024 10:03:35 +0000 (12:03 +0200)] 
machined: use pidref instead of just pid when determining unit of pid when registering machine

18 months agomachined: prefer pinning clients via pidfd when creating machine, rather than PID
Lennart Poettering [Mon, 13 May 2024 13:06:30 +0000 (07:06 -0600)] 
machined: prefer pinning clients via pidfd when creating machine, rather than PID

18 months agomachined: modernize method_create_or_register_machine() return parameter naming
Lennart Poettering [Mon, 13 May 2024 13:05:49 +0000 (07:05 -0600)] 
machined: modernize method_create_or_register_machine() return parameter naming

18 months agoMerge pull request #33312 from poettering/cryptsetup-merge-no-token
Lennart Poettering [Fri, 14 Jun 2024 11:24:08 +0000 (13:24 +0200)] 
Merge pull request #33312 from poettering/cryptsetup-merge-no-token

cryptsetup: merge two mostly equivalent functions

18 months agotpm2-util: make one sd_json_dispatch_field[] table static const
Lennart Poettering [Mon, 3 Jun 2024 15:50:55 +0000 (17:50 +0200)] 
tpm2-util: make one sd_json_dispatch_field[] table static const

18 months agovarlink-idl: include line/column in a parse log msg 33329/head
Lennart Poettering [Thu, 23 May 2024 09:01:31 +0000 (11:01 +0200)] 
varlink-idl: include line/column in a parse log msg

18 months agovarlink-idl: align continuation line character \
Lennart Poettering [Fri, 26 Apr 2024 15:43:42 +0000 (17:43 +0200)] 
varlink-idl: align continuation line character \

18 months agomachined: initialize CID of '.host' pseudo-machine to 1 (i.e. the loopback vsock... 33325/head
Lennart Poettering [Thu, 23 May 2024 21:34:39 +0000 (23:34 +0200)] 
machined: initialize CID of '.host' pseudo-machine to 1 (i.e. the loopback vsock address)

18 months agosocket-util: make return parameter for socket_address_parse_vsock() optional
Lennart Poettering [Thu, 23 May 2024 21:33:38 +0000 (23:33 +0200)] 
socket-util: make return parameter for socket_address_parse_vsock() optional

18 months agocryptsetup: downgrade log message to warning, when we ignore it 33312/head
Lennart Poettering [Mon, 10 Jun 2024 15:46:52 +0000 (17:46 +0200)] 
cryptsetup: downgrade log message to warning, when we ignore it

18 months agocryptsetup: merge two mostly equivalent functions
Lennart Poettering [Mon, 10 Jun 2024 15:47:43 +0000 (17:47 +0200)] 
cryptsetup: merge two mostly equivalent functions

18 months agosd-json: make static analyzers shut up
Lennart Poettering [Thu, 13 Jun 2024 13:22:27 +0000 (15:22 +0200)] 
sd-json: make static analyzers shut up

https://github.com/systemd/systemd/pull/32628#pullrequestreview-2115501478

18 months agoMerge pull request #33046 from poettering/varlinkctl-quiet
Luca Boccassi [Thu, 13 Jun 2024 15:17:17 +0000 (16:17 +0100)] 
Merge pull request #33046 from poettering/varlinkctl-quiet

varlinkctl: add --quiet/-q switch for suppressing method call reply output

18 months agoio-util: move fputs_with_newline to fileio
Mike Yuan [Thu, 13 Jun 2024 11:57:25 +0000 (13:57 +0200)] 
io-util: move fputs_with_newline to fileio

Follow-up for cdf6f34a2fd1448c5d1b75f4717c57b057dd51b2

We already have other fputs()-like helpers in fileio rather than
io-util. While at it, switch the order of params.

18 months agonamespace: rename 'n' to 'n_mount_images'
Lennart Poettering [Thu, 13 Jun 2024 13:26:23 +0000 (15:26 +0200)] 
namespace: rename 'n' to 'n_mount_images'

Let's make clear what this actually counts (at least initially).

18 months agocryptsetup: manual FIDO2 PIN, UP and UV configuration
Kamil Szczęk [Fri, 7 Jun 2024 14:48:41 +0000 (16:48 +0200)] 
cryptsetup: manual FIDO2 PIN, UP and UV configuration

When in FIDO2 mode with manual parameters, i.e. when not reading the
parameters off the LUKS2 header, the current behavior in regards to PIN,
UP and UV features is to default to v248 logic, where we use PIN + UP
when needed, and do not configure UV at all. Let's allow users to
configure those features in manual mode too.