1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-02-03 13:47:04 +03:00

61049 Commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek
f4764ea126 man: adjust description of CPUAccounting=
For any user on a semi-recent kernel, effectively this setting is pointless.
We should deprecate it once not needed anymore for the v1 hierarchy. For
now, adjust the description.

(cherry picked from commit 695e39dd632801871b4e96b39bc8e7511083a34e)
(cherry picked from commit 4b12a1cf9249a2e59c2824958dfa6d56222c5d68)
2023-03-30 19:01:08 +02:00
Zbigniew Jędrzejewski-Szmek
52e2479bd6 man: add a note about session autogrouping
When cpu controller is disabled, thing would often still behave as if
it was. And since the cpu controller can be enabled "magically" e.g. by
starting user@1000, add a note for users to be careful. Autogrouping
is described well in the man page, incl. how to enable or disable it,
so it should be enough to refer to that.

(cherry picked from commit dca031d2290311d8670d34fd758397644796e114)
(cherry picked from commit 6bef1f00852aaf7e0e599f510c84e97e3a27eed9)
2023-03-30 19:01:07 +02:00
Zbigniew Jędrzejewski-Szmek
97ecc1c6b3 man: tweak details in descriptions of pids and cpu configuration
For CPUWeight=: there is an important distinction between our default of
[not set], and the kernel default of "100". Let's not say that our default
is "100" because then 'systemctl show' output is hard to explain.

For task accounting, it's the kernel that does the accounting, not systemd.

(cherry picked from commit 396d298d6b0c50a3ab3242392de43dd50df6d45f)
(cherry picked from commit 2a31faf6255e06b757274d20cf98fdd8eae64fc6)
2023-03-30 19:01:06 +02:00
Zbigniew Jędrzejewski-Szmek
7646f29a84 man: describe how cgroup controllers are turned on
For a user, information which cgroup controllers are enabled based on
the unit configuration is rather important. Not only because it determines
what resource control is peformed by the kernel, but also because controllers
have a non-negligible cost, especially for deep nesting, and users may want
to *not* have controllers enabled.

Our documentation did its best to avoid the topic so far. This was partially
caused by the support for cgroup v1, which meant that any discussion of
controllers had to be conditional and messy. But v1 is deprecated on its way
out, so it should be fine to just describe what happens with v2.

The text is extended with a discussion of how controllers are enabled and
disabled, and an example, and for various settings that enable controllers
the relevant controller is now mentioned.

(cherry picked from commit 253d0d591bdca605c9a775e22407f9ae80003234)
(cherry picked from commit da8c0e0978c0fc91a70dbd5139208274cd8d9c0d)
2023-03-30 19:00:55 +02:00
Zbigniew Jędrzejewski-Szmek
1114a7a522 man: explain route-only domains a bit more
The details discussion of how search and route-only domains work is in
systemd-resolved.service(8). But users are more likely to look at
resolved.conf(5), because that's where Domains= is described. So let's add a
reference to the other man page there, and also strengthen the text a bit. In
particular, in systemd-resolved.service(8) we say "route-only", which makes
the distinction with search domains clearer. Let's use the same in the other
man page too.

This is based on feedback from Lukáš Nykrýn that the man page is not clear
enough.

(cherry picked from commit 87291a26f5262c47bdb3493d15534c18f25870e6)
(cherry picked from commit c7afeee1e6b42d2c68074dc0b89ace502a16315b)
2023-03-30 19:00:22 +02:00
Yu Watanabe
0e29ec09dd man: mention systemd-growfs-root.service
(cherry picked from commit 61ccf030aef82e335941260b82381d0056b475c7)
(cherry picked from commit b8b20dc261751598b8b4ddfcd9c2e3244b938571)
2023-03-30 19:00:03 +02:00
Yu Watanabe
720cb50229 man: mention systemd-fsck-usr.service
(cherry picked from commit 5e9750533586efa3d480ac2bc4cf8549993bc3f1)
(cherry picked from commit 20f71ba98f9e55796693cdbd5d0416c372a7056c)
2023-03-30 19:00:02 +02:00
Jan Engelhardt
08cffef584 doc: correct wrong use "'s" contractions
(cherry picked from commit 18fe76eba59dc494597b07e0114899b69f92cc12)
(cherry picked from commit c181761f9a600066217da2c590d63555ec6c3eba)
2023-03-30 18:59:55 +02:00
Jan Engelhardt
7f44993923 doc: replace wrong á preposition by à
(cherry picked from commit 3ff1721c219479ec51479970f1d81a3aa17e9b50)
(cherry picked from commit 21266ac59df21c2fd3bdc1838ed0d9e152019f32)
2023-03-30 18:59:30 +02:00
Yu Watanabe
3e270826ce test: add header build tests for newer C and C++ standards
(cherry picked from commit a6d46fe64b61c62dc5c0dadbad65134075b29303)
(cherry picked from commit efbe08c27cb3881f154142a1797cb32034ad4748)
2023-03-30 18:59:24 +02:00
Cristian Rodríguez
dd9c50c6cb Include <threads.h> if possible to get thread_local definition
IN C23, thread_local is a reserved keyword and we shall therefore
do nothing to redefine it. glibc has it defined for older standard
version with the right conditions.

v2 by Yu Watanabe:
Move the definition to missing_threads.h like the way we define e.g.
missing syscalls or missing definitions, and include it by the users.

Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
(cherry picked from commit 5545f336fd09148e8d9aa7f83ed19384deaf7a64)
(cherry picked from commit 25b5c24e59b63abe081c31e3d9a3dd392c2fdbae)
2023-03-30 18:59:18 +02:00
Daan De Meyer
2b55c8a6f1 journal-file: Fix return value in bump_entry_array()
(cherry picked from commit 0399902440fbaea5b163254f70be57dbedb7131e)
(cherry picked from commit 7e76a341462d452e83753d8bbb683509a43fe837)
2023-03-30 18:56:46 +02:00
Frantisek Sumsal
744ea4536f test: add coverage for #26483
(cherry picked from commit adae3552f0f06ed286374311cb1265024ad1eb31)
(cherry picked from commit 7e5a5a79c0a74f9ee3afe6d983eddd945b51cc7a)
2023-03-30 18:56:36 +02:00
Frantisek Sumsal
252c31631b test: add coverage for #26467
(cherry picked from commit 4190124b3ca005830d893303bbc563baaf9984ed)
(cherry picked from commit 9b552ce86dbe52a02eca84819f2d88d56b105953)
2023-03-30 18:56:35 +02:00
Yu Watanabe
a85ed9af34 core/main: make positional arguments followed by '=', then by value
To make ConditionKernelCommandLine= or friend not confused when we are
running in a container.

Addresses https://github.com/systemd/systemd/pull/26887#discussion_r1143358884.

(cherry picked from commit d2ebd50d7f9740dcf30e84efc75610af173967d2)
(cherry picked from commit 0417b2875521424104d27229c13681c03baf9290)

[The patch didn't apply cleanly. When fixing stuff, I left the array size
as it was. The extra few bytes don't matter and this way it's unlikely to
be wrong.]
2023-03-30 18:54:12 +02:00
Yu Watanabe
06207ae0e4 core/main: fix maximum number of arguments for shutdown command
Follow-up for c5673ed0de3bec38f68d8113d253842b47766e27.

(cherry picked from commit 6920049fad4fa39db5fec712f82f7f75b98fd4b9)
(cherry picked from commit 0880a3af7775a3ecb022fa2bc772ef23c4fbbfd7)
2023-03-30 18:48:32 +02:00
Yu Watanabe
f718ee9d51 coredump: use unaligned_read_ne{32,64}() to parse auxv
Fixes a bug introduced by 3e4d0f6cf99f8677edd6a237382a65bfe758de03.

The auxv metadata is unaligned, as the length of the prefix
"COREDUMP_PROC_AUXV=" is 19. Hence, parse_auxv{32,64}() may triger
an undefined behavior (or at least cause slow down), which can be
detected when running on an undefined behavior sanitizer.

This also introduces a macro to define `parse_auxv{32,64}()`.

Fixes #26912.

(cherry picked from commit 9b032f932c4172fac379234d9d42cf2b266ccaea)
(cherry picked from commit bff4f7b3fd77b2dd2fe8813e2038a33a1992021e)
2023-03-30 18:48:10 +02:00
Yu Watanabe
03163a0d81 core/transaction: do not log "(null)"
As we ignores the failure in merge_unit_ids(), so unit_ids may be NULL.

(cherry picked from commit 5803c24da5cf543a55c4fce9009a9c5f2b18519a)
(cherry picked from commit 591a82f24fa233e8011a8baf8bade597d550e557)
2023-03-30 18:47:58 +02:00
Yu Watanabe
8974821f79 core/transaction: make merge_unit_ids() return non-NULL on success
(cherry picked from commit 999f16514367224cbc50cb3ccc1e4392e43f6811)
(cherry picked from commit d084528c49e84354b9a032a1138175bff1198cfa)
2023-03-30 18:47:57 +02:00
Yu Watanabe
89f780969b core/transaction: make merge_unit_ids() always return NUL-terminated string
Follow-up for 924775e8ce49817f96df19c2b06356c12ecfc754.

The loop run with `STRV_FOREACH_PAIR()`, hence `if (*(unit_id+1))` is
not a good way to detect if there exist a next entry.

Fixes #26872.

(cherry picked from commit 366eced4c81a15a25b9225347fa203aa67798b02)
(cherry picked from commit 7002c5c210a7ae3607bd8a424112e9f8789bc5f9)
2023-03-30 18:47:56 +02:00
Yu Watanabe
4a9dc2d190 bootctl: fix wrong type comparison
(cherry picked from commit de2c62e847f3b5b0c0796396086ebdce4e8a9ca4)
(cherry picked from commit dbfd85dc95a004065e0f1f2f14d2b11eab5f1372)
2023-03-30 18:47:36 +02:00
Dmitry V. Levin
e97016b981 Revert "udev: prepare memory for extra NUL termination for NULSTR"
This reverts commit cd3c8a117ccf3505e49d34324473e2175ef0a9ce which was
papering over the bug instead of a proper fix made by the previous
commit.

(cherry picked from commit 8c499a61c46eb434db04d3ee4b116a0a755b3797)
(cherry picked from commit 56a81351afe89711442058a5b373cafa0288feaf)
2023-03-30 18:45:23 +02:00
Dmitry V. Levin
82e82792de udev-rules: fix matching of token types that support alternative patterns
For those token types that support matching of alternative patterns,
their token values are interpreted as nulstr, so make sure the parser
does the right thing and makes these token values terminated by two
subsequent NULs so they could be safely interpreted as nulstr.

Before this fix, the following rules would result to "echo foo" invocation:
  ENV{foo}=", RUN"
  ENV{foo}=="bar", RUN+="echo foo"
because the value of `ENV{foo}` is treated as nulstr, and it used to match
against alternative patterns, in this case `bar`, `, RUN`, and `="echo foo`.

Fixes: 25de7aa7b90c ("udev: modernize udev-rules.c")
(cherry picked from commit c43ff248f94266cfc93e300a2d3d163ed805e55b)
(cherry picked from commit 88d8ab119df0239e70a5312f1f2c179c7f642dec)
2023-03-30 18:45:07 +02:00
Mike Yuan
006648448b docs: update unit name for sd-tmpfiles-setup
(cherry picked from commit 7d33146dbc1bd727a2923bb2da54856a7cb15fb5)
(cherry picked from commit 7b5b85286f7eacfc60c326e656fb0c17b048f7c2)
2023-03-30 18:44:58 +02:00
Mike Yuan
ec8613a7b7 unit: sysext: update unit name for sd-tmpfiles-setup
Fixes #26882

(cherry picked from commit 23c4c0340645cc1711d9e5446dcace10104b4491)
(cherry picked from commit f8b6d97185b3f55edee542dce823c1700acdf31a)
2023-03-30 18:44:52 +02:00
Brett Holman
0703aa328c network: ipv4acd: update MAC address on change (#26753)
Commit 76a86ffdbee2dd9ef0f2b5338e14eb6ba7671456 added function
ipv4acd_update_mac() but invoked ipv4ll_update_mac(), which doesn't
align with debug or commit messages.

(cherry picked from commit 0a14f83a0edb2c809c932b5d98240dd10a6bb79a)
(cherry picked from commit 59ae2a45a92025097de94cc7c0c622aa990179cf)
2023-03-30 18:44:39 +02:00
Lennart Poettering
b77f041885 socket-util: fix socket_get_family()
Function didn't actually return anything useful. Quite a shame.

(cherry picked from commit 5f64d2bf332371bdfdcb91b588e57d4c0c20428f)
(cherry picked from commit 59514a6d87be7013d61b4f15b993918f5d1e44e5)
2023-03-30 18:44:25 +02:00
Chitoku
197ad2e965 timesync: stop re-sync on network configuration change when no link servers are configured (#26708)
This commit fixes an issue where systemd-timesyncd re-synchronizes the
system clock every time the network configuration is updated, no matter
whether link servers are actually changed.

Fixes a bug introduced by e05dd7718d0b32e039c9e0f7bf3875079d1a359d.

(cherry picked from commit 0f9c8d02918492e9369cf85479c2e540b9c1f698)
(cherry picked from commit cbd7a29604d78297e3ca8057fd21cf9be50e2962)
2023-03-30 18:43:36 +02:00
Zbigniew Jędrzejewski-Szmek
57741512f4 meson: adjust for removal of gnu-efi compat
gnu-efi-3.0.11-13.fc39 in Fedora dropped the old include paths.

/usr/include/efi/efi.h uses 'include "efibind.h"', so we cannot use -isystem.

(cherry picked from commit efcde781de4ebf7d15410b5d6cb7de3a8c67f6aa)
(cherry picked from commit 8d1db692194f7db407754e85961d82d99117ddab)
2023-03-30 18:42:04 +02:00
msizanoen1
fe05452b50 escape: add missing non-NULL parameter assertions
(cherry picked from commit 0b82a6fa5d2ba94bbc1c3db4a04dfd052e1cd446)
(cherry picked from commit bb3e44323bfeecad1e8a6af8c571c91eaebf5072)
v252.7
2023-03-03 12:01:34 +01:00
msizanoen1
dec5e2e7b5 test-escape: Add tests for escaping bogus UTF-8 sequences
(cherry picked from commit 582843ee37fb2de62321085dd3c2f4bfbdbad12e)
(cherry picked from commit c4e7cf2bd734b480c38b16c227a2b4f1928df270)
2023-03-03 12:01:34 +01:00
msizanoen1
e0a674f7f8 escape: Ensure that output is always valid UTF-8
This ensures that shell string escape operations will not produce output
with invalid UTF-8 from the input by escaping invalid UTF-8 data as if
they were single byte characters.

(cherry picked from commit 00f57157f32f6ed5a68d68986b013c203cd78c37)
(cherry picked from commit e906fd24214f53f1160918a5bb55a1d14368bfd8)
2023-03-03 12:01:30 +01:00
Frantisek Sumsal
48911dc5ec virt: correctly detect QEMU emulated pSeries guests
Resolves: #26629
(cherry picked from commit 8c7a6c742afef9284d5c06fc285cf66306cbce31)
(cherry picked from commit 1a220065740b128476c572541fa6e90bdd5b548f)
2023-03-03 12:01:26 +01:00
Lennart Poettering
8e6234064d psi-util: fix error handling
We checked ERRNO_IS_NOT_SUPPORTED on a possible positive non-error code,
which isn't right.

Fix that. Also add caching, since we are about to call this more often.

(cherry picked from commit 90ec8ebe33ec72ed6d9f451de9443d67dd351d72)
(cherry picked from commit 5ee19fdfa054f68e82cedbbff26d60c893ca5ef4)
2023-03-03 12:01:23 +01:00
David Tardon
30eae23c4a systemctl: print better message if default target is masked
If the default target is masked, `systemctl get-default` prints

  Failed to get default target: Operation not possible due to RF-kill

That's a bit too cryptic, so let's make it clear what's actually
happening.

Fixes #26589.

(cherry picked from commit 7c78a19322962bb386f87bcaf37bf650cca1c400)
(cherry picked from commit 144ac494ec8f13e4da2420720c96808046947762)
2023-03-03 12:01:03 +01:00
Lennart Poettering
7d3af1ff11 man: add two missing commands to synopsys
(cherry picked from commit aff131775b002ddac74b1c65d849dcd52a02c06d)
(cherry picked from commit dc98d58dd8864d537d38cc78617c0a1bf7385ee8)
2023-03-03 12:00:36 +01:00
Yu Watanabe
22d1f01b05 core/dbus-socket: check the socket path is absolute
In config_parse_socket_listen(), we have checked the path is absolute,
however we have not in the dbus method.

(cherry picked from commit 4de2b47bdec8bbb7df78678a152f18281b20e7b5)
(cherry picked from commit e093acd062f36de4471948c6d932b931333af4da)
2023-03-03 12:00:32 +01:00
Yu Watanabe
dd6561ff3e sd-event: fix error handling
Follow-up for 6d2326e036ceed30f9ccdb0266713c10a44dcf6c.

(cherry picked from commit 1912f790fee9e0182acd77b77496f500094a140d)
(cherry picked from commit a719c2ec2f410f8b979cec04dcdac9af470ee52b)
2023-03-03 12:00:28 +01:00
Yu Watanabe
78976199b2 sd-event: always initialize sd_event.perturb
If the boot ID cannot be obtained, let's first fallback to the machine
ID, and if still cannot, then let's use 0.
Otherwise, no timer event source cannot be triggered.

Fixes #26549.

(cherry picked from commit 6d2326e036ceed30f9ccdb0266713c10a44dcf6c)
(cherry picked from commit 58c821af607b61738b7b72ad1452e70f648689a6)
2023-03-03 12:00:25 +01:00
Yu Watanabe
028cee00dd systemctl: show "Until:" field only for service and scope units
Only service and scope units have RuntimeMaxUSec bus property.
To suppress the "Until:" field for other unit types, the entry must be
initialized with USEC_INFINITY.

Fixes #26473.

(cherry picked from commit b59052be261523721a86caf4ef820e63f03e26a4)
(cherry picked from commit 2bfb07b22ff1cce4f663740bff202bd65f041916)
2023-03-03 12:00:19 +01:00
Zbigniew Jędrzejewski-Szmek
2ca2390b11 tmpfiles.d: drop misleading comment
I'm not sure what "suffix" was meant by this comment, but the file has the usual suffix.
The file was added with the current name back in c4708f132381e4bbc864d5241381b5cde4f54878.
Maybe an earlier version of the patch did something different.

(cherry picked from commit 9c7188547cd53dddd635c86c8ef5655290541966)
(cherry picked from commit d9abd8babe01ab4e2e6d913d148369ade78441a4)
2023-03-03 12:00:07 +01:00
Aidan Dang
3856cada26 Enable TPM by default with SetCredentialEncrypted
(cherry picked from commit d59025698f6261aa65ac074a3b46e8babed0d05d)
(cherry picked from commit 0f4dbe6367b8adf00132782f71bd60bc0dc02e57)
2023-03-03 12:00:03 +01:00
Zbigniew Jędrzejewski-Szmek
4f4344e3a5 efi: drop executable-stack bit from .elf file
An rpminspect test in Fedora/RHEL is flagging our stub files as having an
executable stack. The check is correct:

$ readelf --wide --program-headers build/src/boot/efi/linuxx64.elf.stub | rg -i stack
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x10

It seems to be just an omission in the linker script… None of the objects that
are linked into the stub are marked as requiring an executable stack:

$ readelf --wide --sections build/src/boot/efi/*.c.o \
  /usr/lib/gnuefi/x64/libgnuefi.a \
  /usr/lib/gnuefi/x64/libefi.a \
  /usr/lib/gcc/x86_64-redhat-linux/12/libgcc.a \
  | rg '.note.GNU-stack.*X'
(nothing)

On aarch64 we end up with a nonexecutable stack, but on ia32 and x64 we get one,
so this might be just a matter of defaults in the linker. It doesn't matter
greatly, but let's mark the stack as non-executable to avoid the warning.

Note: '-Wl,-z' is not needed, things work with just '-z'.
(cherry picked from commit 1eca770933e49a1be16e40bfbaefc0f75af81781)
(cherry picked from commit 44c2ff5b1ebbc0a18c0f3676b7ea3242250315f0)
2023-03-03 11:59:49 +01:00
David Tardon
a39a0c6db4 logind-session: make stopping of idle session visible to admins
(cherry picked from commit 6269ffe7ee8a659df7336a2582054ecd9eecf4b1)
(cherry picked from commit f2460b78b9a4e46deb2e9432df68b546a988d46a)
2023-03-03 11:59:44 +01:00
Mike Yuan
338bbe76ac sleep: check if we're on AC power before checking battery capacity
Before this commit, battery_is_low() returns
true if there's no battery on the system.
It's now modified to check if the system is
on AC power first, and returns false early
if that's the case.

Fixes #26492

(cherry picked from commit e0b3a70fabb871bf55678e9e177445b1df2aee88)
(cherry picked from commit 1947b9939c42d8d1a6f09ac35351e7a4a6238450)
2023-03-03 11:59:07 +01:00
David Tardon
3eb0f9f8a6 install: fail early if specifier expansion failed
Before:

systemd[1]: Assertion 'path' failed at src/shared/install.c:288, function install_changes_add(). Aborting.
systemd[1]: Caught <ABRT> from our own process.
systemd[1]: Caught <ABRT>, dumped core as pid 2525.
systemd[1]: Freezing execution

After:

Failed to enable unit: Invalid specifier in user-%J.service

Fixes #26467.

Follow-up for: f5a0162

(cherry picked from commit f8979e869812988835f6951fb73a68e30a4c608c)
(cherry picked from commit 452cad62c83c134c4a1ee964824ac9dd40796293)
2023-03-03 11:59:01 +01:00
Lennart Poettering
8af5e945c7 homectl: add missing break
(cherry picked from commit 464ec1dec741e31d7bf08a4b7bb5a64a6adbb81d)
(cherry picked from commit eae11e3f064372ec30efe460381ce807238daa82)
2023-03-03 11:58:56 +01:00
Zbigniew Jędrzejewski-Szmek
e72f1676af man/tmpfiles.d: adjust the table in synopsis, improve spelling
r and R take globs, so let's name the argument appropriately in the tl;dr listing.

Also, use 'clean-up' in the file name where it represents the verb "clean up",
and other minor spelling adjustments.

(cherry picked from commit 164297cd9a410fdd9ca3c068da4d80d74916cf18)
(cherry picked from commit aac692160ef2a88f4a725f7ade900c6bd6b36641)
2023-03-03 11:58:46 +01:00
Frantisek Sumsal
e8eb3ddbaf test: disable pipefail when testing interactive firstboot
Otherwise we might get unexpected test fails due to SIGPIPE:

```
[   14.334917] testsuite-74.sh[565]: + grep -q '^root:.*:0:0:.*:/bin/fooshell$' test-root/etc/passwd
[   14.335670] testsuite-74.sh[681]: + systemd-firstboot --root=test-root --prompt-root-shell
[   14.336382] testsuite-74.sh[680]: + echo -ne '\n/bin/barshell\n'
[   14.336980] testsuite-74.sh[680]: .//usr/lib/systemd/tests/testdata/units/testsuite-74.firstboot.sh: line 166: echo: write error: Broken pipe
```

(cherry picked from commit 27c814666fa25210c3f6c603c8da836189272eb0)
(cherry picked from commit d2739b8c1470d326fb539b6d03a6d938e089d3f1)
2023-03-03 11:58:41 +01:00
Yu Watanabe
892fe5d204 process-util: show requested process name in the log
This is useful for debugging issues like #26474.

(cherry picked from commit b9fadf2e2cb83d342342341b0edba4f519890634)
(cherry picked from commit ba1cb4156bb7df9d5ce1b35a25425e544f6989de)
2023-03-03 11:57:59 +01:00