]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 years agokmod-setup: Add early loading for virtio_console 27327/head
Daan De Meyer [Tue, 18 Apr 2023 11:20:37 +0000 (13:20 +0200)] 
kmod-setup: Add early loading for virtio_console

getty-generator enables serial-getty@.service for virtualizer consoles
that it can find in /sys/class/tty. To make sure this works for
virtio consoles, let's make sure we load the module is loaded early
so that the /sys/class/tty/hvc0 exists before we run getty-generator.

2 years agocore: Parse logging environment earlier
Daan De Meyer [Tue, 18 Apr 2023 11:15:20 +0000 (13:15 +0200)] 
core: Parse logging environment earlier

Let's make sure we parse the logging environment ASAP so that the
options apply to more code. e.g. to allow debugging kmod-setup.c
for example.

2 years agokmod-setup: Introduce match_modalias_recurse_dir_cb()
Daan De Meyer [Tue, 18 Apr 2023 08:47:13 +0000 (10:47 +0200)] 
kmod-setup: Introduce match_modalias_recurse_dir_cb()

Let's make the logic around matching a modalias a bit more generic.

2 years agostring-util: Add startswith_strv()
Daan De Meyer [Tue, 18 Apr 2023 11:11:45 +0000 (13:11 +0200)] 
string-util: Add startswith_strv()

This is the function version of STARTSWITH_SET(). We also move
STARTSWITH_SET() to string-util.h as it fits more there than in
strv.h and reimplement it using startswith_strv().

2 years agomkosi: Disable kmsg ratelimiting
Daan De Meyer [Thu, 20 Apr 2023 08:33:10 +0000 (10:33 +0200)] 
mkosi: Disable kmsg ratelimiting

2 years agolog: Log when kmsg is being ratelimited
Daan De Meyer [Thu, 20 Apr 2023 08:43:21 +0000 (10:43 +0200)] 
log: Log when kmsg is being ratelimited

Let's avoid confusing developers and users when log messages suddenly
stop getting logged to kmsg because of ratelimiting by logging an
additional message if we start ratelimiting log messages to kmsg.

2 years agolog: Add knob to disable kmsg ratelimiting
Daan De Meyer [Thu, 20 Apr 2023 08:31:37 +0000 (10:31 +0200)] 
log: Add knob to disable kmsg ratelimiting

This allows us to disable kmsg ratelimiting in the integration tests
and mkosi for easier debugging.

2 years agomkosi: Update to latest
Daan De Meyer [Tue, 18 Apr 2023 12:35:48 +0000 (14:35 +0200)] 
mkosi: Update to latest

2 years agoMerge pull request #27323 from keszybz/gpt-auto-generator-warning-cleanup
Mike Yuan [Tue, 18 Apr 2023 18:06:06 +0000 (02:06 +0800)] 
Merge pull request #27323 from keszybz/gpt-auto-generator-warning-cleanup

gpt-auto-generator: do not error out when no partitions are found

2 years agotest: prefix the transient unit with test- to make coverage runs happy
Frantisek Sumsal [Tue, 18 Apr 2023 09:45:56 +0000 (11:45 +0200)] 
test: prefix the transient unit with test- to make coverage runs happy

See 9fd8226312 for more details.

Follow-up to c9210b7470.

2 years agoMerge pull request #27320 from poettering/kmod-setup-tweaks
Mike Yuan [Tue, 18 Apr 2023 11:25:08 +0000 (19:25 +0800)] 
Merge pull request #27320 from poettering/kmod-setup-tweaks

minor tweaks to kmod-setup.c

2 years agogpt-auto-generator: "translate" errno codes into proper messages 27323/head
Zbigniew Jędrzejewski-Szmek [Tue, 18 Apr 2023 09:33:08 +0000 (11:33 +0200)] 
gpt-auto-generator: "translate" errno codes into proper messages

E.g. in logs on jammy-ppc64el in https://github.com/systemd/systemd/pull/27294:
Apr 16 17:42:50 H systemd-gpt-auto-generator[300]: Failed to dissect partition table of block device /dev/sda: No message of desired type
Apr 16 17:42:50 H (sd-execu[295]: /usr/lib/systemd/system-generators/systemd-gpt-auto-generator failed with exit status 1.

ee0e6e476e61d4baa2a18e241d212753e75003bf made this particular condition not an
error. But for other errnos we want to print a better message too.
dissect_loop_device_and_warn() already does this, but it always prints the
error at error level. We want to suppress some of the errors, so let's make the
print helper public and do the error suppression in the caller.

2 years agofstab-generator: add missing phrase in comment
Zbigniew Jędrzejewski-Szmek [Thu, 6 Apr 2023 09:57:27 +0000 (11:57 +0200)] 
fstab-generator: add missing phrase in comment

2 years agohwdb: Fix rotation for BMAX Y13
Paolo Velati [Mon, 17 Apr 2023 20:27:28 +0000 (20:27 +0000)] 
hwdb: Fix rotation for BMAX Y13

2 years agokmod-setup: bypass heavy virtio-rng check if we are not running in a VM anyway 27320/head
Lennart Poettering [Tue, 18 Apr 2023 08:48:54 +0000 (10:48 +0200)] 
kmod-setup: bypass heavy virtio-rng check if we are not running in a VM anyway

detect_vm() is cheap, because cached, let's hence do that early before
we get out the big guns and sweep through sysfs.

2 years agokmod-setup: use STARTSWITH_SET() where appropriate
Lennart Poettering [Tue, 18 Apr 2023 08:48:50 +0000 (10:48 +0200)] 
kmod-setup: use STARTSWITH_SET() where appropriate

2 years agoRevert "getty-generator: Use device hotplug to instantiate virtualizer consoles"
Lennart Poettering [Tue, 18 Apr 2023 07:47:10 +0000 (09:47 +0200)] 
Revert "getty-generator: Use device hotplug to instantiate virtualizer consoles"

This reverts commit e7e6ce5f8d467304731a98e8a140e69713f1bf07.

2 years agoMerge pull request #27256 from medhefgo/boot-rdtsc
Lennart Poettering [Tue, 18 Apr 2023 08:38:15 +0000 (10:38 +0200)] 
Merge pull request #27256 from medhefgo/boot-rdtsc

boot: Improve timer frequency detection

2 years agogpt-auto: do not fail when no suitable partitions found
Yu Watanabe [Mon, 17 Apr 2023 21:36:42 +0000 (06:36 +0900)] 
gpt-auto: do not fail when no suitable partitions found

Follow-up for 598fd4da1cf9665834110583fd9133073cc12481.

2 years agogetty-generator: Use device hotplug to instantiate virtualizer consoles
Daan De Meyer [Mon, 17 Apr 2023 22:46:11 +0000 (00:46 +0200)] 
getty-generator: Use device hotplug to instantiate virtualizer consoles

If getty-generator runs in the initrd, the corresponding tty might not
have been instantiated yet in /dev, which means a serial getty is not
spawned on it. Instead, let's instantiate the serial-getty when the
device appears so that it always gets instantiated.

2 years agolsm-util: move detection of support of LSMs into a new lsm-util.[ch] helper
Lennart Poettering [Thu, 16 Mar 2023 16:56:23 +0000 (17:56 +0100)] 
lsm-util: move detection of support of LSMs into a new lsm-util.[ch] helper

This makes the bpf LSM check generic, so that we can use it elsewhere.
it also drops the caching inside it, given that bpf-lsm code in PID1
will cache it a second time a stack frame further up when it checks for
various other bpf functionality.

2 years agobpf-firewall: give a name to maps used
Dominique Martinet [Sun, 16 Apr 2023 07:14:49 +0000 (16:14 +0900)] 
bpf-firewall: give a name to maps used

Running systemd with IP accounting enabled generates many bpf maps (two
per unit for accounting, another two if IPAddressAllow/Deny are used).

Systemd itself knows which maps belong to what unit and commands like
`systemctl status <unit>` can be used to query what service has which
map, but monitoring these values all the time costs 4 dbus requests
(calling the .IP{E,I}gress{Bytes,Packets} method for each unit) and
makes services like the prometheus systemd_exporter[1] somewhat slow
when doing that for every units, while less precise information could
quickly be obtained by looking directly at the maps.

Unfortunately, bpf map names are rather limited:
- only 15 characters in length (16, but last byte must be 0)
- only allows isalnum(), _ and . characters

If it wasn't for the length limit we could use the normal unit escape
functions but I've opted to just make any forbidden character into
underscores for maximum brievty -- the map prefix is also rather short:
This isn't meant as a precise mapping, but as a hint for admins who want
to look at these.

(Note there is no problem if multiple maps have the same name)

Link: https://github.com/povilasv/systemd_exporter
2 years agoprocess-util: be more careful with pidfd_get_pid() special cases
Lennart Poettering [Fri, 14 Apr 2023 15:47:43 +0000 (17:47 +0200)] 
process-util: be more careful with pidfd_get_pid() special cases

Let's be more careful with generating error codes for (expected) error
causes.

This does not introduce new error conditions, it just changes what we
return under specific cases, to make things nicely recognizable in each
case. Most importantly this detects if fdinfo reports a pid of "-1" for
pidfds with processes that are already reaped (and thus have no PID
anymore)

None of our current users care about these error codes, but let's get
this right for the future.

2 years agofsck: use execv_p_ and execl_p_
Florian Klink [Mon, 17 Apr 2023 12:46:05 +0000 (14:46 +0200)] 
fsck: use execv_p_ and execl_p_

Instead of invoking find_executable on our own, use the variants of exec
provided by glibc which does this for us.

2 years agocreds: make available to all ExecStartPre= and ExecStart= processes
Luca Boccassi [Sat, 15 Apr 2023 02:01:52 +0000 (03:01 +0100)] 
creds: make available to all ExecStartPre= and ExecStart= processes

Fixes https://github.com/systemd/systemd/issues/27275

2 years agouser-util:remove duplicate includes
jcg [Mon, 17 Apr 2023 12:41:00 +0000 (20:41 +0800)] 
user-util:remove duplicate includes

2 years agovirt: Further improve detection of EC2 metal instances
Benjamin Herrenschmidt [Thu, 13 Apr 2023 03:51:31 +0000 (13:51 +1000)] 
virt: Further improve detection of EC2 metal instances

Commit f90eea7d18d9ebe88e6a66cd7a86b618def8945d
virt: Improve detection of EC2 metal instances

Added support for detecting EC2 metal instances via the product
name in DMI by testing for the ".metal" suffix.

Unfortunately this doesn't cover all cases, as there are going to be
instance types where ".metal" is not a suffix (ie, .metal-16xl,
.metal-32xl, ...)

This modifies the logic to also allow those new forms.

Signed-off-by: Benjamin Herrenschmidt <benh@amazon.com>
2 years agomkosi: Use kernel-core for Fedora and CentOS images
Daan De Meyer [Mon, 17 Apr 2023 08:18:42 +0000 (10:18 +0200)] 
mkosi: Use kernel-core for Fedora and CentOS images

Let's reduce image size by using a smaller kernel package.

2 years agohwdb: add accelerometer mount matrix for Lenovo Yoga Tablet 2 851F/L
Hans de Goede [Sun, 16 Apr 2023 13:57:55 +0000 (15:57 +0200)] 
hwdb: add accelerometer mount matrix for Lenovo Yoga Tablet 2 851F/L

Add an accelerometer mount matrix for Lenovo Yoga Tablet 2 851F/L, to fix
screen rotation now that the kernel has support for the LSM303D IMU.

2 years agoMerge pull request #27298 from mrc0mmand/test-async-tweaks
Luca Boccassi [Sun, 16 Apr 2023 22:32:33 +0000 (23:32 +0100)] 
Merge pull request #27298 from mrc0mmand/test-async-tweaks

test: modernize test-async a bit

2 years agoprocess-util: make safe_fork() unset $NOTIFY_SOCKET
Yu Watanabe [Sun, 16 Apr 2023 17:09:38 +0000 (02:09 +0900)] 
process-util: make safe_fork() unset $NOTIFY_SOCKET

Propagating $NOTIFY_SOCKET is typically dangerous. Let's unset it unless
explicitly requested to keep it.

Fixes #27288.
Replaces #27291.

2 years agodocs: add a missing $ sign 27298/head
Frantisek Sumsal [Sun, 16 Apr 2023 18:29:41 +0000 (20:29 +0200)] 
docs: add a missing $ sign

Addresses https://github.com/systemd/systemd/pull/27283#pullrequestreview-1386816102.
Follow-up to 1a127aa02b.

2 years agotest: modernize test-async a bit
Frantisek Sumsal [Sun, 16 Apr 2023 18:21:37 +0000 (20:21 +0200)] 
test: modernize test-async a bit

Mainly to give it some debug output to, hopefully, see why it sometimes
gets stuck in CI when run with sanitizers.

2 years agomkosi: default to Fedora 38
Zbigniew Jędrzejewski-Szmek [Sun, 16 Apr 2023 10:34:49 +0000 (12:34 +0200)] 
mkosi: default to Fedora 38

It'll be out this week. We can't update the man pages before it is realeased,
but we can use it for mkosi builds and do some very late testing.

Also, use filepath specification for /bin/pkg-config. We need it for meson, and
meson calls it directly by this path. pkgconfig is a virtual Provides on
pkgconf-pkg-config, and the indirection here just obfuscates things with no
benefit.

Add it explicitly for centos too. (I think it is pulled in by packages which
contain pkg-config modules anyway, but it's better to be explicit).

2 years agoexec-util: make execute_strv() optionally take root directory
Yu Watanabe [Sun, 16 Apr 2023 06:31:10 +0000 (15:31 +0900)] 
exec-util: make execute_strv() optionally take root directory

Preparation for rewriting kernel-install in C.

2 years agoMerge pull request #27283 from mrc0mmand/assorted-test-tweaks
Yu Watanabe [Sun, 16 Apr 2023 10:39:58 +0000 (19:39 +0900)] 
Merge pull request #27283 from mrc0mmand/assorted-test-tweaks

test: a bunch of assorted tweaks, Saturday edition

2 years agoMerge pull request #27253 from yuwata/cmsg-find-and-copy-data
Yu Watanabe [Sun, 16 Apr 2023 07:28:26 +0000 (16:28 +0900)] 
Merge pull request #27253 from yuwata/cmsg-find-and-copy-data

socket-util: introduce CMSG_FIND_AND_COPY_DATA()

2 years agotest: add a couple of tests with invalid UTF-8 characters 27283/head
Frantisek Sumsal [Sat, 15 Apr 2023 20:22:56 +0000 (22:22 +0200)] 
test: add a couple of tests with invalid UTF-8 characters

2 years agotest: add a simple test for getenv_path_list()
Frantisek Sumsal [Sat, 15 Apr 2023 20:04:37 +0000 (22:04 +0200)] 
test: add a simple test for getenv_path_list()

2 years agotest: add a couple of basic sanity tests for the security verb
Frantisek Sumsal [Sat, 15 Apr 2023 19:33:02 +0000 (21:33 +0200)] 
test: add a couple of basic sanity tests for the security verb

2 years agotest: add a couple of basic sanity tests for timedatectl
Frantisek Sumsal [Sat, 15 Apr 2023 17:51:44 +0000 (19:51 +0200)] 
test: add a couple of basic sanity tests for timedatectl

2 years agotest: add a simple test for secure-bits stuff
Frantisek Sumsal [Sat, 15 Apr 2023 17:12:45 +0000 (19:12 +0200)] 
test: add a simple test for secure-bits stuff

2 years agoshared: add a missing include
Frantisek Sumsal [Sat, 15 Apr 2023 16:24:13 +0000 (18:24 +0200)] 
shared: add a missing include

2 years agotest: add tests for uuid/uint64 specifiers
Frantisek Sumsal [Sat, 15 Apr 2023 16:02:10 +0000 (18:02 +0200)] 
test: add tests for uuid/uint64 specifiers

They're used in repart, but are not part of the "common" specifier
lists, so cover them explicitly.

2 years agotree-wide: also use CMSG_TYPED_DATA() on writing message header 27253/head
Yu Watanabe [Thu, 13 Apr 2023 09:34:59 +0000 (18:34 +0900)] 
tree-wide: also use CMSG_TYPED_DATA() on writing message header

2 years agosd-dhcp-server: use CMSG_FIND_DATA() at one more place
Yu Watanabe [Thu, 13 Apr 2023 09:34:09 +0000 (18:34 +0900)] 
sd-dhcp-server: use CMSG_FIND_DATA() at one more place

2 years agotree-wide: copy timestamp data from cmsg
Yu Watanabe [Thu, 13 Apr 2023 09:02:48 +0000 (18:02 +0900)] 
tree-wide: copy timestamp data from cmsg

On RISCV32, time_t is 64bit and size_t is 32bit, hence the timestamp
data in message header may not be aligned.

Fixes #27241.

2 years agosocket-util: introduce CMSG_FIND_AND_COPY_DATA()
Yu Watanabe [Thu, 13 Apr 2023 09:00:41 +0000 (18:00 +0900)] 
socket-util: introduce CMSG_FIND_AND_COPY_DATA()

The cmd(3) man page says about CMSG_DATA():
> The pointer returned cannot be assumed to be suitably aligned for
> accessing arbitrary payload data types. Applications should not cast
> it to a pointer type matching the payload, but should instead use
> memcpy(3) to copy data to or from a suitably declared object.

Hence, if we want to use unaligned data in cmsg, we need to copy it
before use. That's typically important for reading timestamps in
RISCV32, as the time_t is 64bit and size_t is 32bit on the system.

2 years agotest: add a test case for table_dup_cell()
Frantisek Sumsal [Sat, 15 Apr 2023 11:58:20 +0000 (13:58 +0200)] 
test: add a test case for table_dup_cell()

Also, sneak in coverage for "less popular" cell types.

2 years agomkosi: Always disable sshd, dnsmasq and isc-dhcp-server
Daan De Meyer [Sat, 15 Apr 2023 16:51:28 +0000 (18:51 +0200)] 
mkosi: Always disable sshd, dnsmasq and isc-dhcp-server

2 years agodocs: a couple of typo fixes & formatting tweaks
Frantisek Sumsal [Sat, 15 Apr 2023 11:12:43 +0000 (13:12 +0200)] 
docs: a couple of typo fixes & formatting tweaks

2 years agomkosi: Update to latest
Daan De Meyer [Sat, 15 Apr 2023 07:34:46 +0000 (09:34 +0200)] 
mkosi: Update to latest

mkosi now installs a "ignore *" default preset on Debian. We also
switch Debian to dbus-broker now that preset doesn't disable it
anymore.

2 years agofsck: look for fsck binary not just in /sbin
Florian Klink [Thu, 13 Apr 2023 20:54:54 +0000 (22:54 +0200)] 
fsck: look for fsck binary not just in /sbin

This removes remaining hardcoded occurences of `/sbin/fsck`, and instead
uses `find_executable` to find `fsck`.

We also use `fsck_exists_for_fstype` to check for the `fsck.*`
executable, which also checks in `$PATH`, so it's fair to assume fsck
itself is also available.

2 years agoMerge pull request #27273 from mrc0mmand/test-generators
Luca Boccassi [Fri, 14 Apr 2023 20:31:55 +0000 (21:31 +0100)] 
Merge pull request #27273 from mrc0mmand/test-generators

test: add a couple of tests for getty/run/system-update generators

2 years agopreset: Add ignore directive
Daan De Meyer [Thu, 13 Apr 2023 17:03:43 +0000 (19:03 +0200)] 
preset: Add ignore directive

The ignore directive specifies to not do anything with the given
unit and leave existing configuration intact. This allows distributions
to gradually adopt preset files by shipping a ignore * preset file.

2 years agotest: stop the test unit when it's not needed anymore
Frantisek Sumsal [Fri, 14 Apr 2023 19:10:18 +0000 (21:10 +0200)] 
test: stop the test unit when it's not needed anymore

Otherwise it keeps printing stuff to the journal/console, adding
unnecessary noise.

2 years agotest: check the colored --version output
Frantisek Sumsal [Fri, 14 Apr 2023 19:07:51 +0000 (21:07 +0200)] 
test: check the colored --version output

2 years agopo: Translated using Weblate (Galician)
Fran Diéguez [Fri, 14 Apr 2023 18:20:43 +0000 (20:20 +0200)] 
po: Translated using Weblate (Galician)

Currently translated at 100.0% (193 of 193 strings)

Co-authored-by: Fran Diéguez <frandieguez@gnome.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/gl/
Translation: systemd/main

2 years agoman/systemd-cryptenroll: update list of PCRs, link to uapi docs
Zbigniew Jędrzejewski-Szmek [Wed, 5 Apr 2023 07:30:52 +0000 (09:30 +0200)] 
man/systemd-cryptenroll: update list of PCRs, link to uapi docs

Entia non sunt multiplicanda praeter necessitatem. We had a list of PCRs in the
man page which was already half out-of-date. Instead, link to web page with the
"authoritative" list. Here, drop the descriptions of what shim and grub do. Instead,
just give some short descriptions and mention what systemd components do.
systemd-pcrmachine.service and systemd-pcrfs@.service are now mentioned too.

https://github.com/uapi-group/specifications/commit/d0e590b1e2648e76ece66157ceade3f45b165b14
extended the table in the specs repo.
https://github.com/uapi-group/specifications/pull/59 adds some more text there
too.

Also, rework the recommendation: hint that PCR 11 is useful, and recommend
binding to policy signatures instead of direct PCR values. This new text is
intentionally vague: doing this correctly is hard, but let's at least not imply
that just binding to PCR 7 is useful in any way.

Also, change "string alias" to "name" in discussion of PCR names.

Inspired by https://discussion.fedoraproject.org/t/future-of-encryption-in-fedora/80397/17

2 years agoMerge pull request #27269 from poettering/statx-dont-sync
Luca Boccassi [Fri, 14 Apr 2023 15:23:51 +0000 (16:23 +0100)] 
Merge pull request #27269 from poettering/statx-dont-sync

mountpoint-util: don't go to the network when doing statx() to detect mountpoints/mnt_id

2 years agotest: add a couple of tests for run-generator 27273/head
Frantisek Sumsal [Fri, 14 Apr 2023 15:05:55 +0000 (17:05 +0200)] 
test: add a couple of tests for run-generator

2 years agostring-util: add strstrafter()
Lennart Poettering [Fri, 14 Apr 2023 10:48:14 +0000 (12:48 +0200)] 
string-util: add strstrafter()

strstrafter() is like strstr() but returns a pointer to the first
character *after* the found substring, not on the substring itself.
Quite often this is what we actually want.

Inspired by #27267 I think it makes sense to add a helper for this,
to avoid the potentially fragile manual pointer increment afterwards.

2 years agotest: add a couple of tests for system-update-generator
Frantisek Sumsal [Fri, 14 Apr 2023 14:09:32 +0000 (16:09 +0200)] 
test: add a couple of tests for system-update-generator

2 years agotest: properly distinguish between generator phases
Frantisek Sumsal [Fri, 14 Apr 2023 13:15:13 +0000 (15:15 +0200)] 
test: properly distinguish between generator phases

Let's make sure the units generated by generators are generated at the
right stage.

2 years agoMerge pull request #27252 from yuwata/chase-mkdir
Daan De Meyer [Fri, 14 Apr 2023 13:19:57 +0000 (15:19 +0200)] 
Merge pull request #27252 from yuwata/chase-mkdir

chase: refuse CHASE_MKDIR_0755 without CHASE_NONEXISTENT or CHASE_PARENT

2 years agoMerge pull request #27266 from dtardon/take-struct
Luca Boccassi [Fri, 14 Apr 2023 13:15:35 +0000 (14:15 +0100)] 
Merge pull request #27266 from dtardon/take-struct

Use TAKE_STRUCT() to copy and reset structs

2 years agoMerge pull request #27265 from dtardon/memleak
Luca Boccassi [Fri, 14 Apr 2023 13:14:15 +0000 (14:14 +0100)] 
Merge pull request #27265 from dtardon/memleak

Fix memory leak if GREEDY_REALLOC() fails

2 years agotest: add a couple of tests for getty-generator
Frantisek Sumsal [Fri, 14 Apr 2023 10:58:51 +0000 (12:58 +0200)] 
test: add a couple of tests for getty-generator

2 years agomountpoint-util: use memcmp_nn() where appropriate 27269/head
Lennart Poettering [Fri, 14 Apr 2023 11:08:03 +0000 (13:08 +0200)] 
mountpoint-util: use memcmp_nn() where appropriate

2 years agomountpoint-util: fix hosed overflow check
Lennart Poettering [Fri, 14 Apr 2023 11:05:29 +0000 (13:05 +0200)] 
mountpoint-util: fix hosed overflow check

The overflow check was hosed in two ways: overflows in C are undefined,
hence gcc was free to just optimize the whole thing away. We need to
catch overflows before we run into them, not after.

It checked for an overflow against size_t, but the field we need to
write this in is unsigned. i.e. typically 32bit rather than 64bit. Hence
check for the right maximum.

(The whole check is paranoia anyway, the kernel really shouldn't return
values that would induce an overflow, but you never know, the syscall
turned out to be problematic in so many other ways, hence let's stick to
this.)

2 years agomountpoint-util: pass AT_STATX_DONT_SYNC to statx() when looking for mnt_id/mountpoints
Lennart Poettering [Fri, 14 Apr 2023 10:47:47 +0000 (12:47 +0200)] 
mountpoint-util: pass AT_STATX_DONT_SYNC to statx() when looking for mnt_id/mountpoints

The concept of a "mount" is a local one, hence there's no point in going
to the network to retrieve mnt_id or STATX_ATTR_MOUNT_ROOT. Hence set
AT_STATX_DONT_SYNC so that the call will not go to the network ever, and
risk deadlocking on that.

Just some extra safety.

2 years agotest: allow overriding PID1's environment for test purposes
Frantisek Sumsal [Fri, 14 Apr 2023 10:58:16 +0000 (12:58 +0200)] 
test: allow overriding PID1's environment for test purposes

2 years agotest: add a couple of test for fstab-related kernel cmdline args
Frantisek Sumsal [Sat, 8 Apr 2023 18:49:45 +0000 (20:49 +0200)] 
test: add a couple of test for fstab-related kernel cmdline args

2 years agotest: check if x-systemd.automount is ignored for rootfs
Frantisek Sumsal [Sat, 8 Apr 2023 18:49:14 +0000 (20:49 +0200)] 
test: check if x-systemd.automount is ignored for rootfs

2 years agotest: run the generators with debug log level
Frantisek Sumsal [Fri, 7 Apr 2023 09:37:39 +0000 (11:37 +0200)] 
test: run the generators with debug log level

unless requested otherwise.

2 years agoinstall: use FOREACH_ARRAY 27265/head
David Tardon [Fri, 14 Apr 2023 08:21:17 +0000 (10:21 +0200)] 
install: use FOREACH_ARRAY

2 years agotree-wide: rename cleanup function
David Tardon [Fri, 14 Apr 2023 07:51:27 +0000 (09:51 +0200)] 
tree-wide: rename cleanup function

... with accordance to the current coding style.

2 years agoinstall: fix memory leak if GREEDY_REALLOC() fails
David Tardon [Fri, 14 Apr 2023 07:43:43 +0000 (09:43 +0200)] 
install: fix memory leak if GREEDY_REALLOC() fails

2 years agotree-wide: add some asserts 27266/head
David Tardon [Fri, 14 Apr 2023 08:08:31 +0000 (10:08 +0200)] 
tree-wide: add some asserts

2 years agotree-wide: use TAKE_STRUCT
David Tardon [Fri, 14 Apr 2023 07:59:27 +0000 (09:59 +0200)] 
tree-wide: use TAKE_STRUCT

2 years agochase: CHASE_MKDIR_0755 requires CHASE_NONEXISTENT and/or CHASE_PARENT 27252/head
Yu Watanabe [Fri, 14 Apr 2023 07:29:08 +0000 (16:29 +0900)] 
chase: CHASE_MKDIR_0755 requires CHASE_NONEXISTENT and/or CHASE_PARENT

When CHASE_MKDIR_0755 is specified without CHASE_NONEXISTENT and
CHASE_PARENT, then chase() succeeds only when the file specified by
the path already exists, and in that case, chase() does not create
any parent directories, and CHASE_MKDIR_0755 is meaningless.

Let's mention that CHASE_MKDIR_0755 needs to be specified with
CHASE_NONEXISTENT or CHASE_PARENT, and adds a assertion about that.

2 years agochase: use FLAGS_SET() macro
Yu Watanabe [Fri, 14 Apr 2023 07:28:54 +0000 (16:28 +0900)] 
chase: use FLAGS_SET() macro

2 years agotree-wide: replace __alignof__() with alignof()
Yu Watanabe [Fri, 14 Apr 2023 04:55:31 +0000 (13:55 +0900)] 
tree-wide: replace __alignof__() with alignof()

Addresses https://github.com/systemd/systemd/pull/27254#discussion_r1165267046.

2 years agosocket-util: add one missing paren
Yu Watanabe [Thu, 13 Apr 2023 06:20:49 +0000 (15:20 +0900)] 
socket-util: add one missing paren

Follow-up for b6256af75e0609e451198ed90c293efd50827ab3.

2 years agotimesync: drop unnecessary initialization
Yu Watanabe [Thu, 13 Apr 2023 07:40:36 +0000 (16:40 +0900)] 
timesync: drop unnecessary initialization

2 years agoMerge pull request #27254 from poettering/cmsg-align-check
Yu Watanabe [Fri, 14 Apr 2023 04:49:04 +0000 (13:49 +0900)] 
Merge pull request #27254 from poettering/cmsg-align-check

socket-util: tighten CMSG_TYPED_DATA() alignment checks

2 years agoMerge pull request #27144 from enr0n/fix-scope-timer-on-coldplug
Luca Boccassi [Thu, 13 Apr 2023 23:25:06 +0000 (00:25 +0100)] 
Merge pull request #27144 from enr0n/fix-scope-timer-on-coldplug

scope: do not disable timer event source when state is SCOPE_RUNNING

2 years agouser units: implicitly enable PrivateUsers= when sandboxing options are set
Luca Boccassi [Tue, 1 Nov 2022 23:34:15 +0000 (23:34 +0000)] 
user units: implicitly enable PrivateUsers= when sandboxing options are set

Enabling these options when not running as root requires a user
namespace, so implicitly enable PrivateUsers=.
This has a side effect as it changes which users are visible to the unit.
However until now these options did not work at all for user units, and
in practice just a handful of user units in Fedora, Debian and Ubuntu
mistakenly used them (and they have been all fixed since).

This fixes the long-standing confusing issue that the user and system
units take the same options but the behaviour is wildly (and sometimes
silently) different depending on which is which, with user units
requiring manually specifiying PrivateUsers= in order for sandboxing
options to actually work and not be silently ignored.

2 years agoMerge pull request #27244 from bluca/uphold_retry
Luca Boccassi [Thu, 13 Apr 2023 20:33:06 +0000 (21:33 +0100)] 
Merge pull request #27244 from bluca/uphold_retry

Uphold/StopWhenUnneeded/BindsTo: add retry timer on rate limit

2 years agoSynposis and description of networkctl man page reflecting only part of its functiona...
ZjYwMj [Thu, 13 Apr 2023 20:30:42 +0000 (20:30 +0000)] 
Synposis and description of networkctl man page reflecting only part of its functionality  (#27264)

* Fix inaccurate synposis, and description

Before the fix, they reflected only part of networkctl functionality.

2 years agocore/main: fix a typo for --log-target
Mike Yuan [Thu, 13 Apr 2023 15:04:49 +0000 (23:04 +0800)] 
core/main: fix a typo for --log-target

Follow-up for d2ebd50d7f9740dcf30e84efc75610af173967d2

Fixes #27105

2 years agotest: add some tests for RuntimeMaxSec 27144/head
Nick Rosbrook [Thu, 13 Apr 2023 15:29:32 +0000 (11:29 -0400)] 
test: add some tests for RuntimeMaxSec

Make sure the RuntimeMaxSec is applied correctly to service and scope
units when they are started, and also on coldplug.

2 years agoscope: do not disable timer event source when state is SCOPE_RUNNING
Nick Rosbrook [Tue, 4 Apr 2023 22:39:26 +0000 (18:39 -0400)] 
scope: do not disable timer event source when state is SCOPE_RUNNING

In scope_set_state(), the timer event source may be disabled depending
on the state. Currently, it will be disabled when the state is
SCOPE_RUNNING. This has the effect of new RuntimeMaxSec values being
ignored on coldplug.

Note that this issue is not currently present when scopes are started
because when scope_start() is called, scope_arm_timer() is called after
scope_set_state().

2 years agosystemd-confext: mount confexts as noexec and nosuid
Luca Boccassi [Thu, 6 Apr 2023 11:19:22 +0000 (12:19 +0100)] 
systemd-confext: mount confexts as noexec and nosuid

Confexts should not contain code, so mount confexts with noexec.
We cannot mount invidial extensions as noexec, as the overlay ignores
it and bypasses it, we need to use the flag on the whole overlay for
it to be effective.
But given there are legacy scripts still shipped in /etc, allow to
override it with --noexec=false.

2 years agoboot: Use CPUID to detect TSC frequency 27256/head
Jan Janssen [Thu, 13 Apr 2023 13:31:36 +0000 (15:31 +0200)] 
boot: Use CPUID to detect TSC frequency

Aside from being more accurate on CPUs that report the information this
is also orders of magnitude faster than sleeping for 1ms.

2 years agoboot: Rework timer frquency reading
Jan Janssen [Wed, 12 Apr 2023 21:45:04 +0000 (23:45 +0200)] 
boot: Rework timer frquency reading

This is in preparation for the next commit.

2 years agoboot: Use compiler intrinsic for TSC
Jan Janssen [Wed, 12 Apr 2023 21:33:29 +0000 (23:33 +0200)] 
boot: Use compiler intrinsic for TSC

2 years agomkosi: Update to latest
Daan De Meyer [Wed, 12 Apr 2023 15:27:06 +0000 (17:27 +0200)] 
mkosi: Update to latest

The Bootable= option was removed and mkosi installs less packages
by default now, so let's adapt our configs to those changes.

2 years agoUphold/StopWhenUnneeded/BindsTo: requeue when job finishes 27244/head
Luca Boccassi [Wed, 12 Apr 2023 20:37:45 +0000 (21:37 +0100)] 
Uphold/StopWhenUnneeded/BindsTo: requeue when job finishes

When a unit is upheld and fails, and there are no state changes in
the upholder, it will not be retried, which is against what the
documentation suggests.

Requeue when the job finishes. Same for the other two queues.

2 years agosystemd-cryptenroll: add string aliases for tpm2 PCRs
OMOJOLA JOSHUA DAMILOLA [Thu, 30 Mar 2023 07:55:41 +0000 (07:55 +0000)] 
systemd-cryptenroll: add string aliases for tpm2 PCRs
Fixes #26697. RFE.