at master 1.7 kB view raw
1{ 2 fetchzip, 3 lib, 4 mecab, 5 postgresql, 6 postgresqlTestExtension, 7 stdenv, 8}: 9 10stdenv.mkDerivation (finalAttrs: { 11 pname = "tsja"; 12 version = "0.5.0"; 13 14 src = fetchzip { 15 url = "https://www.amris.jp/tsja/tsja-${finalAttrs.version}.tar.xz"; 16 hash = "sha256-h59UhUG/7biN8NaDiGK6kXDqfhR9uMzt8CpwbJ+PpEM="; 17 }; 18 19 postPatch = '' 20 substituteInPlace Makefile \ 21 --replace-fail /usr/local/pgsql ${lib.getDev postgresql} \ 22 --replace-fail -L/usr/local/lib "" \ 23 --replace-fail -I/usr/local/include "" 24 substituteInPlace tsja.c --replace-fail /usr/local/lib/mecab ${mecab}/lib/mecab 25 ''; 26 27 buildInputs = [ 28 mecab 29 postgresql 30 ]; 31 32 installPhase = '' 33 mkdir -p $out/lib $out/share/postgresql/extension 34 mv libtsja.so $out/lib 35 mv dbinit_libtsja.txt $out/share/postgresql/extension/libtsja_dbinit.sql 36 ''; 37 38 passthru.tests.extension = postgresqlTestExtension { 39 inherit (finalAttrs) finalPackage; 40 sql = '' 41 \i ${finalAttrs.finalPackage}/share/postgresql/extension/libtsja_dbinit.sql 42 ''; 43 asserts = [ 44 { 45 query = "EXISTS (SELECT 1 FROM ts_debug('japanese', 'PostgreSQL') WHERE lexemes = '{}')"; 46 expected = "true"; 47 description = "make sure '' is parsed as a separate lexeme"; 48 } 49 ]; 50 }; 51 52 meta = { 53 description = "PostgreSQL extension implementing Japanese text search"; 54 homepage = "https://www.amris.jp/tsja/index.html"; 55 maintainers = with lib.maintainers; [ chayleaf ]; 56 # GNU-specific linker options are used 57 platforms = lib.platforms.gnu; 58 license = lib.licenses.gpl2Only; 59 }; 60})