summaryrefslogtreecommitdiffstats
path: root/meson.build (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add proper dependencies to ukify targetDaan De Meyer2024-11-151-1/+10
| | | | | Also remove the systemd-measure dependency from the mkosi target as mkosi doesn't invoke systemd-measure itself.
* Introduce systemd-keyutil to do various key/certificate operations (#35095)Lennart Poettering2024-11-111-1/+2
|\ | | | | | | | | | | | | Let's gather generic key/certificate operations in a new tool systemd-keyutil instead of spreading them across various special purpose tools. Fixes #35087
| * Introduce systemd-keyutil to do various key/certificate operationsDaan De Meyer2024-11-081-1/+2
| | | | | | | | | | | | | | | | Let's gather generic key/certificate operations in a new tool systemd-keyutil instead of spreading them across various special purpose tools. Fixes #35087
* | Rename src/partition to src/repartZbigniew Jędrzejewski-Szmek2024-11-111-1/+1
| |
* | Move growfs+makefs to src/growfs/Zbigniew Jędrzejewski-Szmek2024-11-101-0/+1
| | | | | | | | | | Those two programs are used together and it makes sense to keep them together. makefs is smaller, so name the directory after growfs.
* | meson.build: add a few features to summaryMike Yuan2024-11-091-0/+4
|/
* Rename src/boot/efi to just src/bootZbigniew Jędrzejewski-Szmek2024-11-071-1/+1
| | | | | | | | | | | | | | | I very much dislike the approach in which we were mixing Linux and UEFI C code in the same subdirectory. No code was shared between two environments. This layout was created in e7dd673d1e0acfe5420599588c559fd85a3a9e8f, with the justification of "being more consistent with the rest of systemd", but I don't see how it's supposed to be so. Originally, when the C code was just a single bootctl.c file, this wasn't so bad. But over time the userspace code grew quite a bit. With the moves done in previuos commits, the intermediate subdirectory is now empty except for the efi/ subdir, and this additional subdirectory level doesn't have a good justification. The components is called "systemd-boot", not "systemd-efi", and we can remove one level of indentation.
* Move systemd-sbsign to its own source subdirectoryZbigniew Jędrzejewski-Szmek2024-11-071-1/+1
| | | | | It's already two files, and I expect that more will come. It's nicer to give its own subdirectory to maintain consistent structure.
* Move systemd-measure to its own source subdirectoryZbigniew Jędrzejewski-Szmek2024-11-071-0/+1
| | | | | | We have other subdirectories with just a single C file. And I expect that systemd-measure will only grow over time, adding new functionality. It's nicer to give its own subdirectory to maintain consistent structure.
* Move bless-boot components to their own source subdirectoryZbigniew Jędrzejewski-Szmek2024-11-071-0/+1
|
* Move bootctl to its own source subdirectoryZbigniew Jędrzejewski-Szmek2024-11-071-0/+1
| | | | | It's been split into a bunch of files and deserves its own subdirectory similarly to systemctl.
* meson: update version numbers for 257~rc1v257-rc1Luca Boccassi2024-11-061-2/+2
|
* meson: add separate option for sysupdated, disable in release buildsZbigniew Jędrzejewski-Szmek2024-10-311-0/+15
| | | | | | This commit introduces a build-time option to enable/disable sysupdated separately from sysupdate. 'auto' translated to enabled by default in developer builds.
* meson: add loongarch64's definition to cpu_arch_definesZhou Qiankang2024-10-281-7/+8
| | | | | | | | The default definition to add is `-D__loongarch64__`, which is not searched in [bpf_tracing.h](https://github.com/libbpf/libbpf/blob/09b9e83102eb8ab9e540d36b4559c55f3bcdb95d/src/bpf_tracing.h#L68) This may avoid `error: Must specify a BPF target arch via __TARGET_ARCH_xxx` in loongarch64 Signed-off-by: Zhou Qiankang <wszqkzqk@qq.com>
* macro: Add DISABLE_WARNING_STRINGOP_OVERREADanonymix0072024-10-111-0/+1
| | | | While at it, also add -Wunknown-warning-option to basic_disabled_warnings to fix compilation with clang
* meson: sort includesLennart Poettering2024-10-111-2/+2
|
* path-lookup: move from basic/ to libsystemd/Mike Yuan2024-10-061-0/+1
| | | | | So that sd_path_lookup() can be utilized to replace duplicate functions.
* core: load IPE policy on bootLuca Boccassi2024-10-021-0/+1
| | | | | | | | | | | | | IPE is a new LSM being introduced in 6.12. Like IMA, it works based on a policy file that has to be loaded at boot, the earlier the better. So like IMA, if such a policy is present, load it and activate it. If there are any .p7b files in /etc/ipe/, load them as policies. The files have to be inline signed in DER format as per IPE documentation. For more information on the details of IPE: https://microsoft.github.io/ipe/
* bpf: fix cross build failure on DebianHelmut Grohne2024-10-011-8/+15
| | | | | | | | | | | | | | | | For compiling bpf code, the system include directory needs to be constructed. On Debian-like systems, this requires passing a multiarch directory. Since clang's -dump-machine prints something other that the multiarch triplet, gcc was interrogated earlier, but that also yields a wrong result for cross compilation and was thus skipped resulting in clang not finding asm/types.h. Rather than, -dump-machine we should ask for -print-multiarch (which rarely differs). Whenever gcc is in use, this is right (even for cross building). Since clang does not support -print-multiarch and its -dump-machine never matches Debian's multiarch, we resort to asking gcc when building natively. For cross builds using clang, we are out of luck.
* cryptsetup: use the new crypt_token_set_external_path() API if availableLennart Poettering2024-09-101-1/+2
| | | | | | | | | Let's make use of libcryptsetup's new crypt_token_set_external_path() API in place of the interposition stuff we have been doing before. Let's kill it entirely, given that this was a developer feature only anyway (and guarded by an appropriate ifdef). Fixes: #30098
* shell: define three system credentials we can propagate into shell prompts ↵Lennart Poettering2024-09-091-1/+11
| | | | and welcome messages
* missing_socket: drop unnecessary definitionsYu Watanabe2024-09-091-1/+0
| | | | | Now, we have copy of vm_sockets.h, hence these definitions are not necessary anymore.
* meson: search for 'bpf-unknown-none' tooSam James2024-08-241-0/+1
| | | | | | We currently search for 'bpf-gcc' and 'bpf-none-gcc'. Gentoo's sys-devel/bpf-toolchain package uses 'bpf-unknown-none-gcc', as does Fedora's cross-binutils. Search for this name too.
* sysupdate: Implement systemd-sysupdated dbus serviceAdrian Vovk2024-08-211-0/+1
| | | | | Co-authored-by: Tom Coldrick <thomas.coldrick@codethink.co.uk> Co-authored-by: Abderrahim Kitouni <abderrahim.kitouni@codethink.co.uk>
* meson: enable -Wunterminated-string-initializationYu Watanabe2024-08-071-0/+1
| | | | | With af1a6db58fde8f64edcf7d27e1f3b636c999934c, now we can build with the option.
* coredump: generate properly symbolized stacktrace for containerized processesMichal Sekletar2024-08-061-0/+4
|
* meson: Use -fstrict-flex-arrays=3Daan De Meyer2024-08-041-1/+1
| | | | | | Let's explicitly pass the value to -fstrict-flex-arrays. This does not change behavior but it does (selfishly) make my error not bug out with an error saying -fstrict-flex-arrays does not exist.
* Make vcs-tag do something useful for non-developer mode as wellDaan De Meyer2024-07-221-4/+1
| | | | | | | | | | | | When building packages of arbitrary commits of systemd-stable, distributors might want to include a git sha of the exact commit they're on. Let's extend vcs-tag a little to make this possible. If we're on a commit matching a tag, don't generate a git sha at all. If we're not on a commit matching a tag, generate a vcs tag as usually. However, if we're not in developer mode, don't append a '^' if the tree is dirty to accomodate package builds applying various patches to the tree which shouldn't be considered as "dirty" edits.
* meson: fix missing failure if bpf-framework was enabledDominique Martinet2024-07-201-0/+3
| | | | | | | | | | | | If building with clang and clang does not support bpf, then enabling -Dbpf-framework=enabled would silently drop the feature (even printing bpf-framework: enabled in the meson build recap, and no message anywhere that'd hint at the failure!) This is unexpected, so add check to fail hard in this case. All other code paths (gcc, missing bpftool) properly check for the option, but it is not as easy for a custom command so check explicitly
* mkosi: Streamline running the integration tests without building systemdDaan De Meyer2024-07-181-0/+1
| | | | | | | | | | Let's document in detail how to build the integration test image and run the integration tests without building systemd. To streamline the process, we stop automatically using binaries from build/ when invoking mkosi directly and don't automatically use a tools tree anymore if systemd on the host is too old. Instead, we document these options in HACKING.md and change the mkosi meson target to automatically use the current build directory as an extra binary search path for mkosi.
* sd-varlink: make our internal Varlink API public as sd-varlink.[ch]Lennart Poettering2024-07-161-1/+2
| | | | | | | | | | It's time. sd-json was already done earlier in this cycle, let's now make sd-varlink public too. This is mostly just a search/replace job of epical proportions. I left some functions internal (mostly IDL handling), and I turned some static inline calls into regular calls.
* Merge pull request #33599 from keszybz/link-executor-staticallyZbigniew Jędrzejewski-Szmek2024-07-081-2/+2
|\ | | | | Link executor statically
| * meson: rename libbasic to libbasic_staticZbigniew Jędrzejewski-Szmek2024-07-031-2/+2
| | | | | | | | | | | | | | Our variables for internal libraries are named 'libfoo' for the shared lib variant, and 'libfoo_static' for the static lib variant. The only exception was libbasic, because we didn't have a shared variant for it. But let's rename it for consitency. This makes the build config easier to understand.
* | meson: Fix various versionsDaan De Meyer2024-07-041-9/+10
|/ | | | | | | | | Follow up for 8b3b01c4b7e0fde39b4be354990ee68f5e612c52 We switch to PROJECT_VERSION instead of PROJECT_VERSION_FULL where we report our version and which is likely being parsed to avoid breaking compat. If we didn't, the output would change from systemd 255 to systemd 255.1 which could break various tools.
* meson: Define __TARGET_ARCH macros required by bpfDaan De Meyer2024-07-031-7/+7
| | | | | | | | | These are required by the bpf_tracing.h header in libbpf, see https://github.com/libbpf/libbpf/blob/master/src/bpf_tracing.h. bpf_tracing.h does have a few fallbacks in case __TARGET_ARCH_XXX is not defined but recommends using the __TARGET_ARCH macros instead so let's do that.
* Drop support for nscdZbigniew Jędrzejewski-Szmek2024-06-281-2/+0
| | | | | | | | | | | | | nscd is known to be racy [1] and it was already deprecated and later dropped in Fedora a while back [1,2]. We don't need to support obsolete stuff in systemd, and the cache in systemd-resolved provides a better solution anyway. We announced the plan to drop nscd in d44934f3785ad9ca4aab757beb80a9b11ba4bc04. [1] https://fedoraproject.org/wiki/Changes/DeprecateNSCD [2] https://fedoraproject.org/wiki/Changes/RemoveNSCD The option is kept as a stub without any effect to make the transition easier.
* meson: Drop genkey targetDaan De Meyer2024-06-281-11/+1
| | | | | | | | | | | | | | | | | | | In mkosi.images/system/mkosi.conf, we configure the certificate as an extra tree so it's available inside the image. However, we pick up the certificate from the top level repository directory and not from the build directory where it is generated by the genkey meson target. We currently have no way to access the build directory that mkosi was invoked from when parsing the configuration file. Thus we have no way to specify the correct location to the certificate when it's located in the build directory. For now, let's look for the key and certificate in the top level repository root directory and drop the genkey target. We don't have to change the Github Actions CI because it already runs genkey manually before the image build (which is something we forgot to remove when introducing the genkey target and is the reason this didn't cause issues before).
* core/exec-invoke: use sched_setattr instead of sched_setschedulerFlorian Schmaus2024-06-261-0/+3
| | | | | | | | | | | | | | | | The kernel's sched_setattr interface allows for more control over a processes scheduling attributes as the previously used sched_setscheduler interface. Using sched_setattr is also the prerequisite for support of utilization clamping (UCLAMP [1], see #26705) and allows to set sched_runtime. The latter, sched_runtime, will probably become a relevant scheduling parameter of the EEVDF scheduler [2, 3], and therefore will not only apply to processes scheduled via SCHED_DEADLINE, but also for processes scheduled via SCHED_OTHER/SCHED_BATCH (i.e., most processes). 1: https://docs.kernel.org/next/scheduler/sched-util-clamp.html 2: https://lwn.net/Articles/969062/ 3: https://lwn.net/ml/linux-kernel/20240405110010.934104715@infradead.org/
* meson: bpf: propagate 'sysroot' for cross compilationJohannes Schneider2024-06-211-0/+1
| | | | | | | | | During cross-compilation of systemd, the compiler used to build the bpf's needs to be pointed at the correct include searchpath. Which can be done by passing the corresponding directory in through the cflags; for example in yocto/bitbake this would work: CFLAGS += "--sysroot=${STAGING_DIR_TARGET}" Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com>
* various: move const ptr indicator to return valueZbigniew Jędrzejewski-Szmek2024-06-191-1/+1
|
* libsystemd: turn json.[ch] into a public APILennart Poettering2024-06-121-0/+2
| | | | | | | | | | | | | | | This is preparation for making our Varlink API a public API. Since our Varlink API is built on top of our JSON API we need to make that public first (it's a nice API, but JSON APIs there are already enough, this is purely about the Varlink angle). I made most of the json.h APIs public, and just placed them in sd-json.h. Sometimes I wasn't so sure however, since the underlying data structures would have to be made public too. If in doubt I didn#t risk it, and moved the relevant API to src/libsystemd/sd-json/json-util.h instead (without any sd_* symbol prefixes). This is mostly a giant search/replace patch.
* repart: Use crypt_reencrypt_run() if availableDaan De Meyer2024-06-121-0/+1
| | | | | crypt_reencrypt() is deprecated, so let's look for and prefer crypt_reencrypt_run() if it is available.
* meson: Pass -Wno-deprecated-declarations when detecting libcryptsetup functionsDaan De Meyer2024-06-031-0/+3
| | | | Otherwise we fail to detect crypt_reencrypt() if -Werror is used.
* meson: add static libs to libudev/libsystemd target aliasesLuca Boccassi2024-06-011-4/+12
| | | | | If static libraries are enabled, then group them in the build target together with the shared libraries, to match the install tags.
* meson: add alias targets to group nss and pam modulesLuca Boccassi2024-05-311-0/+15
| | | | | | Add aliases grouping these modules, so that they can be built without knowing the SONAME version in advance. Match the install tag names.
* meson: fix commentZbigniew Jędrzejewski-Szmek2024-05-311-1/+1
|
* Merge pull request #33008 from fbuihuu/optionally-link-ssh-dropinsZbigniew Jędrzejewski-Szmek2024-05-281-0/+2
|\ | | | | Optionally link ssh dropins
| * meson: don't put a symlink pointing to '20-systemd-userdb.conf' in /etc in ↵Franck Bui2024-05-271-0/+1
| | | | | | | | | | | | | | all cases It's only needed on distros where sshd doesn't support drop-ins in /usr, which is not the case on SUSE.
| * meson: don't put a symlink pointing to '20-systemd-ssh-proxy.conf' in /etc ↵Franck Bui2024-05-271-0/+1
| | | | | | | | | | | | | | | | in all cases On distros like SUSE where ssh config dropins in /usr are supported, there's no need for a symlink in /etc/ssh/ssh_config.d/ that points to the dropin installed somewhere in /usr (that is not reachable by ssh).
* | meson: Run genkey command with --forceDaan De Meyer2024-05-271-1/+1
| | | | | | | | | | Sometimes meson decides to rerun the command even if the files already exist. Let's run with --force so we don't fail if that's the case.