diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 75c89f42ad14..73a738c0f7b6 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6227,6 +6227,12 @@ githubId = 117874; name = "Jeroen de Haas"; }; + jdelStrother = { + email = "me@delstrother.com"; + github = "jdelStrother"; + githubId = 2377; + name = "Jonathan del Strother"; + }; jdreaver = { email = "johndreaver@gmail.com"; github = "jdreaver"; diff --git a/pkgs/servers/search/manticoresearch/default.nix b/pkgs/servers/search/manticoresearch/default.nix new file mode 100644 index 000000000000..a2d77d03cc5c --- /dev/null +++ b/pkgs/servers/search/manticoresearch/default.nix @@ -0,0 +1,70 @@ +{ lib, stdenv, fetchFromGitHub, fetchurl +, bison, cmake, flex, pkg-config +, boost, icu, libstemmer, mariadb-connector-c, re2 +}: +let + columnar = stdenv.mkDerivation rec { + pname = "columnar"; + version = "c16-s5"; # see NEED_COLUMNAR_API/NEED_SECONDARY_API in Manticore's GetColumnar.cmake + src = fetchFromGitHub { + owner = "manticoresoftware"; + repo = "columnar"; + rev = version; + sha256 = "sha256-iHB82FeA0rq9eRuDzY+AT/MiaRIGETsnkNPCqKRXgq8="; + }; + nativeBuildInputs = [ cmake ]; + cmakeFlags = [ "-DAPI_ONLY=ON" ]; + meta = { + description = "A column-oriented storage and secondary indexing library"; + homepage = "https://github.com/manticoresoftware/columnar/"; + license = lib.licenses.asl20; + platforms = lib.platforms.all; + }; + }; +in +stdenv.mkDerivation rec { + pname = "manticoresearch"; + version = "5.0.3"; + + src = fetchFromGitHub { + owner = "manticoresoftware"; + repo = "manticoresearch"; + rev = version; + sha256 = "sha256-samZYwDYgI9jQ7jcoMlpxulSFwmqyt5bkxG+WZ9eXuk="; + }; + + nativeBuildInputs = [ + bison + cmake + flex + pkg-config + ]; + + buildInputs = [ + boost + columnar + icu.dev + libstemmer + mariadb-connector-c + re2 + ]; + + postPatch = '' + sed -i 's/set ( Boost_USE_STATIC_LIBS ON )/set ( Boost_USE_STATIC_LIBS OFF )/' src/CMakeLists.txt + + # supply our own packages rather than letting manticore download dependencies during build + sed -i 's/^with_get/with_menu/' CMakeLists.txt + ''; + + cmakeFlags = [ + "-DWITH_GALERA=0" + ]; + + meta = with lib; { + description = "Easy to use open source fast database for search"; + homepage = "https://manticoresearch.com"; + license = licenses.gpl2; + maintainers = with maintainers; [ jdelStrother ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5e841c8b4007..faf6b3ac657f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21048,6 +21048,7 @@ with pkgs; boost = boost175; }; + manticoresearch = callPackage ../servers/search/manticoresearch { }; marisa = callPackage ../development/libraries/marisa {};