Merge #188194: knot-resolver on darwin: patch library loading

and run more tests
This commit is contained in:
Vladimír Čunát 2022-08-28 15:18:41 +02:00
commit 7f6004d021
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA

View File

@ -1,4 +1,5 @@
{ lib, stdenv, fetchurl
, fetchpatch
# native deps.
, runCommand, pkg-config, meson, ninja, makeWrapper
# build+runtime deps.
@ -26,6 +27,19 @@ unwrapped = stdenv.mkDerivation rec {
outputs = [ "out" "dev" ];
patches = [
(fetchpatch {
name = "fix-config-tests-on-darwin.patch";
url = "https://gitlab.nic.cz/knot/knot-resolver/-/commit/48ad9d436cf80f58c107774c313a561d852148a0.diff";
sha256 = "CEX1XkeYLUSe31xUhNdMRMl1VUXtKFCs5noNJaqL5x0=";
})
(fetchpatch {
name = "fix-config-tests-on-aarch64-darwin.patch";
url = "https://gitlab.nic.cz/knot/knot-resolver/-/commit/adaac913c50a5db2f226a081ddc419b0d56d1757.diff";
sha256 = "1LrL74luzPTyJ7VBi7fskDga4lYAh7cSUmDcd1BNO78=";
})
];
# Path fixups for the NixOS service.
postPatch = ''
patch meson.build <<EOF
@ -39,6 +53,13 @@ unwrapped = stdenv.mkDerivation rec {
# ExecStart can't be overwritten in overrides.
# We need that to use wrapped executable and correct config file.
sed '/^ExecStart=/d' -i systemd/kresd@.service.in
# On x86_64-darwin loading by soname fails to find the libs, surprisingly.
# Even though they should already be loaded and they're in RPATH, too.
for f in daemon/lua/{kres,zonefile}.lua; do
substituteInPlace "$f" \
--replace "ffi.load(" "ffi.load('${lib.getLib knot-dns}/lib/' .. "
done
''
# some tests have issues with network sandboxing, apparently
+ optionalString doInstallCheck ''
@ -67,7 +88,7 @@ unwrapped = stdenv.mkDerivation rec {
"--default-library=static" # not used by anyone
]
++ optional doInstallCheck "-Dunit_tests=enabled"
++ optional (doInstallCheck && !stdenv.isDarwin) "-Dconfig_tests=enabled"
++ optional doInstallCheck "-Dconfig_tests=enabled"
++ optional stdenv.isLinux "-Dsystemd_files=enabled" # used by NixOS service
#"-Dextra_tests=enabled" # not suitable as in-distro tests; many deps, too.
;