Commit Graph
49437 Commits
Author SHA1 Message Date
Mike Yuan f9e2b42b16 debug-generator: clean up logging and such for units passed from creds 2024-05-08 18:43:50 +08:00
Mike Yuan a3816ea427 debug-generator: don't eat up error if we can't write drop-in
While at it, prepend the drop-in text with
our usual "Automatically generated by ...".
2024-05-08 18:43:50 +08:00
Mike Yuan 2997df9777 debug-generator: drop unneeded empty_to_root 2024-05-08 18:43:49 +08:00
Mike Yuan 221bad6007 debug-generator: use RET_GATHER where appropriate 2024-05-08 18:43:49 +08:00
Mike Yuan b5636a8f83 debug-generator: enclose function call in if statement when retval
is not used
2024-05-08 18:43:49 +08:00
Mike Yuan a688e5fefd ssh-generator: fix pointer cast type 2024-05-08 18:20:59 +08:00
Lennart PoetteringandLuca Boccassi cd7c207795 tree-wide: add dlopen ELF notes to all dlopen() deps of ours
Use 'recommended' priority for the default compression library, to
indicate that it should be prioritized over the other ones, as it
will be used to compress journals/core files.
Also use 'recommended' for kmod, as systems will likely fail to boot
if it's missing from the initrd.
Use 'suggested' for everything else.

There is one dlopen'ed TPM library that has the name generated
at runtime (depending on the driver), so that cannot be added, as it
needs to be known at build time.
Also when we support multiple ABI versions list them all, as for the
same reason we cannot know which one will be used at build time.

$ dlopen-notes.py build/libsystemd.so.0.39.0 build/src/shared/libsystemd-shared-256.so
libarchive.so.13 suggested
libbpf.so.0 suggested
libbpf.so.1 suggested
libcryptsetup.so.12 suggested
libdw.so.1 suggested
libelf.so.1 suggested
libfido2.so.1 suggested
libgcrypt.so.20 suggested
libidn2.so.0 suggested
libip4tc.so.2 suggested
libkmod.so.2 recommended
liblz4.so.1 suggested
liblzma.so.5 suggested
libp11-kit.so.0 suggested
libpcre2-8.so.0 suggested
libpwquality.so.1 suggested
libqrencode.so.3 suggested
libqrencode.so.4 suggested
libtss2-esys.so.0 suggested
libtss2-mu.so.0 suggested
libtss2-rc.so.0 suggested
libzstd.so.1 recommended

Co-authored-by: Luca Boccassi <bluca@debian.org>
2024-05-08 11:07:36 +01:00
Lennart PoetteringandLuca Boccassi 2f6bd11c1a dlfcn: add macro for exporting dlopen() module names in ELF sections
This allows code to declare "weak" dlopen() style deps via an ELF
section following the just added specification.

The idea is that any user of dlopen() will place ELF_NOTE_DLOPEN(…)
somewhere close which will synthesize the note.

Tools such as rpm/dpkg package builders as well as initrd generators
(such as dracut) can then automatically pick up these weak deps of
suggested dependencies for their purposes.

Co-authored-by: Luca Boccassi <bluca@debian.org>
2024-05-08 11:07:36 +01:00
Daan De Meyer 677430b3c7 tmpfiles: Don't fail if file does not exist in item_do()
If the file was removed by some other program, we should just go
to the next one without failing. item_do() is only used for recursive
globs instead of fixed paths so skipping on missing files makes sense
(unlike if the path was fixed where we should probably fail).

Fixes #32691 (hopefully)
2024-05-08 12:01:37 +02:00
Sam Leonard 1f815bf164 machined: add GetMachineSSHInfo method
Also adds three properties:
- VsockCid: the VSOCK CID of the VM
- SshAddress: the address of the VM in a format SSH can connect to
- SshPrivateKeyPath: the path to the SSH private key to use to connect
  to the VM.

GetMachineSSHInfo is essentially a convenience method to query both the
SshAddress and SshPrivateKeyPath properties at once.
2024-05-08 09:56:42 +01:00
Sam Leonard 885317f1ab machined: split manager linking out of machine_new into machine_link 2024-05-08 09:52:15 +01:00
Sam Leonard 71a15f37af machined: expose machine_freep in machine.h 2024-05-08 09:52:15 +01:00
Sam Leonard 8fcf504b8c shared/json: add json_dispatch_absolute_path 2024-05-08 09:52:15 +01:00
Daan De Meyer b438ebd7bc TEST-07-PID1: Fix race in aux-scope subtest
Currently test-aux-scope.service can get killed by the test before
it's had a chance to setup its signal handler. Make it Type=notify
to fix the race.

Fixes #32670 (hopefully)
2024-05-08 10:20:20 +02:00
Zbigniew Jędrzejewski-Szmek a4f0e0da35 preset-all: continue on errors, report more errors
Firstly, if we encounter an error when iterating over the directory, gather
the error but continue. This is unlikely to happen, but if it happens, then
it doesn't seem very useful to break the preset processing at a random
point. If we can't process a unit — too bad, but since we already might
have processed some units earlier, we might as well try to process the
remaining ones.

Secondly, add missing error codes for units that are in a bad state to the
exclusion list. Those, we report them in the changes list, but consider the
whole operation a success. (-ETXTBSY and -ENOLINK were missing.)

Thirdly, add a message generator for -ENOLINK.

Fixes https://github.com/systemd/systemd/issues/21224.
2024-05-08 08:18:55 +02:00
Mike Yuan 4f344de792 systemctl: do not fall back to StartUnit automatically for sleep operations
In the majority of cases, this is caused by
sleep_supported() returning error. Hence it's
very likely that it would fail again, so
the fallback is not really useful. Instead,
honor the --force option for these verbs.
2024-05-08 13:45:49 +08:00
Mike Yuan 3fce141c1b hibernate-util,logind: also differentiate the case of misconfigured resume 2024-05-08 12:55:25 +08:00
Mike Yuan 40eb83a8fe hibernate-util,logind: emit a clear error if the specified resume dev is missing
Currently, SLEEP_NOT_ENOUGH_SWAP_SPACE (ENOSPC) is returned
on all sorts of error conditions. But one important case
that's worth differentiating from that is when the resume device
is manually specified yet missing.

Closes #32644
2024-05-08 12:54:13 +08:00
Mike Yuan 8aed85875d repart: correct timespec_store usage too 2024-05-08 00:19:38 +08:00
Mike Yuan 158681f0f9 basic/mkdir: use timespec_store instead of _nsec for mkdir_p_root_full
Follow-up for 34c3d57474

O_RDONLY is dropped when O_DIRECTORY is specified, since
it's unnecessary and even arguably confusing here, as
the dir is modified.
2024-05-08 00:18:27 +08:00
Mike Yuan 026335e9aa core/service: use switch for service_enter_start
Plus, add an assertion to ensure we're actually
using the start timestamp for the correct pid.
2024-05-08 00:17:54 +08:00
Mike Yuan dddc060286 core/execute: re-break function declaration of exec_spawn
Also rearrange some variable definitions. Note that
DECIMAL_STR_MAX() contains the size of NUL byte,
so +1 is dropped.
2024-05-08 00:16:54 +08:00
Mike Yuan 06c0f569e9 core/unit: use FOREACH_STRING where appropriate
Follow-up for 61628287bd
2024-05-08 00:16:36 +08:00
Mike Yuan 6b34871f5d core/exec-credential: complain louder if inherited credential is missing
Also document that a missing inherited credential
is not considered fatal.

Closes #32667
2024-05-07 22:02:42 +08:00
Mike Yuan d568c4c1a8 core/load-fragment: modernize config_parse_load_credential a bit 2024-05-07 21:58:16 +08:00
David Tardon cd35c15de3 clean-ipc: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 75c64e58d1 udev-rules: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 2c30973f0b homework-quota: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 6c936c156a homework-blob: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 11bbc1f8b8 homework-fscrypt: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon bc65a5e37d homed-manager: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 3a5046782e test-bpf-foreign-programs: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 2dd1676fa7 test-bpf-restrict-fs: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 1174ebb45f test-socket-bind: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 192a452d1c nspawn: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 3613a1d49f userns-restrict: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon 422aa53123 cgroup-show: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon af1690cfcc manager: pass the right error variable 2024-05-07 14:02:08 +02:00
David Tardon be6aa742a6 resolved-dns-stream: pass the right error variable 2024-05-07 13:23:24 +02:00
David Tardon 6400084caa exec-invoke: pass the right error variable 2024-05-07 13:19:42 +02:00
David Tardon ac10f7e28c main: pass the right error variable 2024-05-07 13:18:10 +02:00
David Tardon bad6cb5ae8 bless-boot: pass the right error variable 2024-05-07 13:16:30 +02:00
David Tardon 47eab95ea8 journal-remote-main: pass the right error variable 2024-05-07 13:13:24 +02:00
David Tardon cc4482ee23 discover-image: pass the right error variable 2024-05-07 12:44:03 +02:00
Vladimir Stoiakin ca6cb9c089 cryptsetup: make type-specific checks for PKCS#11 private keys 2024-05-07 11:07:01 +02:00
Luca Boccassi 5dbc2b21dc Merge pull request #32677 from keszybz/wording-fixes
Wording fixes
2024-05-07 11:03:44 +02:00
Luca Boccassi d78b695217 Merge pull request #32635 from poettering/cryptenroll-no-pcrlock-conflict
cryptenroll: don't try to use pcrlock in combination with signed PCR policy if both are available, because we don't actually support that right now
2024-05-07 09:49:30 +02:00
Zbigniew Jędrzejewski-Szmek 71322b95ad manager: resolve verb/noun mixup in log message
The word is used in "%s requested" so it should be a noun.
2024-05-07 09:42:47 +02:00
Moritz Sanft 34c3d57474 repart: respect SOURCE_DATE_EPOCH on mkdir_p_root
This let's systemd-repart respect the `SOURCE_DATE_EPOCH` environment
variable when creating directories in the local tree through `CopyFiles`
or `MakeDirectories`.

To do this, we pass a timestamp `ts` to `mkdir_p_root`, which it will
use to fix up `mtime` and `atime` of the directory it creates as
well as the `mtime` of the directory it creates the other directory *in*,
as the `mtime` of the latter is modified when creating a directory in it.

For the same reason, it also needs to fixup the `mtime` of the upper
directory when copying a file into it through `CopyFiles`.

If `SOURCE_DATE_EPOCH`, times are left as is. (`UTIME_OMIT`)
2024-05-07 09:29:58 +02:00
Lennart Poettering 3f2402171b tpm2-util: tweak JSON condition check
As for the other fields let's check if the actual variable we serialize
is set before serializing it.

This shouldn't make any difference, since the pubkey and the PCR mask
should always be set together or neither, but I think it's easier to
grok this way, and makes the function nicely "dumb": it serializes what
is specified, without trying to be smart by suppressng specified fields.
2024-05-06 16:15:16 +02:00