20 yarnOfflineCache = fetchYarnDeps {
21 yarnLock = "${src}/quickwit/quickwit-ui/yarn.lock";
22 hash = "sha256-HppK9ycUxCOIagvzCmE+VfcmfMQfPIC8WeWM6WbA6fQ=";
25 src = fetchFromGitHub {
26 owner = "quickwit-oss";
29 hash = "sha256-OrCO0mCFmhYBdpr4Gps56KJJ37uuJpV6ZJHWspOScyw=";
32 quickwit-ui = stdenv.mkDerivation {
34 src = "${src}/quickwit/quickwit-ui";
43 export HOME=$(mktemp -d)
47 yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
48 fixup-yarn-lock yarn.lock
50 yarn install --offline \
51 --frozen-lockfile --no-progress \
52 --ignore-engines --ignore-scripts
64 rustPlatform.buildRustPackage rec {
65 inherit pname version src;
68 substituteInPlace ./quickwit-ingest/build.rs \
69 --replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
70 substituteInPlace ./quickwit-codegen/example/build.rs \
71 --replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
72 substituteInPlace ./quickwit-proto/build.rs \
73 --replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
76 sourceRoot = "${src.name}/quickwit";
79 mkdir -p quickwit-ui/build
80 cp -r ${quickwit-ui}/* quickwit-ui/build
85 ] ++ lib.optionals stdenv.isDarwin [ Security ];
88 lockFile = ./Cargo.lock;
90 "chitchat-0.8.0" = "sha256-6K2noPoFaDnOxQIEV1WbmVPfRGwlI/WS1OWSBH2qb1Q=";
91 "mrecordlog-0.4.0" = "sha256-9LIVs+BqK9FLSfHL3vm9LL+/FXIXJ6v617QLv4luQik=";
92 "ownedbytes-0.6.0" = "sha256-in18/NYYIgUiZ9sm8NgJlebWidRp34DR7AhOD1Nh0aw=";
93 "pulsar-5.0.2" = "sha256-j7wpsAro6x4fk3pvSL4fxLkddJFq8duZ7jDj0Edf3YQ=";
94 "sasl2-sys-0.1.20+2.1.28" = "sha256-u4BsfmTDFxuY3i1amLCsr7MDv356YPThMHclura0Sxs=";
95 "whichlang-0.1.0" = "sha256-7AvLGjtWHjG0TnZdg9p5D+O0H19uo2sqPxJMn6mOU0k=";
99 CARGO_PROFILE_RELEASE_LTO = "fat";
100 CARGO_PROFILE_RELEASE_CODEGEN_UNITS = "1";
102 # needed for internal protobuf c wrapper library
103 PROTOC = "${protobuf}/bin/protoc";
104 PROTOC_INCLUDE = "${protobuf}/include";
108 inherit (nixosTests) quickwit;
109 inherit (nixosTests.vector) syslog-quickwit;
111 updateScript = nix-update-script { };
115 # tries to make a network access
116 "--skip=test_all_local_index"
117 "--skip=test_cmd_create"
118 "--skip=test_cmd_create_no_index_uri"
119 "--skip=test_cmd_search_aggregation"
120 "--skip=test_cmd_search_with_snippets"
121 "--skip=test_delete_index_cli"
122 "--skip=test_delete_index_cli_dry_run"
123 "--skip=test_ingest_docs_cli"
124 "--skip=test_ingest_docs_cli_keep_cache"
125 "--skip=test_search_index_cli"
126 "--skip=test_garbage_collect_cli_no_grace"
127 "--skip=actors::indexing_service::tests::test_indexing_service_spawn_observe_detach"
128 "--skip=object_storage::s3_compatible_storage::tests::test_s3_compatible_storage_relative_path"
130 "--skip=actors::indexer::tests::test_indexer_triggers_commit_on_drained_mailbox"
131 "--skip=actors::indexer::tests::test_indexer_triggers_commit_on_timeout"
132 "--skip=actors::indexer::tests::test_indexer_partitioning"
133 "--skip=actors::indexing_pipeline::tests::test_merge_pipeline_does_not_stop_on_indexing_pipeline_failure"
134 "--skip=actors::indexer::tests::test_indexer_triggers_commit_on_target_num_docs"
135 "--skip=actors::packager::tests::test_packager_simple"
136 # fail on darwin for some reason
137 "--skip=io::tests::test_controlled_writer_limited_async"
138 "--skip=io::tests::test_controlled_writer_limited_sync"
142 description = "Sub-second search & analytics engine on cloud storage";
143 homepage = "https://quickwit.io/";
144 license = licenses.agpl3Only;
145 maintainers = with maintainers; [ happysalada ];
146 platforms = platforms.all;