91 lines
3 KiB
Nix
91 lines
3 KiB
Nix
{ stdenv
|
|
, lib
|
|
, fetchFromGitHub
|
|
, rustPlatform
|
|
, nix-update-script
|
|
, protobuf
|
|
, rust-jemalloc-sys
|
|
, Security
|
|
}:
|
|
|
|
let
|
|
pname = "quickwit";
|
|
version = "0.6.4";
|
|
in
|
|
rustPlatform.buildRustPackage rec {
|
|
inherit pname version;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "quickwit-oss";
|
|
repo = pname;
|
|
rev = "v${version}";
|
|
hash = "sha256-stlm3oDMQVoMza3s4JApynXbzhrarfXw3uAxGMZQJqs=";
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace ./quickwit-ingest/build.rs \
|
|
--replace '&[]' '&["."]'
|
|
substituteInPlace ./quickwit-codegen/example/build.rs \
|
|
--replace '&[]' '&["."]'
|
|
substituteInPlace ./quickwit-proto/build.rs \
|
|
--replace '&[]' '&["."]'
|
|
'';
|
|
|
|
sourceRoot = "${src.name}/quickwit";
|
|
|
|
buildInputs = [
|
|
rust-jemalloc-sys
|
|
] ++ lib.optionals stdenv.isDarwin [ Security ];
|
|
|
|
cargoLock = {
|
|
lockFile = ./Cargo.lock;
|
|
outputHashes = {
|
|
"chitchat-0.5.0" = "sha256-gGWMzTzQNb9JXSbPIanMJpEKhKen1KsIrWQz6wvypDY=";
|
|
"ownedbytes-0.5.0" = "sha256-ZuWwj5EzDm4YOUU/MhmR7CBOHM444ljBFSkC+wLBia4=";
|
|
"path-0.1.0" = "sha256-f+Iix+YuKy45zoQXH7ctzANaL96s7HNUBOhcM1ZV0Ko=";
|
|
"pulsar-5.0.2" = "sha256-j7wpsAro6x4fk3pvSL4fxLkddJFq8duZ7jDj0Edf3YQ=";
|
|
"sasl2-sys-0.1.20+2.1.28" = "sha256-u4BsfmTDFxuY3i1amLCsr7MDv356YPThMHclura0Sxs=";
|
|
"whichlang-0.1.0" = "sha256-7AvLGjtWHjG0TnZdg9p5D+O0H19uo2sqPxJMn6mOU0k=";
|
|
};
|
|
};
|
|
|
|
# needed for internal protobuf c wrapper library
|
|
PROTOC = "${protobuf}/bin/protoc";
|
|
PROTOC_INCLUDE = "${protobuf}/include";
|
|
|
|
passthru.updateScript = nix-update-script { };
|
|
|
|
checkFlags = [
|
|
# tries to make a network access
|
|
"--skip=test_all_local_index"
|
|
"--skip=test_cmd_create"
|
|
"--skip=test_cmd_create_no_index_uri"
|
|
"--skip=test_cmd_search_aggregation"
|
|
"--skip=test_cmd_search_with_snippets"
|
|
"--skip=test_delete_index_cli"
|
|
"--skip=test_delete_index_cli_dry_run"
|
|
"--skip=test_ingest_docs_cli"
|
|
"--skip=test_ingest_docs_cli_keep_cache"
|
|
"--skip=test_search_index_cli"
|
|
"--skip=test_garbage_collect_cli_no_grace"
|
|
"--skip=actors::indexing_service::tests::test_indexing_service_spawn_observe_detach"
|
|
"--skip=object_storage::s3_compatible_storage::tests::test_s3_compatible_storage_relative_path"
|
|
# flaky test
|
|
"--skip=actors::indexer::tests::test_indexer_triggers_commit_on_drained_mailbox"
|
|
"--skip=actors::indexer::tests::test_indexer_partitioning"
|
|
"--skip=actors::indexing_pipeline::tests::test_merge_pipeline_does_not_stop_on_indexing_pipeline_failure"
|
|
"--skip=actors::indexer::tests::test_indexer_triggers_commit_on_target_num_docs"
|
|
"--skip=actors::packager::tests::test_packager_simple"
|
|
# fail on darwin for some reason
|
|
"--skip=io::tests::test_controlled_writer_limited_async"
|
|
"--skip=io::tests::test_controlled_writer_limited_sync"
|
|
];
|
|
|
|
meta = with lib; {
|
|
description = "Sub-second search & analytics engine on cloud storage";
|
|
homepage = "https://quickwit.io/";
|
|
license = licenses.agpl3Only;
|
|
maintainers = with maintainers; [ happysalada ];
|
|
platforms = platforms.all;
|
|
};
|
|
}
|