summaryrefslogtreecommitdiff
path: root/meson.build
Commit message (Collapse)AuthorAge
* build-sys: Add option to link systemctl staticallyFelipe Sateler2018-08-24
| | | | | | | | | | | | | | | | | Systemctl is special because it is required for many tasks that may need to be performed when the system is not fully configured and/or partially broken: 1. Installing/Uninstalling services during OS installs and upgrades 2. Shutting down the system Therefore reduce the number of dependencies that systemctl pulls in, by not linking to systemd-shared. This brings a bit of resilience to systemctl (and its aliases shutdown, reboot, etc), by linking against less external libraries. Because this extra resilience comes at a cost of approximately 580 KB extra space, this is done behind a meson build option.
* fuzz-journal-remote: a fuzzer for journal-remote over-the-wire inputZbigniew Jędrzejewski-Szmek2018-08-24
|
* journal-remote: split out µhttpd support and main() into a separate fileZbigniew Jędrzejewski-Szmek2018-08-24
| | | | | | | | | | | | | This is in preparation to reusing the RemoteServer in other concepts. I tried to keep changes to minimum: - arg_* global variables are now passed as state in RemoteServer - exported functions get the "journal_remote_" prefix - some variables are renamed In particular, there is an ugly global RemoveServer* variable. It was originally added because µhttpd did not allow state to be passed to the callbacks. I'm not sure if this has been remediated in µhttpd, but either way, this is not changed here, the global variable is only renamed for clarity.
* meson: use a convenience static library for nspawn coreZbigniew Jędrzejewski-Szmek2018-08-24
| | | | | | | | | | | This makes it easier to link the nspawn implementation to the tests. Right now this just means that nspawn-patch-uid.c is not compiled twice, which is nice, but results in test-patch-uid being slightly bigger, which is not nice. But in general, we should use convenience libs to compile everything just once, as far as possible. Otherwise, once we start compiling a few files here twice, and a few file there thrice, we soon end up in a state where we are doing hundreds of extra compilations. So let's do the "right" thing, even if is might not be more efficient.
* add new portable service frameworkLennart Poettering2018-08-24
| | | | | | | | | | | This adds a small service "systemd-portabled" and a matching client "portablectl", which implement the "portable service" concept. The daemon implements the actual operations, is PolicyKit-enabled and is activated on demand with exit-on-idle. Both the daemon and the client are an optional build artifact, enabled by default rhough.
* rpm: add macros for common configuration dirsZbigniew Jędrzejewski-Szmek2018-08-24
| | | | | | | | | | | %_environmnentdir /usr/lib/environment.d %_modulesloaddir /usr/lib/modules-load.d %_modprobedir /usr/lib/modprobe.d This makes installing files there more convenient because people don't need to construct the path from %_prefix/lib/… . See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GBF5WJLTQVSXMHGYGBF3723ZYCWFBR7C/.
* rpm: add macros for common configuration dirsZbigniew Jędrzejewski-Szmek2018-08-24
| | | | | | | | | | | %_environmnentdir /usr/lib/environment.d %_modulesloaddir /usr/lib/modules-load.d %_modprobedir /usr/lib/modprobe.d This makes installing files there more convenient because people don't need to construct the path from %_prefix/lib/… . See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GBF5WJLTQVSXMHGYGBF3723ZYCWFBR7C/.
* meson: use run_target for generating tags with ctagsEvegeny Vereshchagin2018-08-24
| | | | | | | | | | In https://github.com/systemd/systemd/pull/6561, `run_target` was changed to `custom_target`, which inadvertently caused relative paths to be passed to ctags due to https://github.com/mesonbuild/meson/issues/3589. The switch to `run_target` causes absolute paths to be passed again and makes it easier to jump from file to file, hopefully delaying the need to exit Vim :-)
* Turn VALGRIND variable into a meson configuration switchZbigniew Jędrzejewski-Szmek2018-08-24
| | | | | | | | | | Configuration through environment variable is inconvenient with meson, because they cannot be convieniently changed and/or are not preserved during reconfiguration (https://github.com/mesonbuild/meson/issues/1503). This adds -Dvalgrind=true/false, which has the advantage that it can be set at any time with meson configure -Dvalgrind=... and ninja will rebuild targets as necessary. Additional minor advantages are better consistency with the options for hashmap debugging, and typo avoidance with '#if' instead of '#ifdef'.
* meson: use array type optionYu Watanabe2018-08-24
| | | | Array type option is supported since 0.44.0.
* meson: use warning() methodYu Watanabe2018-08-24
| | | | | This bumps the required minimum version of meson to 0.44, as `warning()` method is supported since 0.44.
* meson: use get_supported_arguments()Yu Watanabe2018-08-24
| | | | | This bumps the required minimum version of meson to 0.43, as `get_supported_arguments()` is supported since meson-0.43.
* meson: recompile all sources for install_libudev_static and ↵Zbigniew Jędrzejewski-Szmek2018-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | install_libsystemd_static This means that when those targets are built, all the sources are built again, instead of reusing the work done to create libbasic.a and other convenience static libraries. It would be nice to not do this, but there seems to be no support in our toolchain for joining multiple static libraries into one. When linking a static library, any -l arguments are simply ignored by ar/gcc-ar, and .a libraries given as positional arguments are copied verbatim into the archive so they objects in them cannot be accessed. https://stackoverflow.com/questions/2157629/linking-static-libraries-to-other-static-libraries suggests either unzipping all the archives and putting them back togather, or using a linker script. Unzipping and zipping back together seems ugly. The other option is not very nice. The linker script language does not allow "+" to appear in the filenames, and filenames that meson generates use that, so files would have to be renamed before a linker script was used. And we would have to generate the linker script on the fly. Either way, this doesn't seem attractive. Since those static libraries are a niche use case, it seems reasonable to just go with the easiest and safest solution and recompile all the source files. Thanks to ccache, this is probably almost as cheap as actually reusing the convenience .a libraries. test-libsystemd-sym.c and test-libudev-sym.c compile fine with the generated static libs, so it seems that they indeed provide all the symbols they should.
* meson: only build test-lib{systemd,udev}-static-sym for picDavide Cavalca2018-08-24
|
* meson: add test-lib{systemd,udev}-static-symZbigniew Jędrzejewski-Szmek2018-08-24
| | | | | This is the same as test-lib{systemd,udev}-sym, but linked to the static variants of those libraries.
* meson: add support for building static libsystemd and libudevDavide Cavalca2018-08-24
|
* meson: generate m4 preprocessor from config.h (#8914)Yu Watanabe2018-08-24
|
* timedatectl: add timesync-status and show-timesync commandsYu Watanabe2018-08-24
| | | | Closes #1589.
* meson.build: Fix new executable systemd-user-runtime-dir, that we do not need.Sven Eden2018-08-24
|
* meson: drop 'name' argument in cc.has_argument() (#8878)Yu Watanabe2018-08-24
|
* Bump pwx migration tools and fix doubled line in meson.build.Sven Eden2018-08-24
|
* meson: drop 'name' argument in cc.has_argument() (#8878)Yu Watanabe2018-08-24
|
* logind: split %t directory creation to a helper unitZbigniew Jędrzejewski-Szmek2018-08-24
| | | | | | | | | | | | | | | Unfortunately this needs a new binary to do the mount because there's just too many special steps to outsource this to systemd-mount: - EPERM needs to be treated specially - UserRuntimeDir= setting must be obeyed - SELinux label must be adjusted This allows user@.service to be started independently of logind. So 'systemctl start user@nnn' will start the user manager for user nnn. Logind will start it too when the user logs in, and will stop it (unless lingering is enabled) when the user logs out. Fixes #7339.
* 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.