summaryrefslogtreecommitdiff
path: root/meson.build
Commit message (Collapse)AuthorAgeFilesLines
* networkd: Add support for ERSPAN tunnelSusant Sahani2018-11-271-0/+1
| | | | | | | | | | | | | | | | | Please see: https://patchwork.ozlabs.org/patch/800327/ ``` [NetDev] Name=erspan-test Kind=erspan [Tunnel] Independent=true ERSPANIndex=123 Local = 172.16.1.200 Remote = 172.16.1.100 Key=101 SerializeTunneledPackets=true ```
* meson: also add option for debugging siphashYu Watanabe2018-11-231-0/+5
|
* meson: add option for debugging udevYu Watanabe2018-11-231-0/+5
|
* Move various files that don't need to be in basic/ to shared/Zbigniew Jędrzejewski-Szmek2018-11-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This doesn't have much effect on the final build, because we link libbasic.a into libsystemd-shared.so, so in the end, all the object built from basic/ end up in libsystemd-shared. And when the static library is linked into binaries, any objects that are included in it but are not used are trimmed. Hence, the size of output artifacts doesn't change: $ du -sb /var/tmp/inst* 54181861 /var/tmp/inst1 (old) 54207441 /var/tmp/inst1s (old split-usr) 54182477 /var/tmp/inst2 (new) 54208041 /var/tmp/inst2s (new split-usr) (The negligible change in size is because libsystemd-shared.so is bigger by a few hundred bytes. I guess it's because symbols are named differently or something like that.) The effect is on the build process, in particular partial builds. This change effectively moves the requirements on some build steps toward the leaves of the dependency tree. Two effects: - when building items that do not depend on libsystemd-shared, we build less stuff for libbasic.a (which wouldn't be used anyway, so it's a net win). - when building items that do depend on libshared, we reduce libbasic.a as a synchronization point, possibly allowing better parallelism. Method: 1. copy list of .h files from src/basic/meson.build to /tmp/basic 2. $ for i in $(grep '.h$' /tmp/basic); do echo $i; git --no-pager grep "include \"$i\"" src/basic/ 'src/lib*' 'src/nss-*' 'src/journal/sd-journal.c' |grep -v "${i%.h}.c";echo ;done | less
* missing: add ETHTOOL_LINK_MODE_* and struct ethtool_link_settingsYu Watanabe2018-11-181-26/+32
|
* sd-event: split definition of event_source to event-source.hYu Watanabe2018-11-161-0/+1
|
* meson: fix building with -Ddns-over-tls=falseMichael Olbrich2018-11-111-1/+3
| | | | | | | Assigning multiple variables in one line is no valid meson syntax. Without this running meson with -Ddns-over-tls=false fails with: meson.build:1191:8: ERROR: Tried to assign an invalid value to variable.
* meson: don't build fuzzers if tests are disabledMichael Olbrich2018-11-111-0/+2
| | | | | | | Fuzzers are just special tests anyways and without this, building with '-Dtests=false' fails with: .../src/fuzz/fuzz-main.c:20: undefined reference to `test_setup_logging'
* networkd: add missing bonding options (#10542)Tobias Jungel2018-11-021-1/+1
| | | | | | | | | Add support for bonding options system prio, port key and actor system mac. These options exist in the linux kernel since 4.2 (torvalds/linux@171a42c38c6e1) Details: https://www.kernel.org/doc/Documentation/networking/bonding.txt
* Merge pull request #10573 from faheel/masterLennart Poettering2018-10-311-2/+2
|\ | | | | Convert remaining docs to Markdown
| * docs: Update links to updated docsFaheel Ahmad2018-10-301-2/+2
| |
* | Drop support for lz4 < 1.3.0Zbigniew Jędrzejewski-Szmek2018-10-291-0/+1
|/ | | | | | lz4-r130 was released on May 29th, 2015. Let's drop the work-around for older versions. In particular, we won't test any new code against those ancient releases, so we shouldn't pretend they are supported.
* missing: support old linux/fou.hYu Watanabe2018-10-211-1/+1
| | | | | | | | | linux/fou.h was introduced in 3.18. FOU_ATTR_REMCSUM_NOPARTIAL was added in 4.0. FOU_CMD_GET was added in 4.1. Follow-up for 53cb501a1314740fa777f145067cefccda954487. Fixes #10474.
* units: add simple boot check unitLennart Poettering2018-10-191-0/+9
| | | | | | | | | This is might be useful in some cases, but it's primarily an example for a boot check service that can be plugged before boot-complete.target. It's disabled by default. All it does is check whether the failed unit count is zero
* add "systemd-bless-boot-generator"Lennart Poettering2018-10-191-0/+8
| | | | | This generator automatically pulls in "systemd-bless-boot.service" if a boot with boot counting is detected.
* add new systemd-bless-boot.service that marks boots as successfulLennart Poettering2018-10-191-0/+9
| | | | | | This is the counterpiece to the boot counting implemented in systemd-boot: if a boot is detected as successful we mark drop the counter again from the booted snippet or kernel image.
* meson: simplify definition of MEMORY_ACCOUNTING_DEFAULTZbigniew Jędrzejewski-Szmek2018-10-171-1/+1
| | | | | Let's just use the simplest form, it doesn't really matter how the define looks after preprocessing.
* meson: define @HIGH_RLIMIT_NOFILE@ and use it everywhereZbigniew Jędrzejewski-Szmek2018-10-171-0/+2
|
* main: bump fs.nr_open + fs.max-file to their largest possible valuesLennart Poettering2018-10-171-0/+3
| | | | | | | | | | 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.
* logind: change user-runtime-dir to query runtime dir size from logind via ↵Lennart Poettering2018-10-131-8/+8
| | | | | | | | | | | | | | | | the bus I think this is a slightly cleaner approach than parsing the configuration file at multiple places, as this way there's only a single reload cycle for logind.conf, and that's systemd-logind.service's runtime. This means that logind and dbus become a requirement of user-runtime-dir, but given that XDG_RUNTIME_DIR is not set anyway without logind and dbus around this isn't really any limitation. This also simplifies linking a bit as this means user-runtime-dir doesn't have to link against any code of logind itself.
* meson: fix '-Dstatic-libsystemd=true' or '-Dstatic-libudev=true'Yu Watanabe2018-10-121-0/+1
| | | | Follow-up for a5d8835c78112206bbf0812dd4cb471f803bfe88.
* Revert "meson: use c_args in generator scripts (#10289)"Zbigniew Jędrzejewski-Szmek2018-10-111-1/+1
| | | | | | | | | | | | | | | | | | | This reverts commit 56f56d5ad856d9bd1070693490b210e0a0ccde92. This broke the compilation for coverity under travis. Our build script does something like this: $ CFLAGS='-D_Float128=long\ double -D_Float64=double -D_Float64x=long\ double -D_Float32=float -D_Float32x=double' meson cov-build -Dman=false $ ninja -C build ... [pid 27096] execve("/usr/bin/cc", ["/usr/bin/cc", "-D_Float128=long", "double", "-D_Float64=double", "-D_Float64x=long", "double", "-D_Float32=float", "-D_Float32x=double", "-E", "-dM", "-include", "linux/capability.h", "-include", "config.h", "-include", "../src/basic/missing.h", "-"], 0x55ab75ea4e80 /* 91 vars */) = 0 cc: error: double: No such file or directory cc: error: double: No such file or directory [pid 27096] +++ exited with 1 +++ I'm sure this could be fixed somehow, but since the original motivation for 56f56d5ad856d9bd1070693490b210e0a0ccde92 wasn't very strong, let's just revert it as this seems to be the simplest solution.
* Merge pull request #10334 from keszybz/nomempoolLennart Poettering2018-10-111-4/+9
|\ | | | | Use mempool only in progs linked to libsystemd-shared.so
| * meson: use vars we already have defined in statusZbigniew Jędrzejewski-Szmek2018-10-111-2/+2
| |
| * mempool: only enable mempool use when linked to libsystemd-shared.soZbigniew Jędrzejewski-Szmek2018-10-111-0/+3
| | | | | | | | | | | | | | | | | | | | | | Mempool use is enabled or disabled based on the mempool_use_allowed symbol that is linked in. Should fix assert crashes in external programs caused by #9792. Replaces #10286. v2: - use two different source files instead of a gcc constructor
| * meson: remove old commentZbigniew Jędrzejewski-Szmek2018-10-111-3/+0
| | | | | | | | | | | | The linked page is gone, and I can't quite remember what the warning was about. Something about recursive copying... Everything seems to work.
| * meson: drop workaroundZbigniew Jędrzejewski-Szmek2018-10-111-1/+0
| | | | | | | | It was added way back, and seems to work fine now without it.
| * meson: include more build settings in status outputLennart Poettering2018-10-091-0/+6
| |
* | meson: c++ is required for the fuzzer buildsZbigniew Jędrzejewski-Szmek2018-10-101-9/+9
| | | | | | | | | | | | | | The configuration would fail with an error about cpp being an unknown language anyway, but it's nicer to fail early and explicitly. https://github.com/systemd/systemd/pull/10339#issuecomment-428279175
* | meson: rename cpp_cmd to cxx_cmdZbigniew Jędrzejewski-Szmek2018-10-101-2/+2
| | | | | | | | | | cpp is a really bad alias for c++ because it's also the name of the preprocessor. Let's rename the variable.
* | meson: we cannot call get_compiler('cpp') if we didn't "add" itZbigniew Jędrzejewski-Szmek2018-10-091-0/+3
| | | | | | | | Follow-up for f6d783ac3d145f3f3ffc2023d4ad90f76cf7fe34.
* | portable: move portablectl to /usr/binLennart Poettering2018-10-081-1/+1
| | | | | | | | | | | | Let's declare this a supported API. After all feedback I got at conferences I think we are good to consider this stable now and make it official API.
* | meson: use c_args in generator scripts (#10289)Yu Watanabe2018-10-081-1/+1
|/ | | May be useful in some cases.
* Merge pull request #9898 from keszybz/id128Lennart Poettering2018-10-021-0/+8
|\ | | | | Add a new tool 'systemd-id128'
| * systemd-id128: a new tool to print machine/boot/invocation/app-specific idsZbigniew Jędrzejewski-Szmek2018-10-021-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The raison d'etre for this program is printing machine-app-specific IDs. We provide a library function for that, but not a convenient API. We can hardly ask people to quickly hack their own C programs or call libsystemd through CFFI in python or another scripting language if they just want to print an ID. Verb 'new' was already available as 'journalctl --new-id128', but this makes it more discoverable. v2: - rename binary to systemd-id128 - make --app-specific= into a switch that applies to boot-id and machine-id
* | Merge pull request #10246 from keszybz/fuzz-bussLennart Poettering2018-10-021-15/+15
|\ \ | |/ |/| Bus fuzzer
| * meson: treat all fuzz cases as unit testsZbigniew Jędrzejewski-Szmek2018-10-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 318/365 fuzz-bus-message:crash-26bba7182dedc8848939931d9fcefcb7922f2e56:address OK 0.03 s 319/365 fuzz-bus-message:crash-29ed3c202e0ffade3cad42c8bbeb6cc68a21eb8e:address OK 0.03 s 320/365 fuzz-bus-message:crash-b88ad9ecf4aacf4a0caca5b5543953265367f084:address OK 0.03 s 321/365 fuzz-bus-message:crash-c1b37b4729b42c0c05b23cba4eed5d8102498a1e:address OK 0.03 s 322/365 fuzz-bus-message:crash-d8f3941c74219b4c03532c9b244d5ea539c61af5:address OK 0.03 s 323/365 fuzz-bus-message:crash-e1b811da5ca494e494b77c6bd8e1c2f2989425c5:address OK 0.03 s 324/365 fuzz-bus-message:leak-c09c0e2256d43bc5e2d02748c8d8760e7bc25d20:address OK 0.04 s 325/365 fuzz-bus-message:message1:address OK 0.03 s 326/365 fuzz-bus-message:timeout-08ee8f6446a4064db064e8e0b3d220147f7d0b5b:address OK 0.03 s 327/365 fuzz-dhcp-server:discover-existing:address OK 0.04 s 328/365 fuzz-dhcp-server:discover-new:address OK 0.03 s 329/365 fuzz-dhcp-server:release:address OK 0.04 s 330/365 fuzz-dhcp-server:request-existing:address OK 0.03 s 331/365 fuzz-dhcp-server:request-new:address OK 0.03 s 332/365 fuzz-dhcp-server:request-reboot:address OK 0.03 s 333/365 fuzz-dhcp-server:request-renew:address OK 0.03 s 334/365 fuzz-dns-packet:issue-7888:address OK 0.03 s 335/365 fuzz-dns-packet:oss-fuzz-5465:address OK 0.03 s 336/365 fuzz-journal-remote:crash-5a8f03d4c3a46fcded39527084f437e8e4b54b76:address OK 0.06 s 337/365 fuzz-journal-remote:crash-96dee870ea66d03e89ac321eee28ea63a9b9aa45:address OK 0.04 s 338/365 fuzz-journal-remote:invalid-ts.txt:address OK 0.04 s 339/365 fuzz-journal-remote:oss-fuzz-8659:address OK 0.06 s 340/365 fuzz-journal-remote:oss-fuzz-8686:address OK 0.04 s 341/365 fuzz-journal-remote:sample.txt:address OK 0.07 s 342/365 fuzz-unit-file:directives.service:address OK 0.03 s 343/365 fuzz-unit-file:empty.scope:address OK 0.04 s 344/365 fuzz-unit-file:machine.slice:address OK 0.03 s 345/365 fuzz-unit-file:oss-fuzz-6884:address OK 0.05 s 346/365 fuzz-unit-file:oss-fuzz-6885:address OK 0.03 s 347/365 fuzz-unit-file:oss-fuzz-6886:address OK 0.04 s 348/365 fuzz-unit-file:oss-fuzz-6892:address OK 0.03 s 349/365 fuzz-unit-file:oss-fuzz-6897:address OK 0.05 s 350/365 fuzz-unit-file:oss-fuzz-6897-evverx:address OK 0.04 s 351/365 fuzz-unit-file:oss-fuzz-6908:address OK 0.05 s 352/365 fuzz-unit-file:oss-fuzz-6917:address OK 0.06 s 353/365 fuzz-unit-file:oss-fuzz-6977:address OK 0.08 s 354/365 fuzz-unit-file:oss-fuzz-6977-unminimized:address OK 0.10 s 355/365 fuzz-unit-file:oss-fuzz-7004:address OK 0.03 s 356/365 fuzz-unit-file:oss-fuzz-8064:address OK 0.03 s 357/365 fuzz-unit-file:oss-fuzz-8827:address OK 0.50 s 358/365 fuzz-unit-file:proc-sys-fs-binfmt_misc.automount:address OK 0.03 s 359/365 fuzz-unit-file:syslog.socket:address OK 0.03 s 360/365 fuzz-unit-file:systemd-ask-password-console.path:address OK 0.03 s 361/365 fuzz-unit-file:systemd-machined.service:address OK 0.03 s 362/365 fuzz-unit-file:systemd-resolved.service:address OK 0.03 s 363/365 fuzz-unit-file:systemd-tmpfiles-clean.timer:address OK 0.03 s 364/365 fuzz-unit-file:timers.target:address OK 0.03 s 365/365 fuzz-unit-file:var-lib-machines.mount:address OK 0.04 s This gives us slightly nicer coverage in the normal test run. When in a git repo, git ls-files is used to get a list of files known to git. This mirrors what update-man-rules does for man files. Only looking at files known to git makes it easier to not forget to commit the test file to git, and also makes bisecting easier if some files are left in repo. When outside of a git repo, we expect to be unpacked from a tarball, so just using all files reported by ls is OK.
| * meson: use .source_root() in more placesZbigniew Jędrzejewski-Szmek2018-10-021-8/+8
| | | | | | | | | | | | In the main meson.build file, .source_root() and .current_source_dir() are equivalent, but it seems more appropriate to use .source_root() when we are appending a path which is by design relative to repo root.
| * 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: drop duplicated conditionZbigniew Jędrzejewski-Szmek2018-10-021-4/+4
| | | | | | | | The generic check suffices for those four.
| * fuzz: unify the "fuzz-regressions" directory with the main corpusZbigniew Jędrzejewski-Szmek2018-10-021-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There isn't really much need to keep them separate. Anything which is a good corpus entry can be used as a smoke test, and anything which which is a regression test can just as well be inserted into the corpus. The only functional difference from this patch (apart from different paths in output) is that the regression tests are now zipped together with the rest of the corpus. $ meson configure build -Dslow-tests=true && ninja -C build test ... 307/325 fuzz-dns-packet:issue-7888:address OK 0.06 s 308/325 fuzz-dns-packet:oss-fuzz-5465:address OK 0.04 s 309/325 fuzz-journal-remote:crash-5a8f03d4c3a46fcded39527084f437e8e4b54b76:address OK 0.07 s 310/325 fuzz-journal-remote:crash-96dee870ea66d03e89ac321eee28ea63a9b9aa45:address OK 0.05 s 311/325 fuzz-journal-remote:oss-fuzz-8659:address OK 0.05 s 312/325 fuzz-journal-remote:oss-fuzz-8686:address OK 0.07 s 313/325 fuzz-unit-file:oss-fuzz-6884:address OK 0.06 s 314/325 fuzz-unit-file:oss-fuzz-6885:address OK 0.05 s 315/325 fuzz-unit-file:oss-fuzz-6886:address OK 0.05 s 316/325 fuzz-unit-file:oss-fuzz-6892:address OK 0.05 s 317/325 fuzz-unit-file:oss-fuzz-6897:address OK 0.05 s 318/325 fuzz-unit-file:oss-fuzz-6897-evverx:address OK 0.06 s 319/325 fuzz-unit-file:oss-fuzz-6908:address OK 0.07 s 320/325 fuzz-unit-file:oss-fuzz-6917:address OK 0.07 s 321/325 fuzz-unit-file:oss-fuzz-6977:address OK 0.13 s 322/325 fuzz-unit-file:oss-fuzz-6977-unminimized:address OK 0.12 s 323/325 fuzz-unit-file:oss-fuzz-7004:address OK 0.05 s 324/325 fuzz-unit-file:oss-fuzz-8064:address OK 0.05 s 325/325 fuzz-unit-file:oss-fuzz-8827:address OK 0.52 s
* | docs: add a simple, auto-generated index.mdLennart Poettering2018-10-021-0/+4
|/ | | | This is useful for the github pages feature
* Make bzip2 an optional dependency for systemd-importdThiago Macieira2018-09-251-1/+0
| | | | | | Yes, there are still a lot of users of bzip2, but it's fallen out of favour after LZMA/xz, which can compress a lot more and often decompresses faster than bzip2 too.
* meson: drop some unneeded parensZbigniew Jędrzejewski-Szmek2018-09-131-6/+6
|
* meson: always allow compilation of tests binariesZbigniew Jędrzejewski-Szmek2018-09-131-10/+8
|
* meson: do not build tests by default when '-Dtests=false'Yu Watanabe2018-09-131-3/+6
| | | | | [zj: it is still possible to build tests explicitly by calling ninja -C build test-name. This way we have full flexibility.]
* meson: disable _all_ tests when -Dtests=falseZbigniew Jędrzejewski-Szmek2018-09-131-17/+31
| | | | | | Back in 08318a2c5acb3d0e4243c36461e69a3e45482441, value "false" was enabled for '-Dtests=', but various tests were not conditionalized properly. So even with -Dtests=false -Dslow-tests=false we'd run 120 tests. Let's make this consistent.
* meson: disable "slow tests" too when tests are generally disabledZbigniew Jędrzejewski-Szmek2018-09-131-4/+5
| | | | | | | We would have a strange situation where after setting -Dslow-tests=true -Dtests=false we'd get mostly the slow tests (plus some other ones which I'll fix in subsequent commit). Let's simplify things by making -Dtests=false just disable those tests too.
* test: use ${builddir}/systemd-runtest.env for $SYSTEMD_CATALOG_DIRFilipe Brandenburger2018-09-121-2/+2
| | | | | | | | | | | | | This makes it so that tests no longer need to know the absolute paths to the source and build dirs, instead using the systemd-runtest.env file to get these paths when running from the build tree. Confirmed that test-catalog works on `ninja test`, when called standalone and also when the environment file is not present, in which case it will use the installed location under /usr/lib/systemd/catalog. The location can now also be overridden for this test by setting the $SYSTEMD_CATALOG_DIR environment variable.
* test: use ${builddir}/systemd-runtest.env to set $SYSTEMD_TEST_DATAFilipe Brandenburger2018-09-121-1/+9
| | | | | | | | | | | | | | | | | | | | | This simplifies get_testdata_dir() to simply checking for an environment variable, with an additional function to locate a systemd-runtest.env file in the same directory as the test binary and reading environment variable assignments from that file if it exists. This makes it possible to: - Run `ninja test` from the build dir and have it use ${srcdir}/test for test unit definitions. - Run a test directly, such as `build/test-execute` and have it locate them correctly. - Run installed tests (from systemd-tests package) and locate the test units in the installed location (/usr/lib/systemd/tests/testdata), in which case the absence of the systemd-runtest.env file will have get_testdata_dir() use the installed location hardcoded into the binaries. Explicit setting of $SYSTEMD_TEST_DATA still overrides the contents of systemd-runtest.env.