summaryrefslogtreecommitdiff
path: root/meson_options.txt
Commit message (Collapse)AuthorAgeFilesLines
* core: add combined status unit formatPaweł Marciniak2021-06-281-1/+1
| | | | | [zjs: actual implementation is stripped out and will be added in subsequent commits.]
* meson: allow "soft-static" allocations for uids and gids in the initrdZbigniew Jędrzejewski-Szmek2021-06-171-4/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The general idea with users and groups created through sysusers is that an appropriate number is picked when the allocation is made. The number that is selected will be different on each system based on the order of creation of users, installed packages, etc. Since system users and groups are not shared between installations, this generally is not an issue. But it becomes a problem for initrd: some file systems are shared between the initrd and the host (/run and /dev are probably the only ones that matter). If the allocations are different in the host and the initrd, and files survive switch-root, they will have wrong ownership. This makes the gids build-time-configurable for all groups and users where state may survive the switch from initrd to the host. In particular, all "hardware access" groups are like this: files in /dev will be owned by them. Eventually the new udev would change ownership, but there would be a momemnt where the files were owned by the wrong group. The allocations are "soft-static" in the language of Fedora packaging guidelines: the uid/gid will be used if possible, but we'll fall back to a different one. TTY_GID is the exception, because the number is used directly. Similarly, the possibility to configure "soft-static" uids is added for daemons which may usefully run in the initramfs: systemd-network (lease information and interface state is serialized to /run), systemd-resolve (stub files and interface state), systemd-timesync (/run/systemd/timesync). Journal files are owned by the group systemd-journal, and acls are granted for wheel and adm. systemd-oom and systemd-coredump are excluded from this patch: I assume that oomd is not useful in the initrd, and coredump leaves no state (it only creates a pipe in /run?). The defaults are not changed: if nothing is configured, dynamic allocation will be used. I looked at a Debian system, and the numbers are all different than on Fedora. For Fedora, see the list of uids and gids at https://pagure.io/setup/blob/master/f/uidgid. In particular, systemd-network and systemd-resolve got soft-static numbers to make it easy to transition from a non-host-specific initrd to a host system already a few years back (https://bugzilla.redhat.com/show_bug.cgi?id=1102002). I also requested static allocations for sgx, input, render in https://pagure.io/packaging-committee/issue/1078, https://pagure.io/setup/pull-request/27.
* test: enable fuzz regression tests by defaultZbigniew Jędrzejewski-Szmek2021-05-201-1/+1
| | | | | | | | | | | | This ensures that the fuzz test code is also built by default. It also increases the test coverage a bit. Compiling the tests *with* sanitizers is painfully slow, so this is not enabled. But just compiling them sauté is hardly noticable. Running the tests increases the test count and runtime: 622 tests, 26 s to 922 tests, 35 s I think this is acceptable.
* boot: add optional EFI SBAT supportDimitri John Ledkov2021-05-071-0/+12
| | | | | | | | | | Add SBAT support, when -Dsbat-distro value is specified. One can use -Dsbat-distro=auto for autodetection of all sbat options. Many meson configure options added to customize SBAT CSV values, but sensible defaults are auto detected by default. SBAT support is required if shim v15+ is used to load systemd-boot binary or kernel.efi (Type II BootLoaderSpec). Fixes #19247
* meson, bpf: add HAVE_LIBBPF, BPF_FRAMEWORK optionsJulia Kartseva2021-04-261-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | * Add `bpf-framework` feature gate with 'auto', 'true' and 'false' choices * Add libbpf [0] dependency * Search for clang llvm-strip and bpftool binaries in compile time to generate bpf skeleton. For libbpf [0], make 0.2.0 [1] the minimum required version. If libbpf is satisfied, set HAVE_LIBBPF config option to 1. If `bpf-framework` feature gate is set to 'auto', means that whether bpf feature is enabled or now is defined by the presence of all of libbpf, clang, llvm and bpftool in build environment. With 'auto' all dependencies are optional. If the gate is set to `true`, make all of the libbpf, clang and llvm dependencies mandatory. If it's set to `false`, set `BPF_FRAMEWORK` to false and make libbpf dependency optional. libbpf dependency is dynamic followed by the common pattern in systemd. meson, bpf: add build rule for socket_bind program
* resolved.conf: Add hostnames for default DNS serversJan Janssen2021-03-311-1/+1
|
* meson: fix warning about comparison between different typesYu Watanabe2021-03-221-1/+1
| | | | Follow-up for e39288193fcdf3a36dbc49b78e6c9bf86a764e31.
* meson.build: make xinitrcdir configurableFranck Bui2021-03-161-0/+2
| | | | SUSE uses a different xinitrcdir ("/usr/etc/X11/xinit/xinitrc.d").
* meson: take oomd out of the doghouseZbigniew Jędrzejewski-Szmek2021-02-021-1/+1
| | | | | | It's on by default in Fedora 34 [1], so we can't say it's just a preview. [1] https://fedoraproject.org/wiki/Changes/EnableSystemdOomd
* sysext: new tool for managing "system extensions" for /usr/ + /opt/Lennart Poettering2021-01-191-0/+2
|
* Add install-sysconfdir=no-samples option for (non-)installation of sample ↵Josh Triplett2021-01-141-2/+2
| | | | | | | | | | | | | configs By default, systemd installs various sample configuration files containing commented-out defaults. Systems seeking to minimize the number of files in /etc may wish to install directories and configuration files that have semantic effects, but not install not commented-out sample configuration files. Turn install-sysconfdir into a multi-valued option, with a "no-samples" value to skip installing sample-only configuration files.
* localed: Run locale-gen if available to generate missing localeMatthias Klumpp2021-01-121-0/+2
| | | | | | | | | | | This change improves integration with distributions using locale-gen to generate missing locale on-demand, like Debian-based distributions (Debian/Ubuntu/PureOS/Tanglu/...) and Arch Linux. We only ever enable new locales for generation, and never disable them. Furthermore, we only generate UTF-8 locale. This feature is only used if explicitly enabled at compile-time, and will also be inert at runtime if the locale-gen binary is missing.
* meson: Add option to disable translationsDaan De Meyer2021-01-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This speeds up the meson install step by half a second which, given the trivial changes required to add this option, makes it worth the effort to support this. Before: ``` ‣ Running build script... [1/418] Generating version.h with a custom command Installing /root/build/po/be.gmo to /root/dest/usr/share/locale/be/LC_MESSAGES/systemd.mo Installing /root/build/po/be@latin.gmo to /root/dest/usr/share/locale/be@latin/LC_MESSAGES/systemd.mo Installing /root/build/po/bg.gmo to /root/dest/usr/share/locale/bg/LC_MESSAGES/systemd.mo Installing /root/build/po/ca.gmo to /root/dest/usr/share/locale/ca/LC_MESSAGES/systemd.mo Installing /root/build/po/cs.gmo to /root/dest/usr/share/locale/cs/LC_MESSAGES/systemd.mo Installing /root/build/po/da.gmo to /root/dest/usr/share/locale/da/LC_MESSAGES/systemd.mo Installing /root/build/po/de.gmo to /root/dest/usr/share/locale/de/LC_MESSAGES/systemd.mo Installing /root/build/po/el.gmo to /root/dest/usr/share/locale/el/LC_MESSAGES/systemd.mo Installing /root/build/po/es.gmo to /root/dest/usr/share/locale/es/LC_MESSAGES/systemd.mo Installing /root/build/po/fr.gmo to /root/dest/usr/share/locale/fr/LC_MESSAGES/systemd.mo Installing /root/build/po/gl.gmo to /root/dest/usr/share/locale/gl/LC_MESSAGES/systemd.mo Installing /root/build/po/hr.gmo to /root/dest/usr/share/locale/hr/LC_MESSAGES/systemd.mo Installing /root/build/po/hu.gmo to /root/dest/usr/share/locale/hu/LC_MESSAGES/systemd.mo Installing /root/build/po/id.gmo to /root/dest/usr/share/locale/id/LC_MESSAGES/systemd.mo Installing /root/build/po/it.gmo to /root/dest/usr/share/locale/it/LC_MESSAGES/systemd.mo Installing /root/build/po/ja.gmo to /root/dest/usr/share/locale/ja/LC_MESSAGES/systemd.mo Installing /root/build/po/ko.gmo to /root/dest/usr/share/locale/ko/LC_MESSAGES/systemd.mo Installing /root/build/po/lt.gmo to /root/dest/usr/share/locale/lt/LC_MESSAGES/systemd.mo Installing /root/build/po/pl.gmo to /root/dest/usr/share/locale/pl/LC_MESSAGES/systemd.mo Installing /root/build/po/pt_BR.gmo to /root/dest/usr/share/locale/pt_BR/LC_MESSAGES/systemd.mo Installing /root/build/po/ro.gmo to /root/dest/usr/share/locale/ro/LC_MESSAGES/systemd.mo Installing /root/build/po/ru.gmo to /root/dest/usr/share/locale/ru/LC_MESSAGES/systemd.mo Installing /root/build/po/sk.gmo to /root/dest/usr/share/locale/sk/LC_MESSAGES/systemd.mo Installing /root/build/po/sr.gmo to /root/dest/usr/share/locale/sr/LC_MESSAGES/systemd.mo Installing /root/build/po/sv.gmo to /root/dest/usr/share/locale/sv/LC_MESSAGES/systemd.mo Installing /root/build/po/tr.gmo to /root/dest/usr/share/locale/tr/LC_MESSAGES/systemd.mo Installing /root/build/po/uk.gmo to /root/dest/usr/share/locale/uk/LC_MESSAGES/systemd.mo Installing /root/build/po/zh_CN.gmo to /root/dest/usr/share/locale/zh_CN/LC_MESSAGES/systemd.mo Installing /root/build/po/zh_TW.gmo to /root/dest/usr/share/locale/zh_TW/LC_MESSAGES/systemd.mo Installing /root/build/po/pa.gmo to /root/dest/usr/share/locale/pa/LC_MESSAGES/systemd.mo real 0m1.467s user 0m1.064s sys 0m0.392s ``` After (with translations disabled): ``` ‣ Running build script... [1/418] Generating version.h with a custom command real 0m0.925s user 0m0.622s sys 0m0.301s ```
* cryptenroll: add support for TPM2 enrollingLennart Poettering2020-12-171-0/+2
|
* Drop compat "gateway" nameZbigniew Jędrzejewski-Szmek2020-12-101-2/+0
| | | | | | | Back in 5248e7e1f11aba6859de0b28f0dd3778b22842f2 (July 2017) we moved over to "_gateway", with the old name declared to be temporary measure. Since we're doing a bunch of changes to resolved now, it seems to be a good moment to make this simplification and not add support for the compat name in new code.
* Make support for nscd flushing optionalZbigniew Jędrzejewski-Szmek2020-12-071-0/+2
| | | | | | | | | Fedora will deprecate support for nscd in the upcoming release [1] and plans to drop it in the next one [2]. At that point we might as well build systemd without that support too, since there'll be nothing to talk too. [1] https://fedoraproject.org/wiki/Changes/DeprecateNSCD [2] https://fedoraproject.org/wiki/Changes/RemoveNSCD
* Merge pull request #17079 from keszybz/late-exec-resolutionLennart Poettering2020-12-031-1/+3
|\ | | | | Resolve executable paths before execution, use fexecve()
| * meson: add option for fexecve useZbigniew Jędrzejewski-Szmek2020-11-061-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are downsides to using fexecve: when fexecve is used (for normal executables), /proc/pid/status shows Name: 3, which means that ps -C foobar doesn't work. pidof works, because it checks /proc/self/cmdline. /proc/self/exe also shows the correct link, but requires privileges to read. /proc/self/comm also shows "3". I think this can be considered a kernel deficiency: when O_CLOEXEC is used, this "3" is completely meaningless. It could be any number. The kernel should use argv[0] instead, which at least has *some* meaning. I think the approach with fexecve/execveat is instersting, so let's provide it as opt-in.
* | meson: add option to skip installing to $sysconfdirJörg Thalheim2020-11-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful for development where overwriting files out side the configured prefix will affect the host as well as stateless systems such as NixOS that don't let packages install to /etc but handle configuration on their own. Alternative to https://github.com/systemd/systemd/pull/17501 tested with: $ mkdir inst build && cd build $ meson \ -Dcreate-log-dirs=false \ -Dsysvrcnd-path=$(realpath ../inst)/etc/rc.d \ -Dsysvinit-path=$(realpath ../inst)/etc/init.d \ -Drootprefix=$(realpath ../inst) \ -Dinstall-sysconfdir=false \ --prefix=$(realpath ../inst) .. $ ninja install
* | license: LGPL-2.1+ -> LGPL-2.1-or-laterYu Watanabe2020-11-091-1/+1
| |
* | meson: convert developer_mode boolean to an enumZbigniew Jędrzejewski-Szmek2020-10-221-1/+1
| | | | | | | | | | I initially changed this to add a third state. But even with two values having an explicit name instead of just 0/1 is mode descriptive.
* | meson: enable oomd by default in developer modeZbigniew Jędrzejewski-Szmek2020-10-151-1/+1
| | | | | | | | | | | | We want to compile the new code in CI without having to explicitly specify -Doomd=true everywhere. Let's enable it by default, and rely on distros setting -Dmode=release to not have it enabled by default.
* | meson: disable systemd-oomd by defaultAnita Zhang2020-10-141-1/+1
| | | | | | | | systemd-oomd can be enabled when in developer mode (-Dmode=developer)
* | systemd-oomd: unit testable helper functionsAnita Zhang2020-10-071-0/+2
|/ | | | | | | | Helpers used by the systemd-oomd daemon to read/fill in various contexts and make detection and kill decisions. i.e. a simplified/less configurable version of https://github.com/facebookincubator/oomd/tree/master/src/oomd.
* Also parse the minimum uid/gid valuesZbigniew Jędrzejewski-Szmek2020-10-011-0/+4
| | | | | | | We don't (and shouldn't I think) look at them when determining the type of the user, but they should be used during user/group allocation. (For example, an admin may specify SYS_UID_MIN==200 to allow statically numbered users that are shared with other systems in the range 1–199.)
* Look at /etc/login.defs for the system_max_[ug]id valuesZbigniew Jędrzejewski-Szmek2020-10-011-3/+5
| | | | | | | | | | | | | | | It makes little sense to make the boundary between systemd and user guids configurable. Nevertheless, a completely fixed compile-time define is not enough in two scenarios: - the systemd_uid_max boundary has moved over time. The default used to be 500 for a long time. Systems which are upgraded over time might have users in the wrong range, but changing existing systems is complicated and expensive (offline disks, backups, remote systems, read-only media, etc.) - systems are used in a heterogenous enviornment, where some vendors pick one value and others another. So let's make this boundary overridable using /etc/login.defs. Fixes #3855, #10184.
* meson: make "developer" mode the defaultZbigniew Jędrzejewski-Szmek2020-09-171-1/+1
| | | | | | | This means that the dbus doc consistency checks will be enabled by default, including in the CI. I think that will work better than current state where people do not enable them and them follow-up patches for the docs like the parent commit must be had.
* meson: add "develop mode" config switchZbigniew Jędrzejewski-Szmek2020-08-271-0/+3
|
* build-sys: add libfido2 as optional dependencyLennart Poettering2020-07-011-0/+2
|
* meson: add a new -Dstandalone-binaries=true optionFilipe Brandenburger2020-06-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | This adds an option to build standalone binaries that do not depend on the systemd-shared library. This option can be handy to build binaries that can be useful on a non-systemd system, binaries such as systemd-sysusers and systemd-tmpfiles have been previously requested, but installing them with all the required dependencies pulls in too much code that isn't really relevant for those use cases. The standalone use case is also relevant in containers, where minimizing the size of the container image is quite relevant. For now, only `systemd-sysusers` is also built as a standalone binary. The standalone binaries are installed as `/usr/bin/%{name}.standalone`, the packaging system is reponsible for renaming those into the correct names during the packaging step. RPM is able to do so with RemovePathPostfixes: The default behavior is to build shared binaries only, since this option is mainly intended for building distribution packages. Tested that a proper separate binary is built when using this option and that having it disabled (or using the default Meson configuration) does not produce a binary for this option.
* change fs/file-max to LONG_MAX instead of ULONG_MAXEinsler Lee2020-06-041-1/+1
| | | Since this has been changed in: https://github.com/systemd/systemd/commit/6e2f78948403a4cce45b9e34311c9577c624f066, the change should be synchronized.
* xdg-autostart-generator: Add a generator for XDG autostart filesBenjamin Berg2020-05-271-0/+2
| | | | | | | | | | | | | | This generator can be used by desktop environments to launch autostart applications and services. The feature is an opt-in, triggered by xdg-desktop-autostart.target being activated. Also included is the new binary xdg-autostart-condition. This binary is used as an ExecCondition to test the OnlyShowIn and NotShowIn XDG desktop file keys. These need to be evaluated against the XDG_CURRENT_DESKTOP environment variable which may not be known at generation time. Co-authored-by: Henri Chain <henri.chain@enioka.com>
* meson: add fuzz-tests= optionFrantisek Sumsal2020-05-211-0/+2
| | | | | | | | | The slow-tests= option already enables fuzzers as well, however, this option can't be used in the "fully sanitized" runs, as certain slow tests are affected by the performance quite significantly. This option allows us to enable only fuzzers without the slow tests to meet the needs of such runs.
* allow removal of initrd servicesNorbert Lange2020-05-191-0/+2
|
* coredump: add zstandard support for coredumpsNorbert Lange2020-05-041-0/+2
| | | | | this will hook libzstd into coredump, using this format as default.
* tree-wide: use "hostname" spelling everywhereZbigniew Jędrzejewski-Szmek2020-04-211-1/+1
| | | | | | | | It's not that I think that "hostname" is vastly superior to "host name". Quite the opposite — the difference is small, and in some context the two-word version does fit better. But in the tree, there are ~200 occurrences of the first, and >1600 of the other, and consistent spelling is more important than any particular spelling choice.
* Include new configure options in features listJakov Smolic2020-04-161-2/+2
| | | | | Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr> Signed-off-by: Luka Perkov <luka.perkov@sartura.hr>
* Add new meson configure option for controlling systemd-analyze supportJakov Smolic2020-04-151-0/+2
| | | | | | | | Enables building systemd without systemd-analyze, which in return saves approx. 4 MB of space upon installing systemd. Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr> Signed-off-by: Luka Perkov <luka.perkov@sartura.hr>
* meson,resolved: make default LLMNR= and MulticastDNS= values configurableZbigniew Jędrzejewski-Szmek2020-04-151-0/+8
| | | | For https://fedoraproject.org/wiki/Changes/systemd-resolved.
* Add meson build option to prevent building kernel-installJakov Smolic2020-04-141-0/+2
| | | | | | | This commit introduces new meson build option "kernel-install" to prevent kernel-install from building if the user sets the added option as "false". Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr> Signed-off-by: Luka Perkov <luka.perkov@sartura.hr>
* ci: turn off FuzzBuzzEvgeny Vereshchagin2020-03-301-6/+0
| | | | I don't think anyone uses it.
* timesync, meson: allow statically linked buildRobert Scheck2020-03-041-0/+2
| | | | | | | | | | Build option "link-timesyncd-shared" to build a statically linked systemd-timesyncd by using -Dlink-udev-shared=false -Dlink-timesyncd-shared=false on systems with full systemd stack except systemd-timesyncd, such as RHEL/CentOS 8.
* meson: update efi path detection to gnu-efi-3.0.11Zbigniew Jędrzejewski-Szmek2020-02-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | Fixes systemd build in Fedora rawhide. The old ldsdir option is not useful, because both the directory and the file name changed. Let's remove the option and try to autodetect the file name. If this turns out to be not enough, a new option to simply specify the full path to the file can be added. F31: efi arch: x86_64 EFI machine type: x64 EFI CC ccache cc EFI lds: /usr/lib64/gnuefi/elf_x64_efi.lds EFI crt0: /usr/lib64/gnuefi/crt0-efi-x64.o EFI include directory: /usr/include/efi F32: efi arch: x86_64 EFI machine type: x64 EFI CC ccache cc EFI lds: /usr/lib/gnuefi/x64/efi.lds EFI crt0: /usr/lib/gnuefi/x64/crt0.o EFI include directory: /usr/include/efi
* meson: fix type of homed optionZbigniew Jędrzejewski-Szmek2020-01-301-1/+1
|
* home: add new systemd-homed service that can manage LUKS homesLennart Poettering2020-01-281-0/+4
| | | | Fixes more or less: https://bugs.freedesktop.org/show_bug.cgi?id=67474
* repart: add new systemd-repart toolLennart Poettering2020-01-201-0/+4
| | | | Fixes: #14052
* userdbd: add new service that can merge userdb queries from multiple clientsLennart Poettering2020-01-151-0/+2
|
* network, meson: allow statically linked buildRobert Scheck2020-01-081-0/+2
| | | | | | | | | | Build option "link-networkd-shared" to build a statically linked systemd-networkd by using -Dlink-udev-shared=false -Dlink-networkd-shared=false on systems with full systemd stack except systemd-networkd, such as RHEL/CentOS 8.
* shared: add pkcs11-util.[ch]Lennart Poettering2019-12-091-0/+2
|
* meson: make user $PATH configurableZbigniew Jędrzejewski-Szmek2019-11-131-0/+2
| | | | | | | | | | | | | | | | | This partially reverts db11487d1062655f17db54c4d710653f16c87313 (the logic to calculate the correct value is removed, we always use the same setting as for the system manager). Distributions have an easy mechanism to override this if they wish. I think making this configurable is better, because different distros clearly want different defaults here, and making this configurable is nice and clean. If we don't make it configurable, distros which either have to carry patches, or what would be worse, rely on some other configuration mechanism, like /etc/profile. Those other solutions do not apply everywhere (they usually require the shell to be used at some point), so it is better if we provide a nice way to override the default. Fixes #13469.