| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
do_spawn() is also called during execute_strv(), so rename
"direxec" to "exec-inner".
|
| |
|
|
|
|
| |
... because that is obviously a security risk.
|
| |
|
|
|
|
|
|
| |
- Rename ret params following our coding style
- Use assertion where appropriate
- Use BIT_FOREACH()
|
|
|
|
| |
Preparation for rewriting kernel-install in C.
|
|
|
|
| |
Will be used in later commits.
|
|
|
|
|
|
| |
Then, we can use it with a custom enumerator of executables.
No functional change, preparation for later commits.
|
|
|
|
| |
This reverts commit 9c46228b7deb53d6384545535b37b2844a102b2b.
|
|
|
|
|
| |
That way we can use it in other code from basic/. It fits into both
headers equally well or badly, hence let's just move this one function.
|
|
|
|
|
|
|
|
| |
Library code should not call freeze(), this is something that should
only be done by "application code", so moving it into shared/ is appropriate.
The fallback to call _exit() is dropped: let's trust that the infinite loop
is infinite.
|
|
|
|
|
|
|
| |
Currently it's only used in two places in src/shared/, so the function was
already included just once in compiled code. But it seems appropriate to
move it there anyway, because library code should have no need to fork
agents, so it doesn't belong in basic/.
|
|
|
|
| |
Follow-up of #11484
|
| |
|
|\
| |
| | |
Resolve executable paths before execution, use fexecve()
|
| |
| |
| |
| | |
fexecve() fails with ENOENT and we need a fallback. Add appropriate test.
|
|/ |
|
|
|
|
| |
Closes #11654
|
|
|
|
|
|
|
|
|
| |
This adds a new bitfield to `execute_directories()` which allows to
configure whether to ignore non-zero exit statuses of binaries run and
whether to allow parallel execution of commands.
In case errors are not ignored, the exit status of the failed script
will now be returned for error reposrting purposes or other further
future use.
|
|
This doesn't have much effect on the final build, because we link libbasic.a
into libsystemd-shared.so, so in the end, all the object built from basic/
end up in libsystemd-shared. And when the static library is linked into binaries,
any objects that are included in it but are not used are trimmed. Hence, the
size of output artifacts doesn't change:
$ du -sb /var/tmp/inst*
54181861 /var/tmp/inst1 (old)
54207441 /var/tmp/inst1s (old split-usr)
54182477 /var/tmp/inst2 (new)
54208041 /var/tmp/inst2s (new split-usr)
(The negligible change in size is because libsystemd-shared.so is bigger
by a few hundred bytes. I guess it's because symbols are named differently
or something like that.)
The effect is on the build process, in particular partial builds. This change
effectively moves the requirements on some build steps toward the leaves of the
dependency tree. Two effects:
- when building items that do not depend on libsystemd-shared, we
build less stuff for libbasic.a (which wouldn't be used anyway,
so it's a net win).
- when building items that do depend on libshared, we reduce libbasic.a as a
synchronization point, possibly allowing better parallelism.
Method:
1. copy list of .h files from src/basic/meson.build to /tmp/basic
2. $ for i in $(grep '.h$' /tmp/basic); do echo $i; git --no-pager grep "include \"$i\"" src/basic/ 'src/lib*' 'src/nss-*' 'src/journal/sd-journal.c' |grep -v "${i%.h}.c";echo ;done | less
|