about summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorDmitriy Pleshevskiy <dmitriy@ideascup.me>2022-10-20 17:21:43 +0300
committerDmitriy Pleshevskiy <dmitriy@ideascup.me>2022-10-25 21:36:26 +0300
commit35da064ed5748393e7851759bad25c3c655a1dd5 (patch)
tree53325072217c34e92a20dd8ec44b8dbf613a801c /pkgs/servers
parentaa92a34471c063118e389eed9dd511715a3d8aa8 (diff)
sonic-server: init at 1.4.0
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/search/sonic-server/default.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/pkgs/servers/search/sonic-server/default.nix b/pkgs/servers/search/sonic-server/default.nix
new file mode 100644
index 0000000000000..4eb88b7f04fdf
--- /dev/null
+++ b/pkgs/servers/search/sonic-server/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, rustPlatform
+, llvmPackages
+, clang
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "sonic-server";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "valeriansaliou";
+    repo = "sonic";
+    rev = "f5302f5c424256648ba0be32b3c5909d846821fe";
+    sha256 = "sha256-WebEluXijgJckZQOka2BDPYn7PqzPTsIcV2T380fxW8=";
+  };
+
+  cargoSha256 = "sha256-ObhKGjaIma6fUVUT3xadpy/GPYlnm0nKmRVxFmoePyQ=";
+
+  doCheck = false;
+
+  nativeBuildInputs = [
+    llvmPackages.libclang
+    llvmPackages.libcxxClang
+    clang
+  ];
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
+  BINDGEN_EXTRA_CLANG_ARGS = "-isystem ${llvmPackages.libclang.lib}/lib/clang/${lib.getVersion clang}/include";
+
+  postPatch = ''
+    substituteInPlace src/main.rs --replace "./config.cfg" "$out/etc/sonic/config.cfg"
+  '';
+
+  postInstall = ''
+    mkdir -p $out/etc/
+    mkdir -p $out/usr/lib/systemd/system/
+
+    install -Dm444 -t $out/etc/sonic config.cfg
+    substitute \
+      ./examples/config/systemd.service $out/usr/lib/systemd/system/sonic-server.service \
+      --replace /bin/sonic $out/bin/sonic \
+      --replace /etc/sonic.cfg $out/etc/sonic/config.cfg
+  '';
+
+  meta = with lib; {
+    description = "Fast, lightweight and schema-less search backend";
+    homepage = "https://github.com/valeriansaliou/sonic";
+    license = licenses.mpl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ pleshevskiy ];
+  };
+}