blob: 4933a4d20782192f91db010d9d9b715ff002d933 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CMAKE_QA_COMPAT_SKIP=1 # unused bundled rapidjson
inherit cmake
DESCRIPTION="Embeddable Fulltext Search Engine"
HOMEPAGE="https://groonga.org/"
SRC_URI="https://packages.groonga.org/source/groonga/${P}.tar.gz"
LICENSE="LGPL-2.1+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="apache-arrow blosc curl debug json libedit lz4 +mecab msgpack stemmer suggest-learner xxhash zstd"
CPU_USE=(
cpu_flags_x86_{avx,avx2,avx512dq}
)
IUSE+=" ${CPU_USE[@]}"
REQUIRED_USE="suggest-learner? ( msgpack )"
RDEPEND="
acct-group/groonga
acct-user/groonga
dev-libs/onigmo:=
virtual/zlib:=
apache-arrow? ( dev-libs/apache-arrow:= )
blosc? ( >=dev-libs/c-blosc2-2.10.0:= )
curl? ( net-misc/curl )
libedit? ( dev-libs/libedit )
lz4? ( app-arch/lz4:= )
mecab? ( app-text/mecab )
msgpack? ( dev-libs/msgpack:= )
stemmer? ( dev-libs/snowball-stemmer:= )
suggest-learner? (
dev-libs/libevent:=
net-libs/zeromq:=
)
xxhash? ( >=dev-libs/xxhash-0.8.0 )
zstd? ( app-arch/zstd:= )
"
DEPEND="
${RDEPEND}
amd64? ( dev-cpp/xsimd )
json? ( dev-libs/rapidjson:= )
"
BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-16.0.1-cmakelists.patch
"${FILESDIR}"/${PN}-16.0.1-blosc2_detection.patch
# PR merged
"${FILESDIR}"/${P}-fix_lto.patch
)
src_prepare() {
cmake_src_prepare
cmake_comment_add_subdirectory vendor
}
src_configure() {
local mycmakeargs=(
-DCMAKE_SKIP_RPATH=TRUE
-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}/html"
-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-DGRN_ALLOW_WARNING=ON # avoid -Werror
-DGRN_EMBED=OFF # static
-DGRN_FOR_RHEL=OFF # TODO: adapt systemd unit
-DGRN_LOG_PATH="${EPREFIX}/var/log/${PN}.log"
# always OFF
-DGRN_WITH_BENCHMARKS=OFF # install nothing
-DGRN_WITH_BUNDLED_ONIGMO=OFF
-DGRN_WITH_BUNDLED_MESSAGE_PACK=OFF
-DGRN_WITH_LTO=OFF # handled by userflags
-DGRN_WITH_SIMDJSON=no # prefer rapidjson, unlike upstream
-DGRN_WITH_SIMSIMD=OFF # masked, old 3.8.0 bundled
-DGRN_WITH_UBSAN=OFF # it requires clang
-DGRN_WITH_WINDOWS_BACK_TRACE=OFF # only for windows
# always ON
-DGRN_WITH_DOC=ON # precompiled
-DGRN_WITH_EXAMPLES=ON # nothing to build
-DGRN_WITH_NFKC=ON # required for libgroonga #946976
-DGRN_WITH_TOOLS=ON # install ruby and bash scripts
-DGRN_WITH_ZLIB=ON # try to find zlib anyway
-DGRN_WITH_APACHE_ARROW=$(usex apache-arrow)
-DGRN_WITH_BLOSC=$(usex blosc system no)
-DGRN_WITH_CURL=$(usex curl system no)
-DGRN_WITH_MEMORY_DEBUG=$(usex debug)
-DGRN_WITH_RAPIDJSON=$(usex json system no)
-DGRN_WITH_LIBEDIT=$(usex libedit system no)
-DGRN_WITH_LZ4=$(usex lz4 system no)
-DGRN_WITH_MECAB=$(usex mecab)
-DGRN_WITH_MESSAGE_PACK=$(usex msgpack)
-DGRN_WITH_LIBSTEMMER=$(usex stemmer)
-DGRN_WITH_LIBEVENT=$(usex suggest-learner)
-DGRN_WITH_ZEROMQ=$(usex suggest-learner)
-DGRN_WITH_XXHASH=$(usex xxhash system no)
-DGRN_WITH_ZSTD=$(usex zstd system no)
# TODO
-DGRN_WITH_MRUBY=OFF
-DGRN_WITH_MUNIN_PLUGINS=OFF
# not packaged in ::gentoo
-DGRN_WITH_BASE64=no # aklomp/base64
-DGRN_WITH_FAISS=no # facebookresearch/faiss
-DGRN_WITH_H3=no # uber/h3
-DGRN_WITH_KYTEA=no # neubig/kytea
-DGRN_WITH_LLAMA_CPP=no # ::guru
-DGRN_WITH_OPENZL=no # facebook/openzl
-DGRN_WITH_ROARING_BITMAPS=no # RoaringBitmap/CRoaring
-DGRN_WITH_USEARCH=no # unum-cloud/USearch
)
# xsimd profiles
if use amd64; then
mycmakeargs+=(
-DGRN_WITH_XSIMD=system
-DGRN_HAVE_AVX_FLAG=$(usex cpu_flags_x86_avx)
-DGRN_HAVE_AVX2_FLAG=$(usex cpu_flags_x86_avx2)
-DGRN_HAVE_AVX512DQ_FLAG=$(usex cpu_flags_x86_avx512dq)
)
#elif use arm64
# mycmakeargs+=(
# -DGRN_WITH_XSIMD=system
# -DGRN_HAVE_ARCH_ARMV8_A_FLAG=$(usex cpu_flags_arm_v8)
# )
else
mycmakeargs+=( -DGRN_WITH_XSIMD=no )
fi
cmake_src_configure
}
src_install() {
cmake_src_install
newinitd "${FILESDIR}/${PN}.initd" ${PN}
newconfd "${FILESDIR}/${PN}.confd" ${PN}
keepdir /var/{log,lib}/${PN}
fowners groonga:groonga /var/{log,lib}/${PN}
}
|