summaryrefslogtreecommitdiff
path: root/security/node-sqlcipher
diff options
context:
space:
mode:
authorMikael Urankar <mikael@FreeBSD.org>2025-04-11 13:41:11 +0200
committerMikael Urankar <mikael@FreeBSD.org>2025-04-11 14:29:15 +0200
commit7d77bc3ae640924239987e424adf2c82f86a5261 (patch)
tree92cf23c79c4ec289a200be736277442e74244b7b /security/node-sqlcipher
parentdevel/msp430-debug-stack: Better devd config installed as sample. (diff)
security/node-sqlcipher: Add new port
A fast N-API-based Node.js addon wrapping sqlcipher and Signal-specific FTS5 segmenting APIs.
Diffstat (limited to 'security/node-sqlcipher')
-rw-r--r--security/node-sqlcipher/Makefile43
-rw-r--r--security/node-sqlcipher/distinfo5
-rw-r--r--security/node-sqlcipher/files/patch-binding.gyp14
-rw-r--r--security/node-sqlcipher/files/patch-deps_sqlcipher_sqlcipher.gyp11
-rw-r--r--security/node-sqlcipher/files/patch-src_addon.cc11
-rw-r--r--security/node-sqlcipher/pkg-descr2
6 files changed, 86 insertions, 0 deletions
diff --git a/security/node-sqlcipher/Makefile b/security/node-sqlcipher/Makefile
new file mode 100644
index 000000000000..6630bca44bda
--- /dev/null
+++ b/security/node-sqlcipher/Makefile
@@ -0,0 +1,43 @@
+PORTNAME= node-sqlcipher
+DISTVERSION= 1.0.0
+CATEGORIES= security
+MASTER_SITES= https://github.com/signalapp/node-sqlcipher/archive/refs/tags/v${DISTVERSION}/:sqlcipher \
+ LOCAL/mikael/signal-desktop/:npm
+DISTFILES= node-sqlcipher-${DISTVERSION}.tar.gz:sqlcipher \
+ node-sqlcipher-${DISTVERSION}-npm-cache.tar.gz:npm \
+
+MAINTAINER= mikael@FreeBSD.org
+COMMENT= Fast N-API-based Node.js addon wrapping sqlcipher and FTS5 segmenting APIs
+WWW= https://github.com/signalapp/node-sqlcipher
+
+LICENSE= AGPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${LOCALBASE}/lib/libsignal_sqlcipher_extension.a:devel/signal-sqlcipher-extension \
+ npm:www/npm${NODEJS_SUFFIX}
+
+USES= nodejs:20,build
+
+PLIST_FILES= lib/node_sqlcipher.node
+
+post-patch:
+ ${REINPLACE_CMD} "s#PREFIX#${PREFIX}#g" \
+ ${WRKSRC}/deps/sqlcipher/sqlcipher.gyp \
+ ${WRKSRC}/binding.gyp
+
+do-build:
+ ${ECHO_CMD} offline=true > ${WRKSRC}/.npmrc
+ cd ${WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} npm install --nodedir=${PREFIX}
+
+do-install:
+ ${INSTALL_DATA} ${WRKSRC}/build/Release/obj.target/node_sqlcipher.node ${STAGEDIR}${PREFIX}/lib/
+
+create-caches-tarball:
+ # do some cleanup first
+ ${RM} -r ${WRKDIR}/.npm/_logs ${WRKDIR}/.npm/_update-notifier-last-checked
+
+ cd ${WRKDIR} && \
+ ${TAR} czf node-sqlcipher-${DISTVERSION}-npm-cache.tar.gz .npm
+
+.include <bsd.port.mk>
diff --git a/security/node-sqlcipher/distinfo b/security/node-sqlcipher/distinfo
new file mode 100644
index 000000000000..e8fc32285f1a
--- /dev/null
+++ b/security/node-sqlcipher/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1744363987
+SHA256 (node-sqlcipher-1.0.0-npm-cache.tar.gz) = 1fef14366dde911c77fe21131d44a81ad16e150c303f86d967dc09db9b9e6777
+SIZE (node-sqlcipher-1.0.0-npm-cache.tar.gz) = 66582106
+SHA256 (node-sqlcipher-1.0.0.tar.gz) = 5712bbfbb76739cc8a7d2ad0ce27bb60e6045203c2e24500504d0b6651314e91
+SIZE (node-sqlcipher-1.0.0.tar.gz) = 2667597
diff --git a/security/node-sqlcipher/files/patch-binding.gyp b/security/node-sqlcipher/files/patch-binding.gyp
new file mode 100644
index 000000000000..36046a7c8414
--- /dev/null
+++ b/security/node-sqlcipher/files/patch-binding.gyp
@@ -0,0 +1,14 @@
+--- binding.gyp.orig 2025-04-10 22:01:02 UTC
++++ binding.gyp
+@@ -5,10 +5,10 @@
+ 'target_name': 'node_sqlcipher',
+ 'dependencies': [
+ 'deps/sqlcipher/sqlcipher.gyp:sqlcipher',
+- 'deps/extension/extension.gyp:extension',
+ "<!(node -p \"require('node-addon-api').targets\"):node_addon_api",
+ ],
+ 'sources': ['src/addon.cc'],
++ 'include_dirs': ['PREFIX/include'],
+ 'conditions': [
+ ['OS=="linux"', {
+ 'ldflags': [
diff --git a/security/node-sqlcipher/files/patch-deps_sqlcipher_sqlcipher.gyp b/security/node-sqlcipher/files/patch-deps_sqlcipher_sqlcipher.gyp
new file mode 100644
index 000000000000..b98ef27db1cb
--- /dev/null
+++ b/security/node-sqlcipher/files/patch-deps_sqlcipher_sqlcipher.gyp
@@ -0,0 +1,11 @@
+--- deps/sqlcipher/sqlcipher.gyp.orig 2025-04-10 21:58:12 UTC
++++ deps/sqlcipher/sqlcipher.gyp
+@@ -90,7 +90,7 @@
+ }, {
+ 'link_settings': {
+ 'libraries': [
+- '<(SHARED_INTERMEDIATE_DIR)/libsignal_sqlcipher_extension.a',
++ 'PREFIX/lib/libsignal_sqlcipher_extension.a',
+ ]
+ },
+ }],
diff --git a/security/node-sqlcipher/files/patch-src_addon.cc b/security/node-sqlcipher/files/patch-src_addon.cc
new file mode 100644
index 000000000000..d4134c89ef02
--- /dev/null
+++ b/security/node-sqlcipher/files/patch-src_addon.cc
@@ -0,0 +1,11 @@
+--- src/addon.cc.orig 2025-04-10 22:08:02 UTC
++++ src/addon.cc
+@@ -7,7 +7,7 @@
+ #include "addon.h"
+
+ #include "napi.h"
+-#include "signal-tokenizer.h"
++#include <signal-tokenizer.h>
+ #include "sqlite3.h"
+
+ // Signal Tokenizer
diff --git a/security/node-sqlcipher/pkg-descr b/security/node-sqlcipher/pkg-descr
new file mode 100644
index 000000000000..2947ed68a5a2
--- /dev/null
+++ b/security/node-sqlcipher/pkg-descr
@@ -0,0 +1,2 @@
+A fast N-API-based Node.js addon wrapping sqlcipher and Signal-specific FTS5
+segmenting APIs.