summaryrefslogtreecommitdiff
path: root/meson_options.txt
Commit message (Collapse)AuthorAgeFilesLines
* pstore: Tool to archive contents of pstoreEric DeVolder2019-07-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces the systemd pstore service which will archive the contents of the Linux persistent storage filesystem, pstore, to other storage, thus preserving the existing information contained in the pstore, and clearing pstore storage for future error events. Linux provides a persistent storage file system, pstore[1], that can store error records when the kernel dies (or reboots or powers-off). These records in turn can be referenced to debug kernel problems (currently the kernel stuffs the tail of the dmesg, which also contains a stack backtrace, into pstore). The pstore file system supports a variety of backends that map onto persistent storage, such as the ACPI ERST[2, Section 18.5 Error Serialization] and UEFI variables[3 Appendix N Common Platform Error Record]. The pstore backends typically offer a relatively small amount of persistent storage, e.g. 64KiB, which can quickly fill up and thus prevent subsequent kernel crashes from recording errors. Thus there is a need to monitor and extract the pstore contents so that future kernel problems can also record information in the pstore. The pstore service is independent of the kdump service. In cloud environments specifically, host and guest filesystems are on remote filesystems (eg. iSCSI or NFS), thus kdump relies [implicitly and/or explicitly] upon proper operation of networking software *and* hardware *and* infrastructure. Thus it may not be possible to capture a kernel coredump to a file since writes over the network may not be possible. The pstore backend, on the other hand, is completely local and provides a path to store error records which will survive a reboot and aid in post-mortem debugging. Usage Notes: This tool moves files from /sys/fs/pstore into /var/lib/systemd/pstore. To enable kernel recording of error records into pstore, one must either pass crash_kexec_post_notifiers[4] to the kernel command line or enable via 'echo Y > /sys/module/kernel/parameters/crash_kexec_post_notifiers'. This option invokes the recording of errors into pstore *before* an attempt to kexec/kdump on a kernel crash. Optionally, to record reboots and shutdowns in the pstore, one can either pass the printk.always_kmsg_dump[4] to the kernel command line or enable via 'echo Y > /sys/module/printk/parameters/always_kmsg_dump'. This option enables code on the shutdown path to record information via pstore. This pstore service is a oneshot service. When run, the service invokes systemd-pstore which is a tool that performs the following: - reads the pstore.conf configuration file - collects the lists of files in the pstore (eg. /sys/fs/pstore) - for certain file types (eg. dmesg) a handler is invoked - for all other files, the file is moved from pstore - In the case of dmesg handler, final processing occurs as such: - files processed in reverse lexigraphical order to faciliate reconstruction of original dmesg - the filename is examined to determine which dmesg it is a part - the file is appended to the reconstructed dmesg For example, the following pstore contents: root@vm356:~# ls -al /sys/fs/pstore total 0 drwxr-x--- 2 root root 0 May 9 09:50 . drwxr-xr-x 7 root root 0 May 9 09:50 .. -r--r--r-- 1 root root 1610 May 9 09:49 dmesg-efi-155741337601001 -r--r--r-- 1 root root 1778 May 9 09:49 dmesg-efi-155741337602001 -r--r--r-- 1 root root 1726 May 9 09:49 dmesg-efi-155741337603001 -r--r--r-- 1 root root 1746 May 9 09:49 dmesg-efi-155741337604001 -r--r--r-- 1 root root 1686 May 9 09:49 dmesg-efi-155741337605001 -r--r--r-- 1 root root 1690 May 9 09:49 dmesg-efi-155741337606001 -r--r--r-- 1 root root 1775 May 9 09:49 dmesg-efi-155741337607001 -r--r--r-- 1 root root 1811 May 9 09:49 dmesg-efi-155741337608001 -r--r--r-- 1 root root 1817 May 9 09:49 dmesg-efi-155741337609001 -r--r--r-- 1 root root 1795 May 9 09:49 dmesg-efi-155741337710001 -r--r--r-- 1 root root 1770 May 9 09:49 dmesg-efi-155741337711001 -r--r--r-- 1 root root 1796 May 9 09:49 dmesg-efi-155741337712001 -r--r--r-- 1 root root 1787 May 9 09:49 dmesg-efi-155741337713001 -r--r--r-- 1 root root 1808 May 9 09:49 dmesg-efi-155741337714001 -r--r--r-- 1 root root 1754 May 9 09:49 dmesg-efi-155741337715001 results in the following: root@vm356:~# ls -al /var/lib/systemd/pstore/155741337/ total 92 drwxr-xr-x 2 root root 4096 May 9 09:50 . drwxr-xr-x 4 root root 40 May 9 09:50 .. -rw-r--r-- 1 root root 1610 May 9 09:50 dmesg-efi-155741337601001 -rw-r--r-- 1 root root 1778 May 9 09:50 dmesg-efi-155741337602001 -rw-r--r-- 1 root root 1726 May 9 09:50 dmesg-efi-155741337603001 -rw-r--r-- 1 root root 1746 May 9 09:50 dmesg-efi-155741337604001 -rw-r--r-- 1 root root 1686 May 9 09:50 dmesg-efi-155741337605001 -rw-r--r-- 1 root root 1690 May 9 09:50 dmesg-efi-155741337606001 -rw-r--r-- 1 root root 1775 May 9 09:50 dmesg-efi-155741337607001 -rw-r--r-- 1 root root 1811 May 9 09:50 dmesg-efi-155741337608001 -rw-r--r-- 1 root root 1817 May 9 09:50 dmesg-efi-155741337609001 -rw-r--r-- 1 root root 1795 May 9 09:50 dmesg-efi-155741337710001 -rw-r--r-- 1 root root 1770 May 9 09:50 dmesg-efi-155741337711001 -rw-r--r-- 1 root root 1796 May 9 09:50 dmesg-efi-155741337712001 -rw-r--r-- 1 root root 1787 May 9 09:50 dmesg-efi-155741337713001 -rw-r--r-- 1 root root 1808 May 9 09:50 dmesg-efi-155741337714001 -rw-r--r-- 1 root root 1754 May 9 09:50 dmesg-efi-155741337715001 -rw-r--r-- 1 root root 26754 May 9 09:50 dmesg.txt where dmesg.txt is reconstructed from the group of related dmesg-efi-155741337* files. Configuration file: The pstore.conf configuration file has four settings, described below. - Storage : one of "none", "external", or "journal". With "none", this tool leaves the contents of pstore untouched. With "external", the contents of the pstore are moved into the /var/lib/systemd/pstore, as well as logged into the journal. With "journal", the contents of the pstore are recorded only in the systemd journal. The default is "external". - Unlink : is a boolean. When "true", the default, then files in the pstore are removed once processed. When "false", processing of the pstore occurs normally, but the pstore files remain. References: [1] "Persistent storage for a kernel's dying breath", March 23, 2011. https://lwn.net/Articles/434821/ [2] "Advanced Configuration and Power Interface Specification", version 6.2, May 2017. https://www.uefi.org/sites/default/files/resources/ACPI_6_2.pdf [3] "Unified Extensible Firmware Interface Specification", version 2.8, March 2019. https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf [4] "The kernel’s command-line parameters", https://static.lwn.net/kerneldoc/admin-guide/kernel-parameters.html
* meson: make nologin path build time configurableMichael Biebl2019-07-181-0/+1
| | | | | | | | | Some distros install nologin as /usr/sbin/nologin, others as /sbin/nologin. Since we can't really on merged-usr everywhere (where the path wouldn't matter), make the path build time configurable via -Dnologin-path=. Closes #13028
* Add config and kernel commandline option to use short identifiersZbigniew Jędrzejewski-Szmek2019-07-101-0/+3
| | | | | | | No functional change, just docs and configuration and parsing. v2: - change ShortIdentifiers=yes|no to StatusUnitFormat=name|description.
* meson: create /var/log/journal/{,remote/} conditionallyZbigniew Jędrzejewski-Szmek2019-07-041-0/+2
| | | | | | | | | | Not everybody has those dirs in the filesystem (and they don't need to). When creating an installation package using $DESTDIR, it is easy enough to remove or ignore those directories, but if installing into a real root, it is ugly to create and remove them. Let's add an option so people can skip it if they want. Inspired by #12930.
* meson: drop unused debug optionYu Watanabe2019-06-291-1/+1
|
* resolved: add strict mode for DNS-over-TLSIwan Timmer2019-06-191-1/+1
| | | | Add strict mode for DNS-over-TLS, which will require TLS support from the server. Closes #10755
* meson: let's make unified cgroupsv2 the defaultLennart Poettering2019-05-241-1/+1
| | | | | | Prompted by @evverx' comments: https://github.com/systemd/systemd/pull/10161#pullrequestreview-158327715
* Drop support for /usr/sbin/halt.localMichael Biebl2019-05-231-2/+0
| | | | | /usr/sbin/halt.local is a Fedora/Red Hat anachronism from pre-systemd times.
* meson: default to -Dman=false to make development quickerZbigniew Jędrzejewski-Szmek2019-05-091-0/+1
| | | | | | | | | This makes the default build much quicker. If people are building systemd for packaging or actual installation, they probably need to set some more options anyway (-Ddns-servers=, -Dntp-servers=), so adding -Dman=true is not a big burden. For CIs configured locally, -Dman=true is added to restore status quo ante.
* tests: hook up fuzz targets to FuzzBuzzEvgeny Vereshchagin2019-05-071-0/+6
|
* Merge pull request #11827 from keszybz/pkgconfig-variablesLennart Poettering2019-02-261-1/+1
|\ | | | | Allow overriding pkgconfig prefixes
| * meson: document -Drootprefix a bit betterZbigniew Jędrzejewski-Szmek2018-11-171-1/+1
| | | | | | | | | | All options are for "overriding", and the help string was just repeating the name of the option.
* | resolved: use Cloudflare public DNS server as a default fallback alongside ↵Ignat Korchagin2019-02-151-1/+1
| | | | | | | | | | | | | | | | Google one Cloudflare public DNS service is currently the fastest one according to https://www.dnsperf.com/#!dns-resolvers. Why not improve the experience for systemd users using this as a default fallback nameserver?
* | Merge pull request #11230 from keszybz/version-string-altYu Watanabe2019-01-031-0/+3
|\ \ | | | | | | Generate version string from git describe (alternative approach)
| * | meson: allow setting the version string during configurationZbigniew Jędrzejewski-Szmek2018-12-211-0/+3
| | | | | | | | | | | | | | | | | | This will be useful when building distro packages, because we can set the version string to the rpm/dpkg/whatever version string, and getter reports from end users.
* | | meson: check whether C.UTF-8 exists or not and use it if existsYu Watanabe2019-01-021-1/+1
| | | | | | | | | | | | If C.UTF-8 does not exist, then fallback to en_US.UTF-8 or C.
* | | Make default locale a compile time optionDave Reisner2018-12-291-0/+2
|/ / | | | | | | | | | | | | Default to a locale that's guaranteed to exist everywhere, but let distros override this with something more exotic if they choose to. Closes #11259.
* | meson: make net.naming-scheme= default configurableZbigniew Jędrzejewski-Szmek2018-12-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful for distributions, where the stability of interface names should be preseved after an upgrade of systemd. So when some specific release of the distro is made available, systemd defaults to the latest & greatest naming scheme, and subsequent updates set the same default. This default may still be overriden through the kernel and env var options. A special value "latest" is also allowed. Without a specific name, it is harder to verride from meson. In case of 'combo' options, meson reads the default during the initial configuration, and "remembers" this choice. When systemd is updated, old build/ directories could keep the old default, which would be annoying. Hence, "latest" is introduced to make it explicit, yet follow the upstream. This is actually useful for the user too, because it may be used as an override, without having to actually specify a version.
* | meson: also add option for debugging siphashYu Watanabe2018-11-231-1/+1
| |
* | meson: add option for debugging udevYu Watanabe2018-11-231-1/+1
|/
* main: bump fs.nr_open + fs.max-file to their largest possible valuesLennart Poettering2018-10-171-0/+4
| | | | | | | | | | After discussions with kernel folks, a system with memcg really shouldn't need extra hard limits on file descriptors anymore, as they are properly accounted for by memcg anyway. Hence, let's bump these values to their maximums. This also adds a build time option to turn thiss off, to cover those users who do not want to use memcg.
* meson: add -Dlog-trace to set LOG_TRACEZbigniew Jędrzejewski-Szmek2018-10-021-0/+2
| | | | | | The justification is the same as for -Dvalgrind: setting config in meson in this way is easier, because when the value is changed stuff that should be rebuilt is rebuilt.
* meson: use an array option for efi-ccMike Gilbert2018-09-301-1/+1
| | | | Fixes: https://github.com/systemd/systemd/issues/10211
* meson: use the host architecture compiler/linker for src/boot/efiHelmut Grohne2018-09-281-2/+2
| | | | | | | | | | cross building systemd to arm64 presently fails, because the build system uses plain gcc and plain ld (build architecture compiler and linker respectively) for building src/boot/efi. These values come from the efi-cc and efi-ld options respectively. It rather should be using host tools here. Fixes: b710072da441 ("add support for building efi modules")
* meson: rename -Ddebug to -Ddebug-extraZbigniew Jędrzejewski-Szmek2018-08-201-1/+1
| | | | | | | Meson added -Doptimization and -Ddebug options, which obviously causes a conflict with our -Ddebug options. Let's rename it. Fixes #9883.
* meson: actually honor pkgconfig*dir options (#9841)Benedikt Morbach2018-08-101-1/+1
| | | | both were silently ignored leading to some of the pkg-config files ending up in the wrong place
* resolved: basic OpenSSL support for DNS-over-TLSIwan Timmer2018-07-271-1/+3
| | | | | | This provides basic OpenSSL support without optimizations like TCP Fast Open and TLS Session Tickets. Notice only a single SSL library can be enabled at a time and therefore journald functions provided by GnuTLS will be disabled when using OpenSSL. Fixes #9531
* meson: use integer type in optionsYu Watanabe2018-07-241-20/+15
| | | | | | This bumps the minimum required version of meson to 0.45 and python to 3.5, as integer type option is supported since meson-0.45 and meson-0.45 requires python-3.5.
* meson: allow building resolved and machined without nss modulesYu Watanabe2018-07-231-4/+8
| | | | | | | | | | | This adds -Dnss-resolve= and -Dnss-mymachines= meson options. By using this option, e.g., resolved can be built without nss-resolve. When no nss modules are built, then test-nss is neither built. Also, This changes the option name -Dmyhostname= to -Dnss-myhostname= for consistency to other nss related options. Closes #9596.
* tree-wide: use "polkit" to refer to PolicyKit/polkitZbigniew Jędrzejewski-Szmek2018-07-161-1/+1
| | | | | | | | | | | Back in 2012 the project was renamed, see the release notes for v 0.105 [https://cgit.freedesktop.org/polkit/tree/NEWS#n754]. Let's update our documentation and comments to do the same. Referring to PolicyKit is confusing to users because at the time the polkit api changed too, and we support the new version. I updated NEWS too, since all the references to PolicyKit there were added after the rename. "PolicyKit" is unchanged in various URLs and method call names.
* meson: drop unused optionYu Watanabe2018-06-241-1/+0
| | | | Follow-up for add384dd4d2b96db6ace5ad9c52b1dd7553ebec2.
* meson: make DNS-over-TLS support optionalYu Watanabe2018-06-201-0/+2
| | | | | This adds dns-over-tls option to meson. If set to 'false', systemd-resolved is not linked with libgnutls.
* Drop my copyright headersZbigniew Jędrzejewski-Szmek2018-06-141-2/+0
| | | | | | | perl -i -0pe 's/\s*Copyright © .... Zbigniew Jędrzejewski.*?\n/\n/gms' man/*xml git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/(#\n)?# +Copyright © [0-9, -]+ Zbigniew Jędrzejewski.*?\n//gms' git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/\s*\/\*\*\*\s+Copyright © [0-9, -]+ Zbigniew Jędrzejewski[^\n]*?\s*\*\*\*\/\s*/\n\n/gms' git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/\s+Copyright © [0-9, -]+ Zbigniew Jędrzejewski[^\n]*//gms'
* tree-wide: beautify remaining copyright statementsLennart Poettering2018-06-141-1/+1
| | | | | | Let's unify an beautify our remaining copyright statements, with a unicode ©. This means our copyright statements are now always formatted the same way. Yay.
* resolve: rename PrivateDNS to DNSOverTLSIwan Timmer2018-06-141-2/+2
| | | PrivateDNS is not considered a good name for this option, so rename it to DNSOverTLS
* resolved: support for DNS-over-TLSIwan Timmer2018-06-111-0/+4
| | | | Add support for DNS-over-TLS using GnuTLS. To reduce latency also TLS False Start and TLS session resumption is supported.
* build-sys: Add option to link systemctl staticallyFelipe Sateler2018-05-311-0/+2
| | | | | | | | | | | | | | | | | 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.
* add new portable service frameworkLennart Poettering2018-05-241-0/+2
| | | | | | | | | | | 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.
* Turn VALGRIND variable into a meson configuration switchZbigniew Jędrzejewski-Szmek2018-05-171-0/+2
| | | | | | | | | | 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-05-101-2/+2
| | | | Array type option is supported since 0.44.0.
* meson: add support for building static libsystemd and libudevDavide Cavalca2018-05-081-0/+6
|
* tree-wide: drop license boilerplateZbigniew Jędrzejewski-Szmek2018-04-061-13/+0
| | | | | | | | | | 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.
* Merge pull request #8323 from xyproto/ok_colorZbigniew Jędrzejewski-Szmek2018-03-021-0/+8
|\ | | | | Make the color of the status OK configurable at build-time
| * meson: use dashes in colour namesZbigniew Jędrzejewski-Szmek2018-03-021-3/+3
| |
| * Add build-time option to change the color of the "OK" status textAlexander F Rødseth2018-03-021-0/+8
| |
* | meson: support both separate and merged sbin-bin directoriesZbigniew Jędrzejewski-Szmek2018-03-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-03-011-2/+2
|/ | | | | Also move the status from "features" to the paths section. This is more of an anti-feature.
* meson: add -Dmemory-accounting-default=true|falseZbigniew Jędrzejewski-Szmek2018-02-151-0/+2
| | | | | 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-02-021-0/+2
| | | SUSE is using a different docdir, so the path should be configurable
* Merge pull request #7881 from keszybz/pcreLennart Poettering2018-01-281-0/+2
|\ | | | | Add new --grep option to journalctl