chatdesk-ui/postgres_15.8.1.044/nix/supabase-groonga.nix

76 lines
2.7 KiB
Nix

{ lib, stdenv, cmake, fetchurl, kytea, msgpack-c, mecab, pkg-config, rapidjson
, testers, xxHash, zstd, postgresqlPackages, makeWrapper, suggestSupport ? false
, zeromq, libevent, openssl, lz4Support ? false, lz4, zlibSupport ? true, zlib
, writeShellScriptBin, callPackage }:
let mecab-naist-jdic = callPackage ./ext/mecab-naist-jdic { };
in stdenv.mkDerivation (finalAttrs: {
pname = "supabase-groonga";
version = "14.0.5";
src = fetchurl {
url =
"https://packages.groonga.org/source/groonga/groonga-${finalAttrs.version}.tar.gz";
hash = "sha256-y4UGnv8kK0z+br8wXpPf57NMXkdEJHcLCuTvYiubnIc=";
};
patches =
[ ./fix-cmake-install-path.patch ./do-not-use-vendored-libraries.patch ];
nativeBuildInputs = [ cmake pkg-config makeWrapper ];
buildInputs = [ rapidjson xxHash zstd mecab kytea msgpack-c ]
++ lib.optionals lz4Support [ lz4 ] ++ lib.optional zlibSupport [ zlib ]
++ lib.optionals suggestSupport [ zeromq libevent ];
cmakeFlags = [
"-DWITH_MECAB=ON"
"-DMECAB_DICDIR=${mecab-naist-jdic}/lib/mecab/dic/naist-jdic"
"-DMECAB_CONFIG=${mecab}/bin/mecab-config"
"-DENABLE_MECAB_TOKENIZER=ON"
"-DMECAB_INCLUDE_DIR=${mecab}/include"
"-DMECAB_LIBRARY=${mecab}/lib/libmecab.so"
"-DGROONGA_ENABLE_TOKENIZER_MECAB=YES"
"-DGRN_WITH_MECAB=YES"
];
preConfigure = ''
export MECAB_DICDIR=${mecab-naist-jdic}/lib/mecab/dic/naist-jdic
echo "MeCab dictionary directory is: $MECAB_DICDIR"
'';
buildPhase = ''
cmake --build . -- VERBOSE=1
grep -i mecab CMakeCache.txt || (echo "MeCab not detected in CMake cache" && exit 1)
echo "CMake cache contents related to MeCab:"
grep -i mecab CMakeCache.txt
'';
# installPhase = ''
# mkdir -p $out/bin $out/lib/groonga/plugins
# cp -r lib/groonga/plugins/* $out/lib/groonga/plugins
# cp -r bin/* $out/bin
# echo "Installed Groonga plugins:"
# ls -l $out/lib/groonga/plugins
# '';
postInstall = ''
echo "Searching for MeCab-related files:"
find $out -name "*mecab*"
echo "Checking Groonga plugins directory:"
ls -l $out/lib/groonga/plugins
echo "Wrapping Groonga binary:"
wrapProgram $out/bin/groonga \
--set GRN_PLUGINS_DIR $out/lib/groonga/plugins
'';
env.NIX_CFLAGS_COMPILE =
lib.optionalString zlibSupport "-I${zlib.dev}/include";
meta = with lib; {
homepage = "https://groonga.org/";
description = "Open-source fulltext search engine and column store";
license = licenses.lgpl21;
maintainers = [ maintainers.samrose ];
platforms = platforms.all;
longDescription = ''
Groonga is an open-source fulltext search engine and column store.
It lets you write high-performance applications that requires fulltext search.
'';
};
})