summaryrefslogtreecommitdiffstats
path: root/meson.build (follow)
Commit message (Collapse)AuthorAgeFilesLines
* meson: first try dependency(), then fallback to find_library()Yu Watanabe2023-06-291-14/+23
| | | | | | | | This also drops the fallback for libacl, libcap, libcrypt, and libgcrypt, as recent Ubuntu (at least, 20.04 LTS and newer) and Debian (at least, buster and newer) have relevant .pc files. Fixes #28161.
* Merge pull request #27830 from 1awesomeJ/initrdLennart Poettering2023-06-281-0/+10
|\ | | | | PID1: Detect battery level in initrd and if low refuse continuing to …
| * PID1: detect battery level in initrd and if low refuse continuing to boot, ↵OMOJOLA JOSHUA2023-06-281-0/+10
| | | | | | | | print message and shut down.
* | pwquality: remove old built-in cracklib dictionary workaroundDmitry V. Levin2023-06-281-1/+3
| | | | | | | | | | The first version of libpwquality with the required change was 1.4.1 released in 2019.
* | meson: drop doubled empty lineYu Watanabe2023-06-281-2/+0
|/
* Merge pull request #27843 from yuwata/usleep_safeLennart Poettering2023-06-231-1/+1
|\ | | | | time-util: introduce usleep_safe()
| * meson: sort typesYu Watanabe2023-06-221-1/+1
| |
* | meson: fix test dependencyYu Watanabe2023-06-221-2/+2
| | | | | | | | Follow-up for daf4e78e4841a527ba62da48fd00e2e6b8805193.
* | meson: shorten code a bitYu Watanabe2023-06-221-6/+2
| |
* | meson: drop wrong and redundant assignmentYu Watanabe2023-06-221-3/+0
| | | | | | | | Follow-up for b62ee354dd68349812f0526622c4e164b4a89f5f.
* | meson: also build symbol tests for static-libsystemd=no-picYu Watanabe2023-06-221-6/+6
| |
* | meson: add dependency for udev runner to testYu Watanabe2023-06-221-3/+3
|/
* meson: bump required version to 0.60.0Yu Watanabe2023-06-161-1/+1
| | | | To suppress warning about install_tag argument.
* meson: bump required version to 0.59.0Yu Watanabe2023-06-161-8/+4
| | | | fs.stemp() and fs.name() can take File object since 0.59.0.
* meson: drop redundant spacesYu Watanabe2023-06-161-1/+1
|
* Merge pull request #28038 from mrc0mmand/cleanupsLuca Boccassi2023-06-151-1/+1
|\ | | | | A couple of cleanups
| * activate: rename to socket-activateFrantisek Sumsal2023-06-141-1/+1
| | | | | | | | | | To make the naming consistent with the rest of the utils, i.e. binary name minus the systemd- prefix.
* | meson: Use fs module in more placesJan Janssen2023-06-141-1/+1
|/
* Merge pull request #26728 from keszybz/meson-updateLennart Poettering2023-06-131-9/+9
|\ | | | | Meson version update
| * meson: bump required version to 0.56.0Yu Watanabe2023-06-121-1/+1
| |
| * meson: bump required version to 0.55.0Yu Watanabe2023-06-121-3/+3
| |
| * meson: bump required version to 0.54.0Yu Watanabe2023-06-121-6/+6
| |
| * meson: define _GNU_SOURCE as '1'Zbigniew Jędrzejewski-Szmek2023-06-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the generated config.h file thusly: -#define _GNU_SOURCE +#define _GNU_SOURCE 1 Canonically, _GNU_SOURCE is just defined, without any value, but g++ defines _GNU_SOURCE implicitly [1]. This causes a warning about a redefinition during complilation of C++ programs after '-include config.h'. Our config attempts to inject this (and a bunch of other arguments) into all compliations. But before meson 0.54, flags for dependencies were not propagated correctly (*), and the C++ compilation was done without various flags (**). Once that was fixed, we started getting a warning. [1] http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.predefined (*) Actually, the changelog doesn't say anything. But it mentions various work related to dependency propagation, and apparently this changes as a side effect. (**) -fno-strict-aliasing -fstrict-flex-arrays=1 -fvisibility=hidden -fno-omit-frame-pointer -include config.h This could be solved in various ways, but it'd require either making the compilation command line longer, which we want to avoid for readability of the build logs, or splitting the logic to define the args for C++ progs separately, which would make our meson.build files more complicated. Changing the definition to '1' also solves the issue (because apparently now we match the implicit definition), and shouldn't have other effects. I checked compilation with gcc and clang. Maybe on other systems this could cause problems. We can revisit if people report issues.
* | Merge pull request #27846 from keszybz/link-mode-generationLennart Poettering2023-06-131-0/+2
|\ \ | | | | | | Autogenerate list of link modes
| * | man: generate link mode list dynamicallyZbigniew Jędrzejewski-Szmek2023-05-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The entries are sorted by speed. Some fields are left empty when there is no clear value to use. The table is much longer now, but I think it's better to document the allowed values, even if some are not terribly useful. Fixes #26256.
* | | meson: add systemd.pc and udev.pc to 'devel' target/tagLuca Boccassi2023-06-121-2/+2
| | | | | | | | | | | | | | | Same as the other pkg-config files, it is useful to install these in a specific target that doesn't require compiling anything
* | | kernel-install: rewrite in CYu Watanabe2023-06-051-12/+15
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | This is mostly a one-to-one translation of kernel-install.sh, except for the followings: - BOOT_ROOT is searched with find_{esp,xbootldr}_and_warn(). - entry token is searched with boot_entry_token_ensure(). - inspect command verboses more information, e.g. found plugins, environment variables explicitly passed to plugins, arguments passed to plugins. - paths specified in $KERNEL_INSTALL_PLUGINS must be absolute. - LC_COLLATE is set to C.UTF-8 (or any specified on build time). By writing kernel-install C, we can share the code used by bootctl or so, and can introduce --root and/or --image options later.
* | meson: Add missing tss2-tcti-device dependencyDaan De Meyer2023-06-021-1/+1
| |
* | Merge pull request #27840 from mrc0mmand/gcc-13Luca Boccassi2023-05-311-0/+1
|\ \ | | | | | | ci: add gcc-13, drop gcc-12
| * | meson: use -Werror=strict-flex-arraysFrantisek Sumsal2023-05-301-0/+1
| | |
* | | tmpfiles: use same credstore perms everywhereLennart Poettering2023-05-311-0/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In b6033b706028a64e9affb79050ced1ad9a4f5b43 support was added to create {/etc|/run}/credstore{|.encrypted} via tmpfiles.d with perms 0000. These perms are so restrictive that not even root can access them unless it has CAP_DAC_OVERRIDE capability. This is creates the dirs at boot time In 24039e1207c169b18adf5234ad300ea3ba1b671e support was added to create /etc/credstore with perm 0700 from meson.build at build time. This patch makes unifies the two parts: 1. creates both /etc/credstore *and* /etc/credstore.encrypted in both places (the build system still won't create them in /run/, since that's pointless since not shipped, and the runtime won't create the dirs below /usr/lib/, since that's not generically writable anyway). 2. Both at runtime and at build time we'll create the dirs with mode 0700. This is easier for packaging tools to handle since they generally react pretty negatively on dirs they can't enumerate.
* | bpf: test with GCC BPF compiler on opensuseJames Hilliard2023-05-301-0/+1
| |
* | bpf: stabilize GCC BPF supportJames Hilliard2023-05-301-2/+1
|/ | | | | Now that we have a GCC release which should support our bpf programs lets set the minimum version and stabilize it.
* meson: Create credstore directoriesDaan De Meyer2023-05-251-0/+10
| | | | | | | Let's make the creds directories a bit more discoverable and make it easier for users to use them. This also allows us to fix the mode to 0700 for /etc instead of the usual 0755 which is what probably would happen if users had to create this directory themselves.
* meson: rename "dist-check" suite to "dist"Zbigniew Jędrzejewski-Szmek2023-05-181-5/+5
| | | | *Now* one of those tests is the longest, let's make them a bit shorter.
* meson: rename "fuzzers" suite to "fuzz"Zbigniew Jędrzejewski-Szmek2023-05-181-1/+1
| | | | | Fuzz tests have all the longest names, so by making this name shorter, we save three columns of screen real estate.
* portable, meson: allow statically linked buildRobert Scheck2023-05-151-2/+10
| | | | | | | | | | Build option "link-portabled-shared" to build a statically linked systemd-portabled by using -Dlink-portabled-shared=false on systems with full systemd stack except systemd-portabled, such as CentOS/RHEL 9.
* dirent: conditionalize dirent assert based on dirent64 existenceSam James2023-05-101-0/+2
| | | | | | | | | | >=musl-1.2.4 doesn't define dirent64 and its LFS friends as its "native" functions are already LFS-aware. Check for dirent64 in meson.build and only assert if it exists. Bug: https://bugs.gentoo.org/905900 Closes: https://github.com/systemd/systemd/pull/25809
* test: rework how udev-test is invokedZbigniew Jędrzejewski-Szmek2023-05-091-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As part of the build, we would populate build/test/sys/ using sys-script.py, and then udev-test.p[ly] would create a tmpfs instance on build/test/tmpfs and copy the sys tree to build/test/tmpfs/sys. Also, we had udev-test.p[ly] which called test-udev. test-udev was marked as a manual test and installed, but neither udev-test.p[ly] or sys-script.py were. test-udev is renamed to udev-rule-runner, which reduces confusion and frees up the test-udev name. udev-test.py is renamed to test-udev.py. All three files are now installed. test-udev.py is modified to internally call sys-script.py to set up the sys tree. Copying and creating it from scratch should take the same amount of time. We avoid having a magic directory, everything is now done underneath a temporary directory. test-udev.py is now a normal installed test, and run-unit-tests.py will pick it up. When test-udev.py is invoked from meson, the path to udev-rule-runner is passed via envvar; when it is invoked via run-unit-tests.py or directly, it looks for udev-rule-runner in a relative path. The goal of this whole change is to let Debian drop the 'udev' test. It called sys-script.py and udev-test.pl from the source directory and had to recreate a bunch of the logic. Now test-udev.py will now be called via 'upstream'.
* test: drop udev-test.plZbigniew Jędrzejewski-Szmek2023-05-091-1/+0
|
* meson: fix indentationZbigniew Jędrzejewski-Szmek2023-05-091-5/+5
|
* meson: add check-includes test to the test suiteZbigniew Jędrzejewski-Szmek2023-05-091-4/+13
| | | | Let's just call it always. It is quite fast (meson says 0.12 s).
* meson: include .cc files in tags tooZbigniew Jędrzejewski-Szmek2023-05-091-1/+1
| | | | | We only have one, but it seems reasonable to not exclude it. Result tested with emacs.
* test/60-ukify: override stub location in testsZbigniew Jędrzejewski-Szmek2023-05-051-2/+5
| | | | Without this, build would fail if the stub is not available in /usr/lib/.
* test-kernel-install: test 60-ukify.install and 90-uki-copy.installZbigniew Jędrzejewski-Szmek2023-05-051-10/+15
| | | | | | We install a kernel with layout=uki and uki_generator=ukify, and test that a UKI gets installed in the expected place. The two plugins cooperate, so it's easiest to test them together.
* meson: allow building .standalone on demandZbigniew Jędrzejewski-Szmek2023-05-031-60/+65
| | | | | | | | | | | | | We can always build the standalone version whenever we build the normal version (the dependencies are the same). In most builds standalone binaries would be disabled. But it is occasionally useful to have them for testing, so move the conditional to install:, so the binaries can be build by giving the explicit target name. The default of 'build_by_default' for executable() is sadly true (since meson 0.38.0), so need to specify build_by_default: too. Also add systemd-shutdown.standalone to public_programs for additional testing.
* meson: avoid building executables that won't be installedZbigniew Jędrzejewski-Szmek2023-05-031-5/+9
| | | | | | | | | | | When executable() or custom_target() has install: that is conditional as is false (i.e. not install:true), it won't be built by default. (build_by_default: defaults to install:). But if that program is added to public_programs, it will be build by default because it is pulled in by the test, effectively defeating the disablement. While at it, make 'ukify' follow the same pattern as 'kernel-install'. They will be used later together.
* meson: Search for find programDaan De Meyer2023-05-011-0/+1
| | | | | find is required by a few of the unit tests so let's make sure its available when configuring the build.
* meson: Search for diff programDaan De Meyer2023-05-011-0/+1
| | | | | diff is required by a few of the unit tests so let's make sure its available when configuring the build.
* meson: move bpf hookup into main meson build fileLennart Poettering2023-04-241-0/+112
| | | | This way we can use it in systemd-userdbd later on, too.