summaryrefslogtreecommitdiff
path: root/meson.build
Commit message (Collapse)AuthorAgeFilesLines
* meson: bump version numbers for v245v245-rc1Zbigniew Jędrzejewski-Szmek2020-02-051-3/+3
|
* meson: update efi path detection to gnu-efi-3.0.11Zbigniew Jędrzejewski-Szmek2020-02-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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
* util: uid_t, gid_t, and pid_t must be 32bitYu Watanabe2020-02-021-3/+0
| | | | | We already have assert_cc(sizeof(uid_t) == sizeof(uint32_t)) or friends at various places.
* meson: fix feature listYu Watanabe2020-02-021-1/+1
|
* meson, man: do not install pam_systemd_home(8) when pam or homed is disabledYu Watanabe2020-02-011-0/+3
| | | | Fixes #14725.
* home: add pam_systemd_home.so PAM hookupLennart Poettering2020-01-281-0/+20
| | | | In a way fixes: https://bugs.freedesktop.org/show_bug.cgi?id=67474
* home: add homectl client toolLennart Poettering2020-01-281-0/+13
|
* home: add new systemd-homed service that can manage LUKS homesLennart Poettering2020-01-281-0/+60
| | | | Fixes more or less: https://bugs.freedesktop.org/show_bug.cgi?id=67474
* repart: add new systemd-repart toolLennart Poettering2020-01-201-0/+40
| | | | Fixes: #14052
* units: drop full paths for utilities in $PATHZbigniew Jędrzejewski-Szmek2020-01-201-1/+0
| | | | | | | This makes things a bit simpler and the build a bit faster, because we don't have to rewrite files to do the trivial substitution. @rootbindir@ is always in our internal $PATH that we use for non-absolute paths, so there should be no functional change.
* nss: hook up nss-systemd with userdb varlink bitsLennart Poettering2020-01-151-2/+7
| | | | | | | | | | | This changes nss-systemd to use the new varlink user/group APIs for looking up everything. (This also changes the factory /etc/nsswitch.conf line to use for hooking up nss-system to use glibc's [SUCCESS=merge] feature so that we can properly merge group membership lists). Fixes: #12492
* userdbd: add userdbctl tool as client for userdbdLennart Poettering2020-01-151-0/+9
|
* userdbd: add new service that can merge userdb queries from multiple clientsLennart Poettering2020-01-151-0/+24
|
* Revert "docs: rename HACKING → Hacking"Zbigniew Jędrzejewski-Szmek2020-01-151-1/+1
| | | | This reverts commit 8c5cd27dd155fbe71a6bf82096b8775c5ff453b8.
* docs: rename HACKING → HackingZbigniew Jędrzejewski-Szmek2020-01-151-1/+1
| | | | Let's see if this works at all.
* network, meson: allow statically linked buildRobert Scheck2020-01-081-4/+5
| | | | | | | | | | 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.
* cryptsetup: add native pkcs#11 support to cryptsetupLennart Poettering2019-12-091-2/+12
| | | | | | | | | This adds a new crypttab option for volumes "pkcs11-uri=" which takes a PKCS#11 URI. When used the key stored in the line's key file is decrypted with the private key the PKCS#11 URI indiciates. This means any smartcard that can store private RSA keys is usable for unlocking LUKS devices.
* shared: add pkcs11-util.[ch]Lennart Poettering2019-12-091-0/+13
|
* missing: add rt_sigqueueinfo() syscall definitionLennart Poettering2019-12-041-0/+4
| | | | | | | | This is not a new system call at all (since kernel 2.2), however it's not exposed in glibc (a wrapper is exposed however in sigqueue(), but it substantially simplifies the system call). Since we want a nice fallback for sending signals on non-pidfd systems for pidfd_send_signal() let's wrap rt_sigqueueinfo() since it takes the same siginfo_t parameter.
* missing: define new pidfd syscallsLennart Poettering2019-12-041-0/+8
|
* meson: bump version numbers for v244v244-rc1Zbigniew Jędrzejewski-Szmek2019-11-221-3/+3
|
* meson: add target to update the chromiumos rulesZbigniew Jędrzejewski-Szmek2019-11-151-0/+1
| | | | | | | | There is no change in the file right now, but the download seems to work OK. It's funny that the biggest company in the world cannot provide a download link in plain text.
* Merge pull request #14003 from keszybz/user-path-configurableZbigniew Jędrzejewski-Szmek2019-11-141-0/+11
|\ | | | | meson: make user $PATH configurable
| * meson: avoid ternary op in .format()Zbigniew Jędrzejewski-Szmek2019-11-131-2/+6
| | | | | | | | | | meson 0.49 can't parse that for some reason. I'm keeping this separate so it can be reverted easily when we bump required meson version.
| * meson: make user $PATH configurableZbigniew Jędrzejewski-Szmek2019-11-131-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | meson: apply our -Wno-* options also in c++ callsZbigniew Jędrzejewski-Szmek2019-11-121-15/+25
| | | | | | | | | | | | | | | | | | | | | | | | We compile some c++ code for tests. We would simply use the default options for those. When the previous commit raised the default warning level, we started getting warnings from c++ code. Let's add the most important options to the c++ command, so that we get a compilation without any warnings again. I don't think it makes sense to add *all* the options that we add for c to the c++ flags, because testing them takes quite a while, and the c++ compilations are for small amounts of code, mostly to check that the headers have compatible syntax.
* | meson: use warning_level=2 by defaultZbigniew Jędrzejewski-Szmek2019-11-121-1/+1
|/ | | | | | Let's bump up the warning level, and not add by -Wextra by hand. This is the approach recommended by meson. The idea is that all projects should be as similar as possible to make it easier for users to switch between projects.
* network: cleanup header inclusionYu Watanabe2019-10-301-1/+1
|
* resolved: require at least version 3.6.0 of GnuTLS for DNS-over-TLSIwan Timmer2019-10-291-1/+1
| | | Increase the required version to ensure TLS 1.3 is always supported when using GnuTLS for DNS-over-TLS and allow further changes to use recent API additions.
* meson: expand ternary in functions to if statementsAnita Zhang2019-10-261-3/+4
| | | | | | Per https://github.com/mesonbuild/meson/issues/5003, ternary doesn't always work as function args with older versions of meson. Expand out ternary statements to stay compatible with older versions (< 0.49).
* meson: allow WatchdogSec= in services to be configuredZbigniew Jędrzejewski-Szmek2019-10-251-1/+6
| | | | | | | | | | | | | | | | As discussed on systemd-devel [1], in Fedora we get lots of abrt reports about the watchdog firing [2], but 100% of them seem to be caused by resource starvation in the machine, and never actual deadlocks in the services being monitored. Killing the services not only does not improve anything, but it makes the resource starvation worse, because the service needs cycles to restart, and coredump processing is also fairly expensive. This adds a configuration option to allow the value to be changed. If the setting is not set, there is no change. My plan is to set it to some ridiculusly high value, maybe 1h, to catch cases where a service is actually hanging. [1] https://lists.freedesktop.org/archives/systemd-devel/2019-October/043618.html [2] https://bugzilla.redhat.com/show_bug.cgi?id=1300212
* Rename udev's hwdb/ to hwdb.d/Zbigniew Jędrzejewski-Szmek2019-10-101-2/+2
| | | | | As in the parent commit, this makes the name consistent with the rest of the source tree and the actuall installation path.
* Rename udev's rules/ to rules.d/Zbigniew Jędrzejewski-Szmek2019-10-101-1/+1
| | | | | | This change is only about the source tree. We have tmpfiles.d/, modprobe.d/, sysctl.d/, and sysusers.d/, but for historical reasons, rules/ didn't fit this pattern. We also *install* it as rules.d/. Let's rename to be consistent.
* rules: Add automatic suspend udev rulesMario Limonciello2019-10-041-0/+3
| | | | | | | | | | | | | | | | | | | The ChromeOS ecosystem has a large amount of testing, both automated and manual across devices including measurement of power regressions. It's safe to assume that any of these devices will handle USB auto-suspend appropriately. Use the script from ChromeOS https://chromium.googlesource.com/chromiumos/platform2/+/master/power_manager/udev/gen_autosuspend_rules.py to generate udev rules at build time. This script in systemd `tools/chromeos/gen_autosuspend_rules.py` should be kept in sync with the ChromeOS version of the script. Manually added autosuspend devices should be placed in the new template `rules/61-autosuspend-manual.rules` Suggested-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
* fix build with compilers with default stack-protector enabledNorbert Lange2019-10-031-0/+1
| | | | | | | | | | building systemd fails with a compiler that supports -fstack-protector but does not enable it by default. (will miss several __stack_chk_* symbols). fix this by also adding the switch during linking. Signed-off-by: Norbert Lange <nolange79@gmail.com>
* cryptsetup: bump minimum libcryptsetup version to v2.0.1Jay Strict2019-10-011-7/+1
| | | | | | | | | | libcryptsetup v2.0.1 introduced new API calls, supporting 64 bit wide integers for `keyfile_offset`. This change invokes the new function call, gets rid of the warning that was added in #7689, and removes redundant #ifdefery and constant definitions. See https://gitlab.com/cryptsetup/cryptsetup/issues/359. Fixes #7677.
* netlink: move local-addresses.[ch] to src/sharedLennart Poettering2019-07-241-0/+1
| | | | | | | This code is not part of the public API of sd-netlink, nor used by it internally and hence should not be in the sd-netlink directory. Also, move the test case for it to src/test/.
* meson: bump version for package and .soLennart Poettering2019-07-231-3/+3
|
* timesyncd: add ntp-units.d/ entry for timesyncZbigniew Jędrzejewski-Szmek2019-07-221-0/+1
| | | | | | | Priority is 80. At least in Fedora, chrony uses 50, and ntpd 60. timesyncd has lower priority, because if people install those other packages, it's most likely on purpose. timesyncd is always installed and provides less functionality.
* meson: drop redundant lineYu Watanabe2019-07-221-2/+0
| | | | Found by @mattiasb.
* pstore: Tool to archive contents of pstoreEric DeVolder2019-07-191-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* network-generator: introduce new tool systemd-network-generatorYu Watanabe2019-07-141-0/+8
| | | | | The new tool parses dracut's command line options and generates relevant .network, .netdev, and .link files.
* Merge pull request #12755 from keszybz/short-identifiersLennart Poettering2019-07-111-0/+3
|\ | | | | Allow using unit names in status messages
| * 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.
* | Merge pull request #12926 from keszybz/urlify-logsLennart Poettering2019-07-111-0/+4
|\ \ | | | | | | Urlify CONFIG_FILE and improve SYSTEMD_LOG_LOCATION
| * | basic/log: add a define for path relative to source rootZbigniew Jędrzejewski-Szmek2019-07-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using build/ directory inside of the source directory: __FILE__: ../src/test/test-log.c RELATIVE_SOURCE_PATH: .. PROJECT_FILE: src/test/test-log.c When using a build directory outside of the source directory: __FILE__: ../../../home/zbyszek/src/systemd-work/src/test/test-log.c RELATIVE_SOURCE_PATH: ../../../home/zbyszek/src/systemd-work PROJECT_FILE: src/test/test-log.c
* | | boot,shared: share the definitions of EFI_LOADER_FEATURE macrosZbigniew Jędrzejewski-Szmek2019-07-101-0/+1
| |/ |/| | | | | | | | | | | | | | | This means the the code needs to be kept compatible in the shared header, but I think that still nicer than having two places to declare the same things. I added src/boot to -I, so that efi/foo.h needs to be used. This reduces the potential for accidentally including the wrong header.
* | meson: drop varlogdir variableZbigniew Jędrzejewski-Szmek2019-07-041-2/+0
| | | | | | | | | | | | | | | | It was only used for exactly one thing: to substitute in the text in /var/log/README. But it's use there was completely wrong, because the text talks about "missing" log files from syslog, so even if we configured systemd to log to a different directory, the "missing" log files would still be "missing" from the old location.
* | debug-generator: enable custom systemd.debug_shell ttyJan Synacek2019-07-021-0/+1
|/