|
|
|
@ -2,41 +2,57 @@ |
|
|
|
|
, lib |
|
|
|
|
, fetchFromGitHub |
|
|
|
|
, rustPlatform |
|
|
|
|
, openssl |
|
|
|
|
, pkg-config |
|
|
|
|
, llvmPackages |
|
|
|
|
, openssl |
|
|
|
|
, protobuf |
|
|
|
|
, rdkafka |
|
|
|
|
, oniguruma |
|
|
|
|
, zstd |
|
|
|
|
, Security |
|
|
|
|
, libiconv |
|
|
|
|
, rdkafka |
|
|
|
|
, tzdata |
|
|
|
|
, coreutils |
|
|
|
|
, CoreServices |
|
|
|
|
, features ? ([ "jemallocator" "rdkafka" "rdkafka/dynamic_linking" ] |
|
|
|
|
++ (lib.optional stdenv.targetPlatform.isUnix "unix") |
|
|
|
|
++ [ "sinks" "sources" "transforms" ]) |
|
|
|
|
, tzdata |
|
|
|
|
# kafka is optional but one of the most used features |
|
|
|
|
, enableKafka ? true |
|
|
|
|
# TODO investigate adding "api" "api-client" "vrl-cli" and various "vendor-*" |
|
|
|
|
# "disk-buffer" is using leveldb TODO: investigate how useful |
|
|
|
|
# it would be, perhaps only for massive scale? |
|
|
|
|
, features ? ([ "sinks" "sources" "transforms" ] |
|
|
|
|
# the second feature flag is passed to the rdkafka dependency |
|
|
|
|
# building on linux fails without this feature flag (both x86_64 and AArch64) |
|
|
|
|
++ (lib.optionals enableKafka [ "rdkafka-plain" "rdkafka/dynamic_linking" ]) |
|
|
|
|
++ (lib.optional stdenv.targetPlatform.isUnix "unix")) |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
rustPlatform.buildRustPackage rec { |
|
|
|
|
pname = "vector"; |
|
|
|
|
version = "0.13.1"; |
|
|
|
|
version = "0.14.0"; |
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "timberio"; |
|
|
|
|
repo = pname; |
|
|
|
|
rev = "v${version}"; |
|
|
|
|
sha256 = "sha256-ige0138alZ0KAmPakPVmDVydz5qco6m0xK7AEzScyXc="; |
|
|
|
|
sha256 = "sha256-wtihrR19jMJ7Kgvy6XBzOUrC/WKNVl2MVx4lWgXYlvg="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
cargoSha256 = "sha256-oK4M6zTfI0QVW9kQTgpP/vSxFt2VlRABmKvQ4aAqC74="; |
|
|
|
|
cargoSha256 = "sha256-VYIzAqh5Xxmn1koxhh+UDb2G3WS2UVXffuBY7h5Kr7A="; |
|
|
|
|
nativeBuildInputs = [ pkg-config ]; |
|
|
|
|
buildInputs = [ openssl protobuf rdkafka ] |
|
|
|
|
buildInputs = [ oniguruma openssl protobuf rdkafka zstd ] |
|
|
|
|
++ lib.optional stdenv.isDarwin [ Security libiconv coreutils CoreServices ]; |
|
|
|
|
|
|
|
|
|
# needed for internal protobuf c wrapper library |
|
|
|
|
PROTOC = "${protobuf}/bin/protoc"; |
|
|
|
|
PROTOC_INCLUDE = "${protobuf}/include"; |
|
|
|
|
RUSTONIG_SYSTEM_LIBONIG = true; |
|
|
|
|
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; |
|
|
|
|
|
|
|
|
|
cargoBuildFlags = [ "--no-default-features" "--features" (lib.concatStringsSep "," features) ]; |
|
|
|
|
# TODO investigate compilation failure for tests |
|
|
|
|
# dev dependency includes httpmock which depends on iashc which depends on curl-sys with http2 feature enabled |
|
|
|
|
# compilation fails because of a missing http2 include |
|
|
|
|
doCheck = !stdenv.isDarwin; |
|
|
|
|
checkPhase = "TZDIR=${tzdata}/share/zoneinfo cargo test --no-default-features --features ${lib.concatStringsSep "," features} -- --test-threads 1"; |
|
|
|
|
|
|
|
|
|
# recent overhauls of DNS support in 0.9 mean that we try to resolve |
|
|
|
|