Commit Graph
74405 Commits
Author SHA1 Message Date
Luca Boccassi fcbe3e3b2e Merge pull request #32724 from bluca/dynamic_user_no_private_tmp
core: do not imply PrivateTmp with DynamicUser, create a private tmpfs instead
2024-06-18 00:11:11 +01:00
Luca Boccassi 05c0671ce8 Merge pull request #33377 from yuwata/strbuf-cleanups
strbuf: several cleanups
2024-06-17 20:08:22 +01:00
Luca Boccassi 0cf5ebeffc Merge pull request #33375 from yuwata/trivial-follow-ups
Trivial follow ups for recent PRs
2024-06-17 20:06:46 +01:00
Luca Boccassi 42a91b3131 Merge pull request #33374 from YHNdnzj/coverity-fixes-1
core: a few more fixes for serialization
2024-06-17 20:05:58 +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
Mike Yuan f3d7ceb5c5 Merge pull request #32872 from YHNdnzj/pidref-inode
pidref: record pidfd inode number in PidRef struct
2024-06-17 18:47:44 +02:00
Luca Boccassi ac6f17987d 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.
2024-06-17 17:05:55 +01:00
Luca Boccassi 0e551b04ef 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.
2024-06-17 17:05:55 +01:00
Yu Watanabe 6548aef1cd strbuf: use _cleanup_ attribute at one more place 2024-06-18 00:26:15 +09:00
Yu Watanabe c616e30e9c strbuf: several cleanups
- use FOREACH_ARRAY(),
- add one missing assertion,
- reduce indentation.
2024-06-18 00:26:15 +09:00
Yu Watanabe 7b12b86450 strbuf: use CMP() macro
strbuf_child_entry.c is uint8_t, so using CMP() is safer.

This also adds missing assertions.
2024-06-18 00:26:15 +09:00
Yu Watanabe 4f6d8ab076 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.
2024-06-18 00:20:27 +09:00
Yu Watanabe 87e30d0e56 json: const char *func() -> const char* func()
Follow-up for 309a747fa6.
2024-06-18 00:19:59 +09:00
Yu Watanabe abeb98d185 core/mount: suffix function name with paren
Follow-up for 88188e1ff1.
2024-06-18 00:19:59 +09:00
Lennart Poettering 1b3449d8c1 logind: tweaklets 2024-06-17 16:12:55 +01: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
Mike Yuan 9f5d8c3da4 core/service: fix accept-socket deserialization
Follow-up for 45b1017488
2024-06-17 17:02:51 +02:00
Mike Yuan 42fdb14286 core: cast ignored retval of deserialize_* to void
Fixes CID#1547098
2024-06-17 16:56:19 +02:00
Mike Yuan 42e9967baf core/socket: use FOREACH_ARRAY at one more place 2024-06-17 16:56:19 +02:00
reDBo0n 64c34eb8d3 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.
2024-06-17 23:05:23 +09:00
Luca Boccassi 9981bc210a Merge pull request #33355 from YHNdnzj/shutdown-cad
shutdown: re-enable CAD handling in kernel at start, several other cleanups
2024-06-17 09:19:08 +01:00
Lennart Poettering 783236abd7 update TODO 2024-06-17 09:20:21 +02: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
Lennart Poettering aca093018c strv: add new helper strv_rebreak_lines() with a simple line breaking algorithm 2024-06-17 09:20:21 +02:00
Lennart Poettering 9632f8b465 utf8: export utf8_char_console_width() 2024-06-17 09:20:21 +02:00
Luca Boccassi f943fd9143 Merge pull request #33363 from YHNdnzj/service-serialization-cleanup
core/service: several cleanups for serialization logic
2024-06-16 23:01:35 +01:00
Luca Boccassi 65da79953b Merge pull request #33364 from YHNdnzj/utf8-modernization
basic/utf8: some modernizations
2024-06-16 22:33:08 +01:00
Mike Yuan e2b812c804 string-util: introduce string_is_safe_ascii helper 2024-06-16 19:07:35 +02:00
Mike Yuan 4d06bf5922 basic/utf8: modernize ascii_is_valid_n, make ascii_is_valid static inline 2024-06-16 19:07:35 +02:00
Mike Yuan 7ff7161044 basic/utf8: modernize utf8_is_valid_n a bit 2024-06-16 19:07:34 +02:00
Mike Yuan 156d23abc9 core/service: use r to store parsed int values 2024-06-16 19:05:29 +02:00
Mike Yuan 029df9ed7a core/service: drop unused bus_name_owner
Follow-up for fc67a943d9

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.
2024-06-16 19:00:39 +02:00
Mike Yuan a74b284073 core/service: also serialize/dump status_errno 2024-06-16 19:00:39 +02:00
Mike Yuan 301dc07347 core/service: use serialize_usec where appropriate, drop redundant debug log 2024-06-16 19:00:39 +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
Mike Yuan 0dd4a33454 shutdown: re-enable CAD handling in kernel at start 2024-06-15 19:29:03 +02:00
Mike Yuan 758760a361 shutdown: clean up sync_with_progress a bit
Also, ignore the error on caller's side.
2024-06-15 19:29:03 +02:00
Mike Yuan c1bf0571c0 string-util: modernize first_word a bit 2024-06-15 19:19:39 +02:00
Mike Yuan 58aec56d84 core/manager: correct alignment in manager_handle_ctrl_alt_del 2024-06-15 19:19:39 +02:00
Mike Yuan b5c8cc0a3b 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
2024-06-15 19:08:35 +02:00
Zbigniew Jędrzejewski-Szmek 863098fdc9 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.
2024-06-15 16:58:11 +02:00
Zbigniew Jędrzejewski-Szmek e0c7c9a00d 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.
2024-06-15 16:54:37 +02:00
Zbigniew Jędrzejewski-Szmek 8905490d94 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.
2024-06-15 16:20:19 +02:00
Zbigniew Jędrzejewski-Szmek 20fa2bb893 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.
2024-06-15 16:20:16 +02:00
Zbigniew Jędrzejewski-Szmek ed23f7cbcb 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
2024-06-15 16:20:12 +02: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