From nobody Sun May 31 14:54:40 2026 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gT0Vn3chKz6g8T0 for ; Sun, 31 May 2026 14:54:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gT0Vn2Kgsz3GBW for ; Sun, 31 May 2026 14:54:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1780239281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b9V8VqX2wupVwhhCgrBAeO5MgpDBxlCA9eB1BS7ScKQ=; b=gaJWzMyq1g3jIrUWt/Ysvnur6iBcNJIpLBxzHxc5pS/b98TFJgQxbkntuK/wRNrvuNsI0e WHOcIb5kZIxtWyEzMogL9mCFE3dYu6ubev9DClfW79VzHwlOZ84K05IS1aDampvd6uj95H M0BxT3AIB5hRDT1T1Bs8jlWiH6B1O2tA48pzRDuK/WBIRXF9q5AiKNTfWb/SV1CTy7QnVI p6nxlEwzidryQO7YYpFV0b+hxDV01hVVg6wcXWdEUctRyuVKr+oNVhMzC/NB6xwwl1rVe9 evX63OH6vQO/lJgV4+CHS9Xe2f24yDE0mln3T3rtgMxQUDVwDyeBKolL8WvHrg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1780239281; a=rsa-sha256; cv=none; b=Gvs0xRxYdlcO8wiMoj5CIfW52ac+QtvzAC8EKTfa79N1YxaHcQDadWG4v3p1DvPhvee46C C31wu+F9r06HgkahxOXeBXuCaTBRMKUw1gOBNNBynox9bpEfO1vT/ekMYgvwSsZrbGeYJ6 loix5UmmMtt2/PTmdLgMpnl32Fk8wwFzf8QEXtHYoaAtOu3rbI1ONfcrc7YNqnSHzs1mZS g3UJf7HKyiWZMnPyaMyt7EvMauUByp8hp1JF7vm8PMDI9ipwU6Rn3dFWoNrnm+YCqLzFJL RKZ/is9yGtdlK2/ai3tgi+deH+Os9scelrNDlaWphkDgAymbXQUouQCTuRtV1A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1780239281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b9V8VqX2wupVwhhCgrBAeO5MgpDBxlCA9eB1BS7ScKQ=; b=oxr2/5HsG1j3QRDuSIwKI6rInlHN5bjW6Y/v7zvv7BtpdcjT8a+0xVxN5Ijbw5Dr6mxbzu jQZ46DRAcRcVMLjyiEdRHPKWqlnhMpuh6EhLVCghObsizHJUmJpYMKvVn8kKIrLIjQ1E7O yaYOJ/Eg8cDmZSDG8lA2Pbb4zs+yfBIDXFCxi2CA+/IlF81E5x4N0k32zRKGPsphfHkgC4 Alenqz83xH+odh/PiCc0XQTP6Q1nGfbwOT7XRNGkFT2jUHwhOIxfhVeOUuLwezFUw4n9DJ xy/GeTFaWu9CC0pm9y/8VLNJkap+XBSMQ3Xiqym484qEdeDpU0ooE2bPVanzqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gT0Vn00mKzwlN for ; Sun, 31 May 2026 14:54:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 302fc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 31 May 2026 14:54:40 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Muhammad Moinur Rahman Subject: git: e7d831aa7b58 - main - textproc/redisearch24: New port List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bofh X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e7d831aa7b58b75853eac6dc982e9c541cce0baf Auto-Submitted: auto-generated Date: Sun, 31 May 2026 14:54:40 +0000 Message-Id: <6a1c4bb0.302fc.62dd74b9@gitrepo.freebsd.org> The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/ports/commit/?id=e7d831aa7b58b75853eac6dc982e9c541cce0baf commit e7d831aa7b58b75853eac6dc982e9c541cce0baf Author: Muhammad Moinur Rahman AuthorDate: 2026-05-31 13:12:19 +0000 Commit: Muhammad Moinur Rahman CommitDate: 2026-05-31 14:54:21 +0000 textproc/redisearch24: New port RediSearch is a source available Full-Text and Secondary Index engine over Redis, developed by Redis Labs. Redisearch implements a search engine on top of Redis, but unlike other Redis search libraries, it does not use internal data structures like sorted sets. This also enables more advanced features, like exact phrase matching and numeric filtering for text queries, that are not possible or efficient with traditional Redis search approaches. This is the 2.4.X branch of redisearch WWW: https://github.com/RediSearch/RediSearch/ --- textproc/Makefile | 1 + textproc/redisearch24/Makefile | 40 ++++++++++++++++++++++ textproc/redisearch24/distinfo | 7 ++++ ...ps_VectorSimilarity_src_VecSim_info__iterator.h | 18 ++++++++++ ...ps_VectorSimilarity_src_VecSim_query__results.h | 10 ++++++ textproc/redisearch24/files/patch-src_fork__gc.c | 21 ++++++++++++ .../redisearch24/files/patch-src_numeric__index.c | 11 ++++++ .../redisearch24/files/patch-src_redis__index.c | 11 ++++++ textproc/redisearch24/pkg-descr | 10 ++++++ 9 files changed, 129 insertions(+) diff --git a/textproc/Makefile b/textproc/Makefile index 6950bbab4e52..5fdcf0d30ef1 100644 --- a/textproc/Makefile +++ b/textproc/Makefile @@ -1804,6 +1804,7 @@ SUBDIR += redisearch SUBDIR += redisearch20 SUBDIR += redisearch22 + SUBDIR += redisearch24 SUBDIR += redland SUBDIR += redland-bindings SUBDIR += refdb diff --git a/textproc/redisearch24/Makefile b/textproc/redisearch24/Makefile new file mode 100644 index 000000000000..d6cedebd4d4d --- /dev/null +++ b/textproc/redisearch24/Makefile @@ -0,0 +1,40 @@ +PORTNAME= redisearch +DISTVERSIONPREFIX= v +DISTVERSION= 2.4.0 +CATEGORIES= textproc +PKGNAMESUFFIX= ${DISTVERSION:R:S/.//} + +MAINTAINER= bofh@FreeBSD.org +COMMENT= Full-text search over Redis (2.4.X) +WWW= https://github.com/RediSearch/RediSearch/ + +LICENSE= RSAL +LICENSE_NAME= Redis Source Available License Agreement +LICENSE_FILE= ${WRKSRC}/LICENSE +LICENSE_PERMS= dist-mirror pkg-mirror auto-accept + +USES= cmake compiler +USE_GITHUB= yes +GH_ACCOUNT= RediSearch +GH_PROJECT= RediSearch +GH_TUPLE= RedisAI:VectorSimilarity:62d8e32:vectorsimilarity/deps/VectorSimilarity \ + google:cpu_features:2f5a7bf:cpu_features/deps/cpu_features + +CMAKE_ARGS= -DGIT_DESCRIBE_VERSION:STRING=${PKGVERSION} \ + -DOS=freebsd + +CONFLICTS_INSTALL= redisearch* + +PLIST_FILES= lib/${PORTNAME}${PKGNAMESUFFIX}.so + +CXXFLAGS=-Wno-vla-cxx-extension + +pre-configure: + @${MKDIR} ${WRKDIR}/.build/_deps + @${MV} ${WRKSRC}/deps/cpu_features ${WRKDIR}/.build/_deps/cpu_features-src + +do-install: + ${INSTALL} -m 0755 ${INSTALL_WRKSRC}/redisearch.so \ + ${STAGEDIR}${PREFIX}/lib/${PORTNAME}${PKGNAMESUFFIX}.so + +.include diff --git a/textproc/redisearch24/distinfo b/textproc/redisearch24/distinfo new file mode 100644 index 000000000000..d647bf694ab3 --- /dev/null +++ b/textproc/redisearch24/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1780169186 +SHA256 (RediSearch-RediSearch-v2.4.0_GH0.tar.gz) = 940c9c09f492c238ad1279979250cf49786f96b68fe1efeba19a5f4368a4e0b9 +SIZE (RediSearch-RediSearch-v2.4.0_GH0.tar.gz) = 4283574 +SHA256 (RedisAI-VectorSimilarity-62d8e32_GH0.tar.gz) = 714737dff5dfdbcdb08285e8c15bf4d988ce822f0d2e733b9e67424df3ff78de +SIZE (RedisAI-VectorSimilarity-62d8e32_GH0.tar.gz) = 94106 +SHA256 (google-cpu_features-2f5a7bf_GH0.tar.gz) = 91bde3c1fa7dfea3a71b4417eca7c7a5494be7ceff154d284a1087db85d5f597 +SIZE (google-cpu_features-2f5a7bf_GH0.tar.gz) = 83581 diff --git a/textproc/redisearch24/files/patch-deps_VectorSimilarity_src_VecSim_info__iterator.h b/textproc/redisearch24/files/patch-deps_VectorSimilarity_src_VecSim_info__iterator.h new file mode 100644 index 000000000000..e742223d462a --- /dev/null +++ b/textproc/redisearch24/files/patch-deps_VectorSimilarity_src_VecSim_info__iterator.h @@ -0,0 +1,18 @@ +--- deps/VectorSimilarity/src/VecSim/info_iterator.h.orig 2026-05-30 19:16:13 UTC ++++ deps/VectorSimilarity/src/VecSim/info_iterator.h +@@ -1,5 +1,6 @@ + #pragma once + #include ++#include + #ifdef __cplusplus + extern "C" { + #endif +@@ -30,7 +31,7 @@ typedef struct { + union { + double floatingPointValue; // Floating point value. 64 bits float. + int64_t integerValue; // Integer value. Signed 64 bits integer. +- u_int64_t uintegerValue; // Unsigned value. Unsigned 64 buts integer. ++ uint64_t uintegerValue; // Unsigned value. Unsigned 64 buts integer. + const char *stringValue; // String value. + }; + } VecSim_InfoField; diff --git a/textproc/redisearch24/files/patch-deps_VectorSimilarity_src_VecSim_query__results.h b/textproc/redisearch24/files/patch-deps_VectorSimilarity_src_VecSim_query__results.h new file mode 100644 index 000000000000..e409ff6af043 --- /dev/null +++ b/textproc/redisearch24/files/patch-deps_VectorSimilarity_src_VecSim_query__results.h @@ -0,0 +1,10 @@ +--- deps/VectorSimilarity/src/VecSim/query_results.h.orig 2026-05-30 19:20:00 UTC ++++ deps/VectorSimilarity/src/VecSim/query_results.h +@@ -1,6 +1,7 @@ + #pragma once + + #include ++#include + #include + + #ifdef __cplusplus diff --git a/textproc/redisearch24/files/patch-src_fork__gc.c b/textproc/redisearch24/files/patch-src_fork__gc.c new file mode 100644 index 000000000000..f08d1e9ce90b --- /dev/null +++ b/textproc/redisearch24/files/patch-src_fork__gc.c @@ -0,0 +1,21 @@ +--- src/fork_gc.c.orig 2022-02-09 21:38:06 UTC ++++ src/fork_gc.c +@@ -286,6 +286,7 @@ static void sendHeaderString(ForkGC *gc, void *arg) { + } + + static void sendHeaderString(ForkGC *gc, void *arg) { ++ struct iovec { void *iov_base; size_t iov_len; }; + struct iovec *iov = arg; + FGC_sendBuffer(gc, iov->iov_base, iov->iov_len); + } +@@ -302,7 +303,9 @@ static void FGC_childCollectTerms(ForkGC *gc, RedisSea + RedisModuleKey *idxKey = NULL; + InvertedIndex *idx = Redis_OpenInvertedIndexEx(sctx, term, strlen(term), 1, &idxKey); + if (idx) { +- struct iovec iov = {.iov_base = (void *)term, termLen}; ++ struct iovec { void *iov_base; size_t iov_len; } iov; ++ iov.iov_base = term; ++ iov.iov_len = termLen; + FGC_childRepairInvidx(gc, sctx, idx, sendHeaderString, &iov, NULL); + } + if (idxKey) { diff --git a/textproc/redisearch24/files/patch-src_numeric__index.c b/textproc/redisearch24/files/patch-src_numeric__index.c new file mode 100644 index 000000000000..786ce70d0eb4 --- /dev/null +++ b/textproc/redisearch24/files/patch-src_numeric__index.c @@ -0,0 +1,11 @@ +--- src/numeric_index.c.orig 2022-02-09 21:38:06 UTC ++++ src/numeric_index.c +@@ -613,7 +613,7 @@ int NumericIndexType_Register(RedisModuleCtx *ctx) { + .rdb_save = NumericIndexType_RdbSave, + .aof_rewrite = GenericAofRewrite_DisabledHandler, + .free = NumericIndexType_Free, +- .mem_usage = NumericIndexType_MemUsage}; ++ .mem_usage = (const void *)NumericIndexType_MemUsage}; + + NumericIndexType = RedisModule_CreateDataType(ctx, "numericdx", NUMERIC_INDEX_ENCVER, &tm); + if (NumericIndexType == NULL) { diff --git a/textproc/redisearch24/files/patch-src_redis__index.c b/textproc/redisearch24/files/patch-src_redis__index.c new file mode 100644 index 000000000000..36e1bc262208 --- /dev/null +++ b/textproc/redisearch24/files/patch-src_redis__index.c @@ -0,0 +1,11 @@ +--- src/redis_index.c.orig 2020-02-29 20:35:56 UTC ++++ src/redis_index.c +@@ -108,7 +108,7 @@ int InvertedIndex_RegisterType(RedisModuleCtx *ctx) { + .rdb_load = InvertedIndex_RdbLoad, + .rdb_save = InvertedIndex_RdbSave, + .aof_rewrite = GenericAofRewrite_DisabledHandler, +- .mem_usage = InvertedIndex_MemUsage, ++ .mem_usage = (const void *)InvertedIndex_MemUsage, + .free = InvertedIndex_Free}; + + InvertedIndexType = RedisModule_CreateDataType(ctx, "ft_invidx", INVERTED_INDEX_ENCVER, &tm); diff --git a/textproc/redisearch24/pkg-descr b/textproc/redisearch24/pkg-descr new file mode 100644 index 000000000000..41d10f88f3e7 --- /dev/null +++ b/textproc/redisearch24/pkg-descr @@ -0,0 +1,10 @@ +RediSearch is a source available Full-Text and Secondary Index +engine over Redis, developed by Redis Labs. + +Redisearch implements a search engine on top of Redis, but +unlike other Redis search libraries, it does not use internal +data structures like sorted sets. + +This also enables more advanced features, like exact phrase +matching and numeric filtering for text queries, that are not +possible or efficient with traditional Redis search approaches.