summaryrefslogtreecommitdiff
path: root/meson.build
Commit message (Collapse)AuthorAgeFilesLines
* Revert "journal: Add --convert= command to journalctl"Daan De Meyer2022-10-081-4/+2
| | | | | | This reverts commit 721620e8a32907ffe546a582c5ac7136b6367510. This commit was accidentally merged as part of #22998
* meson: bump numbers for v252-rc1Luca Boccassi2022-10-071-3/+3
|
* journal: Add --convert= command to journalctlDaan De Meyer2022-10-071-2/+4
| | | | | | | | --convert writes the journal files read by journalctl to the given location. The location should be specified as a full journal file path (e.g. /a/b/c/converted.journal). The directory specifies where the converted journal files will be stored. The filename specifies the naming convention the converted journal files will follow.
* Merge pull request #24511 from martinetd/bpf1Zbigniew Jędrzejewski-Szmek2022-10-061-1/+1
|\ | | | | libbpf: Add libbpf 1.0.0 compat
| * libbpf: add compat helpers for libbpf down to 0.1.0Dominique Martinet2022-10-061-1/+1
| | | | | | | | | | | | | | | | | | - new symbols are available from libbpf 0.6.0 so could be used with libbpf.so.0, but we're sure the old symbols will be there and this simplifies code - detection at runtime should always work, regardless of whether systemd has been compiled with older or newer libbpf and runs with older or newer libbpf
| * Bump libbpf version to 0.7Daan De Meyer2022-10-061-1/+1
| | | | | | | | | | | | | | | | We already depend on the skeleton APIs introduced in libbpf 0.7 so let's bump our minimum version to reflect that. We don't enforce bpf compilation on mkosi anymore since not all distros have sufficiently up-to-date libbpf available.
* | meson: Require TPM2 for measuring utilitiesMichal Koutný2022-10-061-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | I happened to run build with openssl but no tpm2 and ran into issues like: [313/1382] Compiling C object systemd-measure.p/src_boot_measure.c.o FAILED: systemd-measure.p/src_boot_measure.c.o cc -Isystemd-measure.p -I. -I.. -Isrc/basic -I../src/basic -Isrc/fundamental -I../src/fundamental -Isrc/systemd -I../src/systemd -I../src/libsystemd/sd-bus -I../src/libsystemd/sd-device -I../src/libsystemd/sd-event -I../src/libsystemd/sd-hwdb -I../src/libsystemd/sd-id128 -I../src/libsystemd/sd-journal -I../src/libsystemd/sd-netlink -I../src/libsystemd/sd-network -I../src/libsystemd/sd-resolve -Isrc/shared -I../src/shared -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu11 -O0 -g -Wno-missing-field-initializers -Wno-unused-parameter -Wdate-time -Wendif-labels -Werror=format=2 -Werror=format-signedness -Werror=implicit-function-declaration -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=overflow -Werror=override-init -Werror=return-type -Werror=shift-count-overflow -Werror=shift-overflow=2 -Werror=undef -Wfloat-equal -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-aliasing=2 -Wstrict-prototypes -Wsuggest-attribute=noreturn -Wunused-function -Wwrite-strings -Wno-unused-result -Werror=missing-declarations -Werror=missing-prototypes -fdiagnostics-show-option -fno-common -fno-strict-aliasing -fstack-protector -fstack-protector-strong -fvisibility=hidden --param=ssp-buffer-size=4 -fno-omit-frame-pointer -Werror=shadow -include config.h -DOPENSSL_LOAD_CONF -MD -MQ systemd-measure.p/src_boot_measure.c.o -MF systemd-measure.p/src_boot_measure.c.o.d -o systemd-measure.p/src_boot_measure.c.o -c ../src/boot/measure.c ../src/boot/measure.c: In function ‘verb_sign’: ../src/boot/measure.c:710:48: error: variable ‘c’ has initializer but incomplete type 710 | _cleanup_(tpm2_context_destroy) struct tpm2_context c = {}; [308/1382] Compiling C object systemd-pcrphase.p/src_boot_pcrphase.c.o FAILED: systemd-pcrphase.p/src_boot_pcrphase.c.o cc -Isystemd-pcrphase.p -I. -I.. -Isrc/basic -I../src/basic -Isrc/fundamental -I../src/fundamental -Isrc/systemd -I../src/systemd -I../src/libsystemd/sd-bus -I../src/libsystemd/sd-device -I../src/libsystemd/sd-event -I../src/libsystemd/sd-hwdb -I../src/libsystemd/sd-id128 -I../src/libsystemd/sd-journal -I../src/libsystemd/sd-netlink -I../src/libsystemd/sd-network -I../src/libsystemd/sd-resolve -Isrc/shared -I../src/shared -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu11 -O0 -g -Wno-missing-field-initializers -Wno-unused-parameter -Wdate-time -Wendif-labels -Werror=format=2 -Werror=format-signedness -Werror=implicit-function-declaration -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=overflow -Werror=override-init -Werror=return-type -Werror=shift-count-overflow -Werror=shift-overflow=2 -Werror=undef -Wfloat-equal -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-aliasing=2 -Wstrict-prototypes -Wsuggest-attribute=noreturn -Wunused-function -Wwrite-strings -Wno-unused-result -Werror=missing-declarations -Werror=missing-prototypes -fdiagnostics-show-option -fno-common -fno-strict-aliasing -fstack-protector -fstack-protector-strong -fvisibility=hidden --param=ssp-buffer-size=4 -fno-omit-frame-pointer -Werror=shadow -include config.h -DOPENSSL_LOAD_CONF -MD -MQ systemd-pcrphase.p/src_boot_pcrphase.c.o -MF systemd-pcrphase.p/src_boot_pcrphase.c.o.d -o systemd-pcrphase.p/src_boot_pcrphase.c.o -c ../src/boot/pcrphase.c ../src/boot/pcrphase.c: In function ‘determine_banks’: ../src/boot/pcrphase.c:117:24: error: unknown type name ‘TPMI_ALG_HASH’ 117 | _cleanup_free_ TPMI_ALG_HASH *algs = NULL; Guarding the utilites with HAVE_TPM2 fixes the issue for me. This complements #24811.
* meson: set minimum libbpf/bpftool versions for bpf-gccJames Hilliard2022-10-011-6/+16
| | | | | | | | We need the following libbpf commits for bpf-gcc compatibility: - https://github.com/libbpf/libbpf/commit/3d484ca47339b23afb2ec7c508ed9a3a5cf1d287 - https://github.com/libbpf/libbpf/commit/b31ca3fa0e62fde6aa66f855136e29e088ad9dde These are first present in libbpf 1.0.0 and bpftool 7.0.0.
* meson: libfido2 requires opensslYu Watanabe2022-09-251-3/+10
| | | | | | | | | | | | | | | | | | | | | | Fixes compile error with -Dopenssl=false. ``` In file included from ../../home/watanabe/git/systemd/src/shared/pkcs11-util.h:12, from ../../home/watanabe/git/systemd/src/cryptenroll/cryptenroll.c:24: ../../home/watanabe/git/systemd/src/shared/openssl-util.h:56:21: error: conflicting types for ‘X509’; have ‘struct X509’ 56 | typedef struct X509 X509; | ^~~~ In file included from /usr/include/openssl/crypto.h:25, from /usr/include/openssl/bio.h:20, from /usr/include/openssl/asn1.h:16, from /usr/include/openssl/ec.h:17, from /usr/include/fido.h:10, from ../../home/watanabe/git/systemd/src/shared/libfido2-util.h:18, from ../../home/watanabe/git/systemd/src/cryptenroll/cryptenroll-fido2.h:7, from ../../home/watanabe/git/systemd/src/cryptenroll/cryptenroll.c:6: /usr/include/openssl/ossl_typ.h:123:24: note: previous declaration of ‘X509’ with type ‘X509’ {aka ‘struct x509_st’} 123 | typedef struct x509_st X509; | ^~~~ ```
* repart: Add support for generating verity sig partitionsDaan De Meyer2022-09-231-1/+2
|
* boot: add new pcrphase tool to measure barrier strings into PCR 11Lennart Poettering2022-09-221-0/+9
|
* meson: make several tests run sequentiallyYu Watanabe2022-09-201-1/+2
| | | | Follow-up for f93ba375301e43900f1fe5a93a2b33b1efcc73e0.
* meson: add libatomic dependencyHeinrich Schuchardt2022-09-151-1/+11
| | | | | | | | | | | | | | | Building with GCC 12.2 and binutils 2.39 fails on riscv64 Ubuntu Kinetic with: FAILED: systemd-oomd /usr/bin/ld: systemd-oomd.p/src_oom_oomd-util.c.o: in function `oomd_cgroup_context_acquire': build/../src/oom/oomd-util.c:415: undefined reference to `__atomic_exchange_1' We have to link with -latomic. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
* meson: Compile with -Werror=format-signednessJan Janssen2022-08-301-1/+1
|
* test: merge test-repart.sh and TEST-58-REPARTYu Watanabe2022-08-221-6/+0
|
* Merge pull request #24054 from keszybz/initrd-no-reloadFrantisek Sumsal2022-08-181-0/+4
|\ | | | | Don't do daemon-reload in the initrd
| * fstab-generator: add mode to check /sysroot/etc/fstab and maybe do daemon-reloadZbigniew Jędrzejewski-Szmek2022-07-231-0/+4
| | | | | | | | | | | | | | | | | | | | | | The idea is that we can peek into /sysroot/etc/fstab and figure out if there's anything interesting there. We could use a separate binary for this, but we'd need to duplicate most of the logic that in systemd-fstab-generator. Thus I think it's nicer to make systemd-fstab-generator work as a multi-call binary. If called as systemd-sysroot-fstab-check, we look for units that we'd mount and call daemon-reload and initrd-fs.target/restart, similarly to what we did before, but in the process itself.
* | meson: use 'not in'Yu Watanabe2022-08-091-1/+1
| | | | | | | | | | Follow-ups for 60f97fee2d2f948c8e8963ea8ff767008cb93cae and 32963344736004e01ff4dd9dca079faabaf58cf2.
* | measure: add new tool to precalculate PCR values for a kernel imageLennart Poettering2022-08-021-0/+12
| | | | | | | | | | | | | | | | | | For now, this simply outputs the PCR hash values expected for a kernel image, if it's measured like sd-stub would do it. (Later on, we can extend the tool, to optionally sign these pre-calculated measurements, in order to implement signed PCR policies for disk encryption.)
* | boot: move unified kernel PE section definitions into 'fundamental' codeLennart Poettering2022-08-021-0/+2
| | | | | | | | | | Le's share this code between userspace and uefispace. This is useful later when pre-measuring expected PCRs from userspace.
* | meson: fix broken boolean kwargEli Schwartz2022-07-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Everywhere else that `conf.get('ENABLE_*')` is used as a boolean key for something (for example in if statements) it always checks if == 1, but in this one case it neglects to do so. This is important because conf.get yields the same int that was stored, but if statements require booleans. So does executable's "install" kwarg, at least according to the documentation. In actuality, it accepts all types without sanity checking, then uses python "if bool(var)", so you can actually do `install: 'do not'` and that's treated identical to `true`. This is a type-checking bug which Meson will eventually fix. muon fails on the same code, today.
* | meson: strip various strings before converting them to integersEli Schwartz2022-07-301-3/+3
| | | | | | | | | | | | "9\n" is not intrinsically a number, although some tools might auto-strip strings before checking if they are a number. It's not guaranteed, anyway.
* | meson: use 0 for default uids, gids, and time epochYu Watanabe2022-07-301-4/+4
| | | | | | | | | | | | | | | | 0 UID and GID are special, and should not be acceptable for the settings. Hence, we can handle 0 as unset. Strictly speaking, time epoch with 0 is valid, but I guess no one use 0 as a valid value.
* | journalctl: allow statically linked buildJames Hilliard2022-07-291-19/+28
| | | | | | | | | | | | | | | | The journalctl tool may be needed on cross compilation hosts in order to run --update-catalog against a target rootfs. To avoid reliability issues caused by shared linking allow journalctl to be linked statically.
* | meson: fix math flags checkasavah2022-07-271-1/+1
| |
* | glibc: Remove #include <linux/fs.h> to resolve fsconfig_command/mount_attr ↵Rudi Heitbaum2022-07-241-1/+12
| | | | | | | | conflict with glibc 2.36
* | meson: refuse -ffinite-math-onlyYu Watanabe2022-07-211-0/+5
|/ | | | Closes #23610.
* Merge pull request #23881 from keszybz/kernel-install-strikes-yet-againYu Watanabe2022-07-131-1/+8
|\ | | | | kernel-install: fix invocation as installkernel, add tests, tweak documentation
| * test-kernel-install: add a simple test that kernel-install copies the filesZbigniew Jędrzejewski-Szmek2022-07-121-1/+8
| | | | | | | | | | | | | | | | | | | | I opted to tweaking kernel-install to allow overriding config (with $KERNEL_INSTALL_CONF_ROOT, $KERNEL_INSTALL_PLUGINS). An alternative would be to build a test environment in test/. We can still do that, but I think it's nice to have a simple test that is very quick and easy to debug. Invocation as installkernel is for #23681.
* | smack: Add DefaultSmackProcessLabel to user.conf and system.confŁukasz Stelmach2022-07-121-0/+5
| | | | | | | | | | | | | | | | | | | | | | DefaultSmackProcessLabel tells systemd what label to assign to its child process in case SmackProcessLabel is not set in the service file. By default, when DefaultSmackProcessLabel is not set child processes inherit label from systemd. If DefaultSmackProcessLabel is set to "/" (which is an invalid character for a SMACK label) the DEFAULT_SMACK_PROCESS_LABEL set during compilation is ignored and systemd act as if the option was unset.
* | Merge pull request #15205 from jlebon/pr/preset-all-firstbootZbigniew Jędrzejewski-Szmek2022-07-061-0/+3
|\ \ | | | | | | manager: optionally, do a full preset on first boot
| * | manager: optionally, do a full preset on first bootJonathan Lebon2022-05-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A compile time option is added to select behaviour: by default UNIT_FILE_PRESET_ENABLE_ONLY is still used, but the intent is to change to UNIT_FILE_PRESET_FULL at some point in the future. Distros that want to opt-in can use the config option to change the behaviour. (The option is just a boolean: it would be possible to make it multi-valued, and allow full, enable-only, disable-only, none. But so far nobody has asked for this, and it's better not to complicate things needlessly.) With the configuration option flipped, instead of only doing enablements, perform a full preset on first boot. The reason is that although `/etc/machine-id` might be missing, there may be other files provisioned in `/etc` (in fact, this use case is mentioned in `log_execution_mode`). Some of those possible files include enablement symlinks even if presets dictate it should be disabled. Such a seemingly contradictory situation occurs in {RHEL,Fedora} CoreOS, where we ship `/etc` as if `preset-all` were called. However, we want to allow users to disable default-enabled services via Ignition, which does this by creating preset dropins before switchroot. (For why we do `preset-all` at compose time, see: https://github.com/coreos/fedora-coreos-config/pull/77). For example, the composed FCOS image has a `enable zincati.service` preset and an enablement for that in `/etc`, while at boot time when we switch root, there may be a `disable zincati.service` preset with higher precedence. In that case, we want systemd to disable the service. This is essentially a revert of 304b3079a203. It seems like systemd *used* to do this, but it was changed to try to make the container workflow a bit faster. Resolves: https://github.com/coreos/fedora-coreos-tracker/issues/392 Co-authored-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
* | | meson: Assign tests a suite based on their directoryDaan De Meyer2022-07-041-1/+6
| | | | | | | | | | | | | | | | | | This can be used to run only a subset of tests, e.g. "meson test -C build --suite journal" to run only the journal unit tests.
* | | Turn mempool_enabled() into a weak symbolZbigniew Jędrzejewski-Szmek2022-06-291-6/+0
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | Before we had the following scheme: mempool_enabled() would check mempool_use_allowed, and libsystemd-shared would be linked with a .c file that provides mempool_use_allowed=true, while other things would linked with a different .c file with mempool_use_allowed=false. In the new scheme, mempool_enabled() itself is a weak symbol. If it's not found, we assume false. So it only needs to be provided for libsystemd-shared, where it can return false or true. test-set-disable-mempool is libshared, so it gets the symbol. But then we actually disable the mempool via envvar. mempool_enable() is called to check its return value directly.
* | meson: show default nspawn locale in summaryYu Watanabe2022-06-271-0/+1
| | | | | | | | Follow-up for a22f5186761a437d8845397bbbfeaf9a7d590ec2.
* | pkgconfig,rpm: expose vars for user-tmpfiles.d locationZbigniew Jędrzejewski-Szmek2022-06-211-0/+2
| | | | | | | | Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2098553.
* | meson: add build targets for libudev, libsystemd and pkg-configLuca Boccassi2022-06-121-0/+6
| | | | | | | | Mirror install tags with the same names and content
* | Merge pull request #23683 from keszybz/status-formatZbigniew Jędrzejewski-Szmek2022-06-101-0/+4
|\ \ | | | | | | Default to default-status-unit-format=name in developer mode
| * | meson: use status-unit-format-default=name in developer modeZbigniew Jędrzejewski-Szmek2022-06-101-0/+3
| | | | | | | | | | | | | | | | | | I think developers are particularly unlikely to find the descriptions useful, and would benefit from being able to copy&paste unit names. Let's make this choice automatically.
| * | meson: add status unit format to summaryZbigniew Jędrzejewski-Szmek2022-06-101-0/+1
| | |
* | | meson: add experimental bpf-gcc compiler supportJames Hilliard2022-06-101-42/+58
| | | | | | | | | | | | | | | Not fully working but should make it easier to clean up remaining issues.
* | | meson: Build with frame pointers in developer modeDaan De Meyer2022-06-091-0/+4
|/ / | | | | | | | | | | Profiling tools tend to work better when binaries and libraries are compiled with frame pointers as without them there's no easy and fast way to get the current stacktrace.
* | meson: Add nspawn-locale meson optionDaan De Meyer2022-06-091-0/+3
| | | | | | | | | | | | | | | | | | | | https://github.com/systemd/systemd/pull/23192 caused breakage in Arch Linux's build tooling. Let's give users an opt-out aside from reverting the patch. It's hardly any maintenance work on our side and gives users an easy way to revert the locale change if needed. Of course, by default we still pick C.UTF-8 if the option is not specified.
* | meson: adjust rootlibdir default for multiarchMike Gilbert2022-06-071-1/+6
| | | | | | | | | | | | | | | | | | On Debian, libdir is commonly something like 'lib/x86_64-linux-gnu'. The result of get_option('libdir') is normalized to a prefix-relative path by meson, so we can just append it to rootprefixdir. Fixes https://github.com/systemd/systemd/issues/23648.
* | meson: install libsystemd-shared into rootpkglibdirMichael Biebl2022-06-071-124/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce rootpkglibdir for installing libsystemd-{shared,core}.so. The benefit over using rootlibexecdir is that this path can be multiarch aware, i.e. this path can be architecture qualified. This is something we'd like to make use of in Debian/Ubuntu to make libsystemd-shared co-installable, e.g. for i386 the path would be /usr/lib/i386-linux-gnu/systemd/libsystemd-shared-*.so and for amd64 /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-*.so. This will allow for example to install and run systemd-boot/i386 on an amd64 host. It also simplifies/enables cross-building/bootstrapping. For more infos about Multi-Arch see https://wiki.debian.org/Multiarch. See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990547
* | meson: Switch default-locale default to C.UTF-8Daan De Meyer2022-06-041-9/+0
| | | | | | | | | | | | | | We're already using C.UTF-8 as the default locale for nspawn. Let's make the same change for the default-locale option instead of deciding what to use based on the locale used by the host system. Users can still override the locale using the default-locale option if needed.
* | Merge pull request #23297 from medhefgo/trivial-auto-var-initZbigniew Jędrzejewski-Szmek2022-06-031-0/+7
|\ \ | | | | | | meson: Compile with -ftrivial-auto-var-init
| * | meson: Compile with -ftrivial-auto-var-init=zero in release modeJan Janssen2022-05-131-0/+7
| | |
* | | test: add dlopen test for pam_systemd_homeYu Watanabe2022-06-031-1/+9
| | |
* | | sd-bus: drop D-Bus version 2 format supportYu Watanabe2022-06-011-1/+0
| | | | | | | | | | | | It seems the format is used only by kdbus.