diff options
Diffstat (limited to 'databases/sqlite-ext-vec')
| -rw-r--r-- | databases/sqlite-ext-vec/Makefile | 52 | ||||
| -rw-r--r-- | databases/sqlite-ext-vec/distinfo | 3 | ||||
| -rw-r--r-- | databases/sqlite-ext-vec/files/patch-Makefile | 73 | ||||
| -rw-r--r-- | databases/sqlite-ext-vec/pkg-descr | 7 |
4 files changed, 135 insertions, 0 deletions
diff --git a/databases/sqlite-ext-vec/Makefile b/databases/sqlite-ext-vec/Makefile new file mode 100644 index 000000000000..b5f212d77604 --- /dev/null +++ b/databases/sqlite-ext-vec/Makefile @@ -0,0 +1,52 @@ +PORTNAME= sqlite-ext-vec +DISTVERSIONPREFIX= v +DISTVERSION= 0.1.9 +CATEGORIES= databases + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Vector search SQLite extension +WWW= https://github.com/asg017/sqlite-vec + +LICENSE= APACHE20 MIT +LICENSE_COMB= dual + +USES= gmake localbase:ldflags sqlite:3 +USE_LDCONFIG= yes + +USE_GITHUB= yes +GH_ACCOUNT= asg017 +GH_PROJECT= sqlite-vec + +ALL_TARGET= loadable shared static # 'static' and 'shared' are the static and shared libs with this extension +CFLAGS+= -include sys/types.h # workaround for https://github.com/asg017/sqlite-vec/issues/287 +MAKE_ARGS= VERSION=${DISTVERSION} + +BINARY_ALIAS= gcc=${CC} + +PLIST_FILES= include/sqlite-vec.h \ + lib/libsqlite_vec0.a \ + lib/libsqlite_vec0.so \ + libexec/sqlite-ext/vec0.so + +do-install: + # install the extension + ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/sqlite-ext + ${INSTALL_LIB} ${WRKSRC}/dist/vec0.so ${STAGEDIR}${PREFIX}/libexec/sqlite-ext + # install the header and static library for users who want to build theor own SQLite code with this extension + ${MKDIR} ${STAGEDIR}${PREFIX}/include + ${INSTALL_DATA} ${WRKSRC}/sqlite-vec.h ${STAGEDIR}${PREFIX}/include/ + ${INSTALL_LIB} ${WRKSRC}/dist/libsqlite_vec0.so ${STAGEDIR}${PREFIX}/lib/ + ${INSTALL_DATA} ${WRKSRC}/dist/libsqlite_vec0.a ${STAGEDIR}${PREFIX}/lib/ + +do-test: + @cd ${WRKSRC}/tests/minimum && \ + ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \ + -DSQLITE_CORE \ + -I${WRKSRC} \ + demo.c \ + ${WRKSRC}/dist/libsqlite_vec0.a \ + -lsqlite3 -lm -lpthread \ + -o demo && \ + ./demo + +.include <bsd.port.mk> diff --git a/databases/sqlite-ext-vec/distinfo b/databases/sqlite-ext-vec/distinfo new file mode 100644 index 000000000000..47d480de8f81 --- /dev/null +++ b/databases/sqlite-ext-vec/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1777830242 +SHA256 (asg017-sqlite-vec-v0.1.9_GH0.tar.gz) = 9823e737d9934dcbe85dff75d3fca81018a9beee803d70fa77b16faab5d61dc9 +SIZE (asg017-sqlite-vec-v0.1.9_GH0.tar.gz) = 617543 diff --git a/databases/sqlite-ext-vec/files/patch-Makefile b/databases/sqlite-ext-vec/files/patch-Makefile new file mode 100644 index 000000000000..380103423d20 --- /dev/null +++ b/databases/sqlite-ext-vec/files/patch-Makefile @@ -0,0 +1,73 @@ +--- Makefile.orig 2026-03-31 07:59:06 UTC ++++ Makefile +@@ -62,22 +62,28 @@ TARGET_STATIC=$(prefix)/libsqlite_vec0.a + + TARGET_LOADABLE=$(prefix)/vec0.$(LOADABLE_EXTENSION) + TARGET_STATIC=$(prefix)/libsqlite_vec0.a ++TARGET_SHARED=$(prefix)/libsqlite_vec0.so + TARGET_STATIC_H=$(prefix)/sqlite-vec.h + TARGET_CLI=$(prefix)/sqlite3 + + loadable: $(TARGET_LOADABLE) + static: $(TARGET_STATIC) ++shared: $(TARGET_SHARED) + cli: $(TARGET_CLI) + + all: loadable static cli + + OBJS_DIR=$(prefix)/.objs ++OBJS_DIR_SHARED=$(prefix)/.objs-shared + LIBS_DIR=$(prefix)/.libs + BUILD_DIR=$(prefix)/.build + + $(OBJS_DIR): $(prefix) + mkdir -p $@ + ++$(OBJS_DIR_SHARED): $(prefix) ++ mkdir -p $@ ++ + $(LIBS_DIR): $(prefix) + mkdir -p $@ + +@@ -87,24 +93,29 @@ $(TARGET_LOADABLE): sqlite-vec.c sqlite-vec.h $(prefix + + $(TARGET_LOADABLE): sqlite-vec.c sqlite-vec.h $(prefix) + $(CC) \ ++ $(CFLAGS) \ + -fPIC -shared \ + -Wall -Wextra \ + -Ivendor/ \ +- -O3 \ + $(CFLAGS) \ + $< -o $@ + + $(TARGET_STATIC): sqlite-vec.c sqlite-vec.h $(prefix) $(OBJS_DIR) + $(CC) -Ivendor/ $(CFLAGS) -DSQLITE_CORE -DSQLITE_VEC_STATIC \ +- -O3 -c $< -o $(OBJS_DIR)/vec.o ++ -c $< -o $(OBJS_DIR)/vec.o + $(AR) rcs $@ $(OBJS_DIR)/vec.o + ++$(TARGET_SHARED): sqlite-vec.c sqlite-vec.h $(prefix) $(OBJS_DIR_SHARED) ++ $(CC) -fPIC -Ivendor/ $(CFLAGS) -DSQLITE_CORE -DSQLITE_VEC_STATIC \ ++ -c $< -o $(OBJS_DIR_SHARED)/vec.o ++ $(CC) -shared $(LDFLAGS) -o $@ $(OBJS_DIR_SHARED)/vec.o ++ + $(TARGET_STATIC_H): sqlite-vec.h $(prefix) + cp $< $@ + + + $(OBJS_DIR)/sqlite3.o: vendor/sqlite3.c $(OBJS_DIR) +- $(CC) -c -g3 -O3 -DSQLITE_EXTRA_INIT=core_init -DSQLITE_CORE -DSQLITE_ENABLE_STMT_SCANSTATUS -DSQLITE_ENABLE_BYTECODE_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS -I./vendor $< -o $@ ++ $(CC) $(CFLAGS) -c -g3 -DSQLITE_EXTRA_INIT=core_init -DSQLITE_CORE -DSQLITE_ENABLE_STMT_SCANSTATUS -DSQLITE_ENABLE_BYTECODE_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS -I./vendor $< -o $@ + + $(LIBS_DIR)/sqlite3.a: $(OBJS_DIR)/sqlite3.o $(LIBS_DIR) + $(AR) rcs $@ $< +@@ -113,7 +124,7 @@ $(OBJS_DIR)/shell.o: $(BUILD_DIR)/shell-new.c $(OBJS_D + sed 's/\/\*extra-version-info\*\//EXTRA_TODO/g' $< > $@ + + $(OBJS_DIR)/shell.o: $(BUILD_DIR)/shell-new.c $(OBJS_DIR) +- $(CC) -c -g3 -O3 \ ++ $(CC) $(CFLAGS) -c \ + -I./vendor \ + -DSQLITE_ENABLE_STMT_SCANSTATUS -DSQLITE_ENABLE_BYTECODE_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS \ + -DEXTRA_TODO="\"CUSTOMBUILD:sqlite-vec\n\"" \ diff --git a/databases/sqlite-ext-vec/pkg-descr b/databases/sqlite-ext-vec/pkg-descr new file mode 100644 index 000000000000..b5206a6f1951 --- /dev/null +++ b/databases/sqlite-ext-vec/pkg-descr @@ -0,0 +1,7 @@ +sqlite-vec is an extremely small, "fast enough" vector search SQLite extension. + +Features: +- Store and query float, int8, and binary vectors in vec0 virtual tables +- Written in pure C, no dependencies, runs anywhere SQLite runs +- Supports Linux/MacOS/Windows, in the browser with WASM, Raspberry Pis, etc. +- Store non-vector data in metadata, auxiliary, or partition key columns |
