Commit Graph
71663 Commits
Author SHA1 Message Date
Susant Sahani e5aa8c193d network: DHCP6 Allow to export DHCP6 DUID (#31355)
We did not support the export of DHCP6 DUID. Let's add this. Some
applications may use it.
2024-02-21 19:32:27 +09:00
Antonio Alvarez Feijoo 68ad9e43f6 cryptsetup-tokens: fix typo in comments 2024-02-21 10:23:43 +00:00
Sam Leonard 1ec3218e82 vmspawn: add --extra-drive= 2024-02-21 10:22:40 +00:00
Sam Leonard 018cc9eaf6 vmspawn: correctly escape ',' in certain values passed to qemu 2024-02-21 10:22:40 +00:00
Frantisek Sumsal 8f0dbbd758 homectl: make sure we sent the full 8 bytes as flags
Otherwise weird stuff happens on the other side:

[1217111.957263] testsuite-46.sh[61]: + homectl create test-user --disk-size=min --luks-discard=yes --image-path=/home/test-user.home --luks-pbkdf-type=pbkdf2 --luks-pbkdf-time-cost=1ms
[1217112.598219] homectl[66]: Operation on home test-user failed: Provided flags are unsupported (0ad2578000000000).

(taken from TEST-46-HOME run on armv7l)

Fixes issue mentioned in https://github.com/systemd/systemd/pull/31419#issuecomment-1955117397.
2024-02-21 10:14:51 +00:00
Lennart Poettering 234bdd9c99 process-util: use proc_mounted() check at one more place 2024-02-21 09:25:46 +01:00
Lennart Poettering 2287565d46 pid1: port executor binary pinning to new build path logic 2024-02-21 09:25:46 +01:00
Lennart Poettering 84ab5d1f95 sysupdate: port over to new invoke_callout_binary() call 2024-02-21 09:25:46 +01:00
Lennart Poettering c17c467144 userdbd: port userdbd over to invoke_callout_binary() 2024-02-21 09:25:46 +01:00
Lennart Poettering a0afd4e733 importd: port importd over to new invoke_callout_binary() API 2024-02-21 09:25:46 +01:00
Lennart Poettering d39a161a46 homed: port to use new invoke_callout_binary() API 2024-02-21 09:25:46 +01:00
Lennart Poettering 950ca1788e build-path: allow overriding of all callout binary paths via an env var 2024-02-21 09:25:46 +01:00
Lennart Poettering 91d149cfb4 basic: add "build path" logic
We have a number of components these days that are split into multiple
binaries, i.e. a primary one, and a worker callout usually. These
binaries are closely related, they typically speak a protocol that is
internal, and not safe to mix and match. Examples for this:

- homed and its worker binary homework
- userdbd and its worker binary userwork
- import and the various pull/import/export handlers
- sysupdate the same
- the service manager and the executor binary

Running any of these daemons directly from the meson build tree is
messy, since the implementations will typically invoke the installed
callout binaries, not the ones from the build tree. This is very
annoying, and not obvious at first.

Now, we could always invoke relevant binaries from $(dirname
/proc/self/exe) first, before using the OS installed ones. But that's
typically not what is desired, because this means in the installed case
(i.e. the usual one) we'll look for these callout binaries at a place
they typically will not be found (because these callouts generally are
located in libexecdir, not bindir when installed).

Hence, let's try to do things a bit smarter, and follow what build
systems such as meson have already been doing to make sure dynamic
library discovery works correctly when binaries are run from a build
directory: let's start looking at rpath/runpath in the main binary that
is executed: if there's an rpath/runpath set, then we'll look for the
callout binaries next to the main binary, otherwise we won't. This
should generally be the right thing to do as meson strips the rpath
during installation, and thus we'll look for the callouts in the build
dir if in build dir mode, and in the OS otherwise.
2024-02-21 09:25:46 +01:00
Mike Yuan de53c661bc logind-dbus: clean up manager_{start,stop,kill}_unit 2024-02-21 15:55:01 +08:00
Mike Yuan 783e816e81 logind-dbus: rearrange functions 2024-02-21 15:50:13 +08:00
Mike Yuan d536e8b5e9 logind-session-dbus: drop unneeded unref_and_replace
If there's pending s->upgrade_message, we already return early
above.
2024-02-21 15:37:33 +08:00
Yu Watanabe 3c6d9d1c39 Merge pull request #31405 from yuwata/network-ndisc-reachable-time
network/ndisc: set neighbor reachable time
2024-02-21 14:29:01 +09:00
Mike Yuan e404ca3eb7 Merge pull request #31419 from AdrianVovk/fixup-largefile-define
Fixup largefile define
2024-02-21 13:12:30 +08:00
Yu Watanabe a6a6197e9d pam_systemd_home: always close already opened bus connection in open_session()
Fixes #31375.
2024-02-21 13:22:54 +09:00
Yu Watanabe 0324e3d045 pam_systemd_home: open sd-bus session when necessary
No functional change, just refactoring.
2024-02-21 12:45:32 +09:00
Yu Watanabe 9891f1d371 pam-util: add one more debugging log about sd-bus connection
Continuation of b5b2510800.
2024-02-21 12:09:21 +09:00
Yu Watanabe 9e39d0a32a Merge pull request #31408 from mrc0mmand/verify-unit-files-v2
test: verify our own units (where applicable)
2024-02-21 12:01:48 +09:00
Luca Boccassi 5605b7d61a Merge pull request #31400 from poettering/askpw-rework
Password Asking rework
2024-02-20 23:45:52 +00:00
Adrian Vovk e4d0606c2b fd-util: Add helpers to check if FD flags are safe
Adds a SAFE_FD_FLAGS define to list out all the safe FD flags, and also
an UNSAFE_FD_FLAGS() macro to strip out the safe flags and leave only
the unsafe flags. This can be used to quickly check if any unsafe flags
are set and print them for diagnostic purposes
2024-02-20 15:01:37 -05:00
Adrian Vovk 9e3db91f2f missing_fcntl: Fix RAW_O_LARGEFILE
This value is actually arch-specific, so this commit defines it for all
the arches that set it to some custom value

Fixes https://github.com/systemd/systemd/issues/31417
2024-02-20 15:01:36 -05:00
Zbigniew Jędrzejewski-Szmek 0615abef62 analyze: always recommend saving the output to a file
The command will refuse to write to a TTY, so give a strong hint
that redirecting to a file is recommended. This makes the synopsis,
man page text, and --help output consistent.

Also drop the space after the redirection operator everywhere.
2024-02-20 19:35:58 +00:00
Lennart Poettering b2ac928088 cryptsetup: drop "headless" bool, make it a flag in AskPasswordFlags instead
This bool controls whether we should interactively ask for a password,
which is pretty much what the ask_password-api.c APIs are about. Hence,
just make the bool a flag in AskPasswordFlags enum, and use it
everywhere.

This still catches the flag early in upper levels of the codebase,
exactly as before, but if the flag is still present in the lower layers
it's also handled there and results in ENOEXEC if seen.

This is mostly an excercise in simplifying our ridiculously long
function call parameter lists a bit.
2024-02-20 16:50:04 +01:00
Lennart Poettering 732285eb8c man: tweak cryptsetup credentials docs a bit
Let's bring the credentials into a better order, in order of relevance.

Also, let's clarify what the generic LUKS PIN is about.

Finally, list the credentials in system-credentials(7) too, after all
people might want to unlock a disk with this via SMBIOS Type 11 or so.
2024-02-20 16:50:00 +01:00
Lennart Poettering 0fceb5539d man: now that the crdentials used by systemd-cryptenroll are in order, document them
Replaces: #31370
2024-02-20 16:50:00 +01:00
Lennart Poettering 1c12daa46f cryptsetup-pkcs11: also plug credential name to use to credential plugin 2024-02-20 16:50:00 +01:00
Lennart Poettering b3a635841a cryptenroll,cryptsetup: clean up unlock credential for TPM2 + FIDO2
Let's make sure that when cryptenroll asks for the TPM2 or FIDO2 token
PIN it uses cryptenroll.* credential namespace, and cryptsetup uses
cryptsetup.*.
2024-02-20 16:50:00 +01:00
Lennart Poettering a96c284f10 pkcs11-util: clean up credential handling for PKCS11 PIN
similar as the previous commit, let's clean up the credential name we
use. Use home.token-pin in case of homectl, and cryptenroll.pkcs11-pin
in case of cryptenroll.
2024-02-20 16:50:00 +01:00
Lennart Poettering 7252be6083 cryptenroll: use a different credential for new new PIN
The TPM2 enrollment is the only of the three token enrollments where the
user picks a PIN at enrollment time (the others have a PIN set for the
token, not for the enrollment). Let's make sure it uses a different
credential for retrieving this PIN, in order to make sure people can
programmatically change PINs via credentials (in which case they need to
supply both).
2024-02-20 16:50:00 +01:00
Lennart Poettering 251c71b62b libfido2: tweak credential to read fido2 PIN from
Querying a fido2 PIN via askpw for enrolling is currently used in two
places: cryptenroll and homectl. So far we sloppily used the same fixed
credential name "fido2-pin" in both cases. Let's tweak that and make the
credential name match the other credentials cryptenroll or home query,
i.e. using the cryptenroll.* and home.* namespaces.

This is particular done in light of #31370, which wants to make the
credential name public. We really should get the name in order before
making it public.
2024-02-20 16:50:00 +01:00
Lennart Poettering 09eed3bf8c pcrlock: normalize credential name for TPM2 PIN
Let's drop the "systemd-" prefix from the credential name. We do not
prefix credentials that way so far. Don't do so here either.

The name is not really API, it's not documented, hence change it now
where we still can.
2024-02-20 16:50:00 +01:00
Lennart Poettering 6278a8655f cryptenroll: use correct askpw id for pw request
The "id" is used in the askpw protocol to recognize password prompts, in
case a service is replying to them and needs some id. Previously we set
an incorrect id, the one of cryptsetup. Fix that.

(I guess the id is not used much, it comes from a time where we had no
credentials, and thus some people wanted to supply passphrases
programmatically rather interactively. The usecase is probably gone, but
we should still set some valid id I guess.)
2024-02-20 16:50:00 +01:00
Lennart Poettering 6b3a907764 dissect-image: use strv_free_erase() at one more place 2024-02-20 16:50:00 +01:00
Lennart Poettering 05569104bd cryptenroll: fix type confusion on acquire_tpm2_key() parameter 2024-02-20 16:50:00 +01:00
Lennart Poettering d08fd4c314 ask-password: rework how we pass request meta info when asking passwords
Rather than adding more and more parameters to ask_password_auto(), let's
pass a structure of the fields that often are constant anyway.

This way, callers can fill in what they need, and we take the filled
structure which we can pass around internally as one.

This is in particular preparation for adding one more field in one of
the next commits.
2024-02-20 16:50:00 +01:00
Mike Yuan 8e94bb62a5 core/mount: if umount(8) fails but mount disappeared, assume success
Fixes #31337
2024-02-20 16:22:27 +01:00
Frantisek Sumsal 5083e42765 test: verify our own units (where applicable)
This is inspired by one of our internal tests that does pretty much the
same thing. However, it is slightly more convoluted than I'd like it to
be, since I really don't want to duplicate the list of our units in
another place, so we need to, somehow, pass the list from the meson file
to the test script. I originally envisioned this to be a part of the
unit test suite, but this doesn't work for unit files with absolute
paths to binaries, as we'd have to install the build first (maybe using
a chroot would work?).

It doesn't check man pages (since they might not be installed on the
test machine) and also skip recursive dependencies (as that would trip
over issues in files that are not under our direct control), but it
should still cover typos and such.

There are currently two units for which the check had to be disabled -
syslog.socket, as the corresponding syslog.service might not be
installed, and rc-local.service as that's a compat API and the necessary
/etc/rc.d/rc.local file may not (and most likely won't be) present.
2024-02-20 15:45:50 +01:00
Zmyeir 8a461c572b hwdb: Add support for MetawillBook01 to 60-sensor.hwdb
Add accel orientation quirk for the METAPHYUNI MetawillBook01 2-in-1 laptop
2024-02-20 15:10:47 +01:00
MrSmör 8b6cfbd2b8 boot: padding for default arrow at too long lines
If the default boot entry name doesnt leave enough space for the
indicator arrow, it overwrote the first two characters of the entry

Now every line will always have enough padding.
2024-02-20 14:36:52 +01:00
Frantisek Sumsal 3e7b1b5cb9 test: fix mixed indent 2024-02-20 13:31:00 +01:00
Frantisek Sumsal a69ec6fb02 test: support TEST_MATCH_* stuff in TEST-23-UNIT-FILE as well
TEST-23 uses run_subtests_with_signals() which I forgot about when
introducing the change.

Follow-up for 0efa27bd4b.
2024-02-20 13:31:00 +01:00
Luca Boccassi ce3fa3863d Merge pull request #31388 from keszybz/bitfield-cleanup
Bitfield cleanup
2024-02-20 12:15:24 +00:00
Yu Watanabe 142f0e9517 analyze: skip to check ExecCommand for .mount and .swap units
They are not set by a unit file, but dynamically generated.

Fixes a bug caused by abf0ccc1c6.

Fixes #31396.
2024-02-20 11:59:10 +00:00
Zbigniew Jędrzejewski-Szmek 6169bb19a9 logind: drop bitfield annotations
As in other cases, this is simpler but better.

pahole:
-	/* size: 336, cachelines: 6, members: 50 */
-	/* sum members: 316, holes: 4, sum holes: 19 */
-	/* sum bitfield members: 4 bits, bit holes: 1, sum bit holes: 4 bits */
-	/* last cacheline: 16 bytes */
+	/* size: 328, cachelines: 6, members: 50 */
+	/* sum members: 320, holes: 3, sum holes: 8 */
+	/* last cacheline: 8 bytes */
2024-02-20 10:42:36 +01:00
Zbigniew Jędrzejewski-Szmek d53017292e timesyncd: reorder structs instead of useless bitfields
Because of alignment, those bitfields were not doing anything useful,
and were causing the generated code to be more complicated. But in this
case, at least potentially there might be a number of copies of those
structs (if we have a bunch of time servers configured), so let's actually
implement the intended space savings by reording the fields to reduce the
size of holes.
2024-02-20 10:41:09 +01:00
Zbigniew Jędrzejewski-Szmek 611a6d15cb systemctl: drop pointless bitfield 2024-02-20 10:41:09 +01:00