summaryrefslogtreecommitdiff
path: root/meson.build
Commit message (Collapse)AuthorAge
* meson: drop 'name' argument in cc.has_argument() (#8823)Yu Watanabe2018-08-24
| | | | | | | | | | | | | | | | This fixes the following warning with clang and meson-0.46.0, ``` WARNING: Passed invalid keyword argument "name". WARNING: This will become a hard error in the future. WARNING: Passed invalid keyword argument "name". WARNING: This will become a hard error in the future. Compiler for C supports arguments -Wno-typedef-redefinition: YES WARNING: Passed invalid keyword argument "name". WARNING: This will become a hard error in the future. WARNING: Passed invalid keyword argument "name". WARNING: This will become a hard error in the future. Compiler for C supports arguments -Wno-gnu-variable-sized-type-not-at-end: YES ```
* resolvectl: rename systemd-resolve to resolvectlYu Watanabe2018-08-24
| | | | | For the compatibility, `systemd-resolve` will be created as a symbolic link to `resolvectl`.
* tree-wide: drop license boilerplateZbigniew Jędrzejewski-Szmek2018-08-24
| | | | | | | | | | Files which are installed as-is (any .service and other unit files, .conf files, .policy files, etc), are left as is. My assumption is that SPDX identifiers are not yet that well known, so it's better to retain the extended header to avoid any doubt. I also kept any copyright lines. We can probably remove them, but it'd nice to obtain explicit acks from all involved authors before doing that.
* units: use `systemctl exit` to kill the user manager (#8648)Filipe Brandenburger2018-08-24
| | | | | | | | | | | | Use `systemctl --user --force exit` to implement the systemd-exit user service. This removes our dependence on an external `kill` binary and the concerns about whether they recognize SIGRTMIN+n by name or what their interpretation of SIGRTMIN is. Tested: `systemctl --user start systemd-exit.service` kills the `systemd --user` instance for my user.
* doc: merge docs/ dir → doc/Lennart Poettering2018-08-24
| | | | | It's weird having two subdirs for documentation, let's unify this in one.
* tests: skip udev-test when perl is not installedZbigniew Jędrzejewski-Szmek2018-08-24
|
* time-sync-wait: add service (#8494)Peter A. Bigot2018-08-24
| | | | | This one-shot service waits until the kernel time has been set to synchronized.
* meson.build: Fix wron mask ending and some missing trailing whitespaces on ↵Sven Eden2018-08-24
| | | | mask blocks.
* Version 238.1 ReleaseSven Eden2018-06-29
|
* Prep v238: Make a real distinction between 'halt' and 'poweroff'.Sven Eden2018-06-29
|
* meson: drop 'name' argument in cc.has_argument() (#8878)Yu Watanabe2018-06-28
| | | | (cherry picked from commit b0903bb585d2158f78a4cf603fde4aed5474e2b9)
* meson: drop 'name' argument in cc.has_argument() (#8823)Yu Watanabe2018-06-28
| | | | | | | | | | | | | | | | | | This fixes the following warning with clang and meson-0.46.0, ``` WARNING: Passed invalid keyword argument "name". WARNING: This will become a hard error in the future. WARNING: Passed invalid keyword argument "name". WARNING: This will become a hard error in the future. Compiler for C supports arguments -Wno-typedef-redefinition: YES WARNING: Passed invalid keyword argument "name". WARNING: This will become a hard error in the future. WARNING: Passed invalid keyword argument "name". WARNING: This will become a hard error in the future. Compiler for C supports arguments -Wno-gnu-variable-sized-type-not-at-end: YES ``` (cherry picked from commit 8ac42236b09d2f21f962bf72fcbeee24502f959f)
* meson: avoid warning about comparison of bool and stringZbigniew Jędrzejewski-Szmek2018-06-28
| | | | | | | meson.build:2907: WARNING: Trying to compare values of different types (bool, str) using ==. The result of this is undefined and will become a hard error in a future Meson release. (cherry picked from commit af4d7860c4e757f34a02ca73a0b14c73c18f8b30)
* Prep v238: Make a real distinction between 'halt' and 'poweroff'.Sven Eden2018-06-12
|
* meson.build: remove unnecessary `ln --relative` checkKylie McClain2018-06-08
| | | | | | | `ln --relative` is used by tools/meson-make-symlink.sh, which is never once ran during the build process for elogind. additionally, it incurrs a dependency on GNU coreutils (or any other `ln` that has the non-standard `--relative` extension), so there's no real need to check for it.
* Prep v238: Apply some upstream fixes to the sections elogind pendants.Sven Eden2018-06-05
|
* Prep v238: Updated root build files (2/5)Sven Eden2018-06-04
|
* meson: bump so revision and systemd version in preparation for v238Zbigniew Jędrzejewski-Szmek2018-05-30
|
* meson: use dashes in colour namesZbigniew Jędrzejewski-Szmek2018-05-30
|
* Add build-time option to change the color of the "OK" status textAlexander F Rødseth2018-05-30
|
* Remove /sbin from paths if split-bin is false (#8324)Zbigniew Jędrzejewski-Szmek2018-05-30
| | | | Follow-up for 157baa87e4.
* meson: support both separate and merged sbin-bin directoriesZbigniew Jędrzejewski-Szmek2018-05-30
| | | | | | | | | | | | | | | Follow-up for ba7f4ae6178309dc937e10cf7dce0eca9dafb8de. By default, we detect if the real root has a separate /usr/sbin directory, but this can be overrides with -Dsplit-bin=true|false. The check assumes that /usr/sbin is split if it is not a symlink, so it'll return a false negative with some more complicated setups. But that's OK, in those cases this should be configured explicitly. This will copy the structure of the directories in the root file system to $DESTDIR. If a directory is a directory in $DESTDIR but a symlink in the root file system, this script will fail. This means that it's not possible to reuse a $DESTDIR from between ba7f4ae61 and this patch.
* meson: autodetect split-usrZbigniew Jędrzejewski-Szmek2018-05-30
| | | | | Also move the status from "features" to the paths section. This is more of an anti-feature.
* meson: install compat symlinks for systemctl and systemd (#8300)Zbigniew Jędrzejewski-Szmek2018-05-30
| | | | | v2: - init is a symlink to systemd, not systemctl!
* doc: add a new doc/ directory, and move two markdown docs into themLennart Poettering2018-05-30
| | | | | | | | | I figure sooneror later we'll have more of these docs, hence let's give them a clean place to be. This leaves NEWS and README/README.md as well as the LICENSE texts in the root directory of the project since that appears to be customary for Free Software projects.
* tree-wide: use reallocarray instead of our home-grown realloc_multiply (#8279)Zbigniew Jędrzejewski-Szmek2018-05-30
| | | | | | | | There isn't much difference, but in general we prefer to use the standard functions. glibc provides reallocarray since version 2.26. I moved explicit_bzero is configure test to the bottom, so that the two stdlib functions are at the bottom.
* xattr-util: use crtime/btime if statx() is available for implementation of ↵Lennart Poettering2018-05-30
| | | | | | | | | | | | | | fd_setcrtime() and friends The Linux kernel exposes the birth time now for files through statx() hence make use of it where available. We keep the xattr logic in place for this however, since only a subset of file systems on Linux currently expose the birth time. NFS and tmpfs for example do not support it. OTOH there are other file systems that do support the birth time but might not support xattrs (smb…), hence make the best of the two, in particular in order to deal with journal files copied between file system types and to maintain compatibility with older file systems that are updated to newer version of the file system.
* meson: apply defaults if /etc/login.defs doesn't existCaio Marcelo de Oliveira Filho2018-05-30
| | | | | | | | | Apply defaults for system_{uid,gid}_max even if the /etc/login.defs file doesn't exist (e.g. in Clear Linux with no changes). awk returns an empty string in case the file doesn't exist, causing meson to fail in to_int(). So set the default if output is empty. This makes the BEGIN{} blocks unnecessary, so remove them.
* meson: use multiline string syntax (#8214)Caio Marcelo de Oliveira Filho2018-05-30
| | | | | | The single quote working with multiple lines is likely to be unintended. With current versions of meson, it also causes error messages after it to report the wrong line number. Use the documented syntax instead.
* meson: add -Dmemory-accounting-default=true|falseZbigniew Jędrzejewski-Szmek2018-05-30
| | | | | This makes it easy to set the default for distributions and users which want to default to off because they primarily use older kernels.
* meson.build: make docdir configurable (#8068)tblume2018-05-30
| | | | SUSE is using a different docdir, so the path should be configurable
* meson: apply defaults if /etc/login.defs doesn't existCaio Marcelo de Oliveira Filho2018-05-30
| | | | | | | | | | | Apply defaults for system_{uid,gid}_max even if the /etc/login.defs file doesn't exist (e.g. in Clear Linux with no changes). awk returns an empty string in case the file doesn't exist, causing meson to fail in to_int(). So set the default if output is empty. This makes the BEGIN{} blocks unnecessary, so remove them. (cherry picked from commit 2f62cf3552d48f518313bd6265bad6763e2b643b)
* meson: use multiline string syntax (#8214)Caio Marcelo de Oliveira Filho2018-05-30
| | | | | | | | The single quote working with multiple lines is likely to be unintended. With current versions of meson, it also causes error messages after it to report the wrong line number. Use the documented syntax instead. (cherry picked from commit 9e70f2f81821efa4797d89c06d1f04c11e86015e)
* meson.build: make docdir configurable (#8068)tblume2018-05-30
| | | | | | SUSE is using a different docdir, so the path should be configurable (cherry picked from commit 75aaade16b00ff519fbaedb4cc773b654c11a34a)
* journalctl: regexp matchingZbigniew Jędrzejewski-Szmek2018-05-30
|
* meson: detect pcre2 depZbigniew Jędrzejewski-Szmek2018-05-30
|
* meson: use env object instead of string in tags targetsZbigniew Jędrzejewski-Szmek2018-05-30
| | | | | | | I used 'tags' before because this way we avoided a unnecessary line about 'env' detection. But we cannot use 'env' in test(), so previous commit added 'env' detection. We might just as well use it in custom_target().
* Hook up oss-fuzz test cases as testsZbigniew Jędrzejewski-Szmek2018-05-30
| | | | | | | | | | | | | | | | | | | | | | This is a bit painful because a separate build of systemd is necessary. The tests are guarded by tests!=false and slow-tests==true. Running them is not slow, but compilation certainly is. If this proves unwieldy, we can add a separate option controlling those builds later. The build for each sanitizer has its own directory, and we build all fuzzer tests there, and then pull them out one-by-one by linking into the target position as necessary. It would be nicer to just build the desired fuzzer, but we need to build the whole nested build as one unit. [I also tried making systemd and nested meson subproject. This would work nicely, but meson does not allow that because the nested target names are the same as the outer project names. If that is ever fixed, that would be the way to go.] v2: - make sure things still work if memory sanitizer is not available v3: - switch to syntax which works with meson 0.42.1 found in Ubuntu
* firstboot: Include <crypt.h> for declaration of crypt() if needed (#7944)Björn Esser2018-05-30
| | | | | | | | Not every target system may provide a crypt() function in its stdlibc and may use an external or replacement library, like libxcrypt, for providing such functions. See https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt.
* meson: bump so revision and systemd version in preparation for v237Lennart Poettering2018-05-30
|
* firstboot: Include <crypt.h> for declaration of crypt() if needed (#7944)Björn Esser2018-05-30
| | | | | | | | Not every target system may provide a crypt() function in its stdlibc and may use an external or replacement library, like libxcrypt, for providing such functions. See https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt.
* fuzz: allow building fuzzers outside of oss-fuzzJonathan Rudenberg2018-05-30
| | | | | | Add a new -Dllvm-fuzz=true option that can be used to build against libFuzzer and update the oss-fuzz script to work outside of the oss-fuzz build environment.
* fuzz: disable all deps when building with oss-fuzzJonathan Rudenberg2018-05-30
| | | | | | | | The fuzz targets are intended to be fast and only target systemd code, so they don't need to call out to any dependencies. They also shouldn't depend on shared libraries outside of libc, so we disable every dependency when compiling against oss-fuzz. This also simplifies the upstream build environment significantly.
* fuzz: add initial fuzzing infrastructureJonathan Rudenberg2018-05-30
| | | | | | | | The fuzzers will be used by oss-fuzz to automatically and continuously fuzz systemd. This commit includes the build tooling necessary to build fuzz targets, and a fuzzer for the DNS packet parser.
* add false option for tests (#7778)Adam Duskett2018-05-30
| | | | | | | | | | | | Currently there is no way to prevent tests from building using meson. This introduces two problems: 1) It adds a extra 381 files to compile. 2) One of these tests explicitly requires libgcrypt to be built even if systemd is not using it. 3) It adds C++ to the requirements to build systemd. When cross-compiling, this is uneccessary.
* meson: resurrect API documentation targetLennart Poettering2018-05-30
| | | | We had this functionality back in Automake times, let's resurrect it.
* meson: don't search PATH for telinit (#7770)Mike Gilbert2018-05-30
| | | | | | | | | | | | | | | | On a typical system running systemd, the telinit in PATH is very likely to be a symlink to systemctl. Setting TELINIT to this may result in an infinite recursion if telinit is called and sd_booted() == 0. This may commonly occur in a chroot environment. Bug: https://bugs.gentoo.org/642724 [zj: The path was originally hardcoded as "/lib/upstart/telinit", but was made configurable without changing the default in 4ad61fd1806dde23d2c99043b4bed91a196d2c82. Then the default was changed to `/lib/sysvinit/telinit` in abaaabf40a9891014ed4c402d7beb5a67ac256b1. Then it started being autodetected when meson support was added in 5c23128daba7236a6080383b2a5649033cfef85c. This patch restores the behaviour that was implemented in configure.ac at the time of its removal.]
* meson: add a single .h file to shared libs with no sourcesZbigniew Jędrzejewski-Szmek2018-05-30
| | | | Otherwise stuff doesn't build on old Ubuntu with meson-0.42.1-1~xenial.
* meson: use a convenience lib for shared resolve filesZbigniew Jędrzejewski-Szmek2018-05-30
| | | | | | | | | | | | | This reduces the man=false meson target count from 1281 to 1253. -- A fully scientific test: git grep _sources, :/*.build|cut -d: -f2|tr -d ' '|sort|uniq -c reveals that libudev_sources is the only source list now reused twice. There's some ugly circular dependency between libudev and libshared, and anyway I'm not sure if we don't want to use different compilation options (LOG_REALM_…) in those two cases, so I'm leaving that alone for now.
* meson: rename libudev_internal to libudev_static and link into libudevZbigniew Jędrzejewski-Szmek2018-05-30
| | | | | | | | | | | | | This reduces the meson man=false target count to 1281. v2: - link test-engine with libshared instead of libsystemd_static Previous version built fine on F27, but fails on F26 with the following error: /usr/bin/ld: /tmp/ccr8HRGw.ltrans6.ltrans.o: undefined reference to symbol '__start_BUS_ERROR_MAP@@SD_SHARED' /home/zbyszek/fedora/systemd/systemd-9d5aae75c64f5583a110f03b94816aacc03bbf4d/x86_64-redhat-linux-gnu/src/shared/libsystemd-shared-236.so: error adding symbols: DSO missing from command line v3: - add libudev_basic