Date: Sun, 31 May 2026 14:54:42 +0000 From: Muhammad Moinur Rahman <bofh@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 0db78b4b3d20 - main - textproc/redisearch26: New port Message-ID: <6a1c4bb2.30ce8.101c0bb1@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/ports/commit/?id=0db78b4b3d20ea60aa5e42f1e87439f15e4cd2d8 commit 0db78b4b3d20ea60aa5e42f1e87439f15e4cd2d8 Author: Muhammad Moinur Rahman <bofh@FreeBSD.org> AuthorDate: 2026-05-31 13:16:09 +0000 Commit: Muhammad Moinur Rahman <bofh@FreeBSD.org> CommitDate: 2026-05-31 14:54:21 +0000 textproc/redisearch26: 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.6.X branch of redisearch WWW: https://github.com/RediSearch/RediSearch/ --- textproc/Makefile | 1 + textproc/redisearch26/Makefile | 41 ++++++++++++++++++++++ textproc/redisearch26/distinfo | 7 ++++ ...ps_VectorSimilarity_src_VecSim_info__iterator.h | 18 ++++++++++ textproc/redisearch26/files/patch-src_fork__gc.c | 21 +++++++++++ .../redisearch26/files/patch-src_numeric__index.c | 11 ++++++ .../redisearch26/files/patch-src_redis__index.c | 11 ++++++ textproc/redisearch26/pkg-descr | 10 ++++++ 8 files changed, 120 insertions(+) diff --git a/textproc/Makefile b/textproc/Makefile index 5fdcf0d30ef1..48251841025f 100644 --- a/textproc/Makefile +++ b/textproc/Makefile @@ -1805,6 +1805,7 @@ SUBDIR += redisearch20 SUBDIR += redisearch22 SUBDIR += redisearch24 + SUBDIR += redisearch26 SUBDIR += redland SUBDIR += redland-bindings SUBDIR += refdb diff --git a/textproc/redisearch26/Makefile b/textproc/redisearch26/Makefile new file mode 100644 index 000000000000..cb2ee0e228ee --- /dev/null +++ b/textproc/redisearch26/Makefile @@ -0,0 +1,41 @@ +PORTNAME= redisearch +DISTVERSIONPREFIX= v +DISTVERSION= 2.6.0 +CATEGORIES= textproc +PKGNAMESUFFIX= ${DISTVERSION:R:S/.//} + +MAINTAINER= bofh@FreeBSD.org +COMMENT= Full-text search over Redis (2.6.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:79ac7b6:vectorsimilarity/deps/VectorSimilarity \ + google:cpu_features:v0.7.0:cpu_features/deps/cpu_features + +CMAKE_ARGS= -DGIT_DESCRIBE_VERSION:STRING=${PKGVERSION} \ + -DOS=freebsd + +CONFLICTS_INSTALL= redisearch* + +PLIST_FILES= lib/${PORTNAME}${PKGNAMESUFFIX}.so + +CFLAGS+= -DCLOCK_MONOTONIC_RAW=CLOCK_MONOTONIC +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 <bsd.port.mk> diff --git a/textproc/redisearch26/distinfo b/textproc/redisearch26/distinfo new file mode 100644 index 000000000000..1f2708aaae44 --- /dev/null +++ b/textproc/redisearch26/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1780179574 +SHA256 (RediSearch-RediSearch-v2.6.0_GH0.tar.gz) = 7bb4459d9a7bf9686a08108fc48e53454cc20b7a74cfea77d344f1c7e7c7a800 +SIZE (RediSearch-RediSearch-v2.6.0_GH0.tar.gz) = 4393986 +SHA256 (RedisAI-VectorSimilarity-79ac7b6_GH0.tar.gz) = 917f6e417e1ca639c53de1b9ff553d148ebc1af92d74a41904d6edb439ccc628 +SIZE (RedisAI-VectorSimilarity-79ac7b6_GH0.tar.gz) = 191365 +SHA256 (google-cpu_features-v0.7.0_GH0.tar.gz) = df80d9439abf741c7d2fdcdfd2d26528b136e6c52976be8bd0cd5e45a27262c0 +SIZE (google-cpu_features-v0.7.0_GH0.tar.gz) = 85986 diff --git a/textproc/redisearch26/files/patch-deps_VectorSimilarity_src_VecSim_info__iterator.h b/textproc/redisearch26/files/patch-deps_VectorSimilarity_src_VecSim_info__iterator.h new file mode 100644 index 000000000000..de28990f86bc --- /dev/null +++ b/textproc/redisearch26/files/patch-deps_VectorSimilarity_src_VecSim_info__iterator.h @@ -0,0 +1,18 @@ +--- deps/VectorSimilarity/src/VecSim/info_iterator.h.orig 2026-05-30 22:20:52 UTC ++++ deps/VectorSimilarity/src/VecSim/info_iterator.h +@@ -1,5 +1,6 @@ + #pragma once + #include <stdlib.h> ++#include <stdint.h> + #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/redisearch26/files/patch-src_fork__gc.c b/textproc/redisearch26/files/patch-src_fork__gc.c new file mode 100644 index 000000000000..4afe483721d8 --- /dev/null +++ b/textproc/redisearch26/files/patch-src_fork__gc.c @@ -0,0 +1,21 @@ +--- src/fork_gc.c.orig 2022-08-22 22:56:20 UTC ++++ src/fork_gc.c +@@ -287,6 +287,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); + } +@@ -303,7 +304,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/redisearch26/files/patch-src_numeric__index.c b/textproc/redisearch26/files/patch-src_numeric__index.c new file mode 100644 index 000000000000..ab14c189c74b --- /dev/null +++ b/textproc/redisearch26/files/patch-src_numeric__index.c @@ -0,0 +1,11 @@ +--- src/numeric_index.c.orig 2022-08-22 22:56:20 UTC ++++ src/numeric_index.c +@@ -622,7 +622,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/redisearch26/files/patch-src_redis__index.c b/textproc/redisearch26/files/patch-src_redis__index.c new file mode 100644 index 000000000000..36e1bc262208 --- /dev/null +++ b/textproc/redisearch26/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/redisearch26/pkg-descr b/textproc/redisearch26/pkg-descr new file mode 100644 index 000000000000..41d10f88f3e7 --- /dev/null +++ b/textproc/redisearch26/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.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a1c4bb2.30ce8.101c0bb1>
