summaryrefslogtreecommitdiff
path: root/net-im/libsignal-node/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'net-im/libsignal-node/Makefile')
-rw-r--r--net-im/libsignal-node/Makefile81
1 files changed, 34 insertions, 47 deletions
diff --git a/net-im/libsignal-node/Makefile b/net-im/libsignal-node/Makefile
index fe8433019a98..779dd50a56cf 100644
--- a/net-im/libsignal-node/Makefile
+++ b/net-im/libsignal-node/Makefile
@@ -1,11 +1,13 @@
PORTNAME= libsignal
DISTVERSIONPREFIX= v
-DISTVERSION= 0.42.0
+DISTVERSION= 0.76.7
+PORTREVISION= 1
CATEGORIES= net-im
+MASTER_SITES= LOCAL/mikael/signal-desktop/:npm
PKGNAMESUFFIX= -node
-DISTFILES= libsignal-node-${DISTVERSION}-yarn-cache.tar.gz
+DISTFILES= libsignal-node-${DISTVERSION}-npm-cache.tar.gz:npm
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= mikael@FreeBSD.org
COMMENT= Platform-agnostic APIs used by the official Signal clients and servers
WWW= https://github.com/signalapp/libsignal
@@ -14,15 +16,21 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
ONLY_FOR_ARCHS= aarch64 amd64
-FETCH_DEPENDS= yarn-node20>0:www/yarn-node20
-EXTRACT_DEPENDS=yarn-node20>0:www/yarn-node20
+EXTRACT_DEPENDS=npm:www/npm${NODEJS_SUFFIX}
BUILD_DEPENDS= llvm-config${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} \
- protoc:devel/protobuf \
- yarn:www/yarn-node18
+ npm:www/npm${NODEJS_SUFFIX} \
+ protoc:devel/protobuf
-USES= cargo gmake python:build
+USES= cargo gmake nodejs:20,build python:build
USE_GITHUB= yes
GH_ACCOUNT= signalapp
+# to get the GH_TUPLE
+# git clone git@github.com:signalapp/boring.git
+# cd boring
+# git checkout correct_tag (grep boring Makefile.crates)
+# git submodule update --init --recursive
+# the hash for boringssl and fips should be printed on screen
+# or browse https://github.com/signalapp/boring/tree/signal-v4.15.0/boring-sys/deps (with the correct tag)
GH_TUPLE= google:boringssl:44b3df6f03d85c901767250329c571db405122d5:boringssl \
google:boringssl:853ca1ea1168dff08011e5d42d94609cc0ca2e27:boringssl_fips
@@ -40,60 +48,39 @@ USE_LDCONFIG= yes
PLIST_FILES= lib/libsignal_node.so
-NODE_ARCH= ${ARCH:S/aarch64/arm64/:S/amd64/x64/:S/i386/ia32/:C/powerpc64.*/ppc64/}
-NPM_RINGRTC_DIR= npm-@signalapp-ringrtc-2.36.0-67d1b48bd4c1ea31c155ea14a0bd28f04e46eff5-integrity
-NPM_SIGNAL_DIR= npm-@signalapp-libsignal-client-0.39.1-15b41f15c516ae3eecf8a098a9c9c7aac00444d7-integrity
-NPM_SQLITE3_DIR= npm-@signalapp-better-sqlite3-8.6.0-0413f4d0626b99838cd64ad09c88720aa2bec6ed-integrity
-RUST_ARCH= ${ARCH:S/amd64/x86_64/:S/i386/i686/}
-SQLCIPHER= sqlcipher-4.5.5-fts5-fix--3.0.7--0.2.1-ef53ea45ed92b928ecfd33c552d8d405263e86e63dec38e1ec63e1b0193b630b
-
-YARN_TIMESTAMP= 1661146515
+NODE_ARCH= ${ARCH:S/aarch64/arm64/:S/amd64/x64/}
+RUST_ARCH= ${ARCH:S/amd64/x86_64/}
.include <bsd.port.options.mk>
-.if ${ARCH:Mpowerpc64*}
-EXTRA_PATCHES= ${FILESDIR}/${ARCH}-patch-node_binding.gyp
-.endif
-
-pre-fetch:
- if [ ! -f ${DISTDIR}/libsignal-node-${DISTVERSION}-yarn-cache.tar.gz ]; \
- then ${MKDIR} ${WRKDIR}; \
- ${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \
- ${WRKDIR}/.yarnrc; \
- ${CP} ${FILESDIR}/node/package.json ${FILESDIR}/node/yarn.lock ${WRKDIR}; \
- cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \
- yarn --frozen-lockfile --ignore-scripts; \
- ${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \
- -e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \
- -e 's:\([gu]id\)=[0-9]*:\1=0:g' \
- -e 's:flags=.*:flags=none:' \
- -e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \
- ${TAR} cJf ${DISTDIR}/libsignal-node-${DISTVERSION}-yarn-cache.tar.gz \
- @yarn-offline-cache.mtree; \
- ${RM} -r ${WRKDIR}; \
- fi
-
post-patch:
${REINPLACE_CMD} "s#python3#${PYTHON_CMD}#" \
${WRKSRC}/node/binding.gyp
-# Check hash here: https://github.com/signalapp/boring/tree/libsignal/boring-sys/deps
+# to get the hash:
+# fetch -o - https://raw.githubusercontent.com/signalapp/libsignal/v0.67.4/Cargo.lock | grep https://github.com/signalapp/boring
post-extract:
- ${MV} ${WRKDIR}/boringssl-44b3df6f03d85c901767250329c571db405122d5/* ${WRKDIR}/boring-8245063ae6eb97d909982b89fad45bb7f0a2a1a0/boring-sys/deps/boringssl
- ${MV} ${WRKDIR}/boringssl-853ca1ea1168dff08011e5d42d94609cc0ca2e27/* ${WRKDIR}/boring-8245063ae6eb97d909982b89fad45bb7f0a2a1a0/boring-sys/deps/boringssl-fips
-
- ${CP} ${FILESDIR}/node/package.json ${WRKSRC}/node
+ ${MV} ${WRKDIR}/boringssl-44b3df6f03d85c901767250329c571db405122d5/* ${WRKDIR}/boring-signal-v4.15.0/boring-sys/deps/boringssl
+ ${MV} ${WRKDIR}/boringssl-853ca1ea1168dff08011e5d42d94609cc0ca2e27/* ${WRKDIR}/boring-signal-v4.15.0/boring-sys/deps/boringssl-fips
do-build:
- ${ECHO_CMD} 'yarn-offline-mirror "../yarn-offline-cache"' > ${WRKSRC}/.yarnrc
- ${ECHO_CMD} 'nodedir "${LOCALBASE}"' >> ${WRKSRC}/.yarnrc
+ ${ECHO_CMD} offline=true >> ${WRKSRC}/.npmrc
cd ${WRKSRC}/node && \
- ${SETENV} ${MAKE_ENV} yarn install --frozen-lockfile --ignore-optional --offline
+ ${SETENV} ${MAKE_ENV} npm install --ignore-optional --nodedir=${LOCALBASE}
cd ${WRKSRC}/node && \
- ${SETENV} ${MAKE_ENV} yarn tsc
+ ${SETENV} ${MAKE_ENV} npx node-gyp rebuild --nodedir=${LOCALBASE}
+ cd ${WRKSRC}/node && \
+ ${SETENV} ${MAKE_ENV} npm run tsc
do-install:
${INSTALL_DATA} ${WRKSRC}/node/build/Release/obj.target/libsignal_client_freebsd_${NODE_ARCH}.node/geni/rust/${RUST_ARCH}-unknown-freebsd/release/libsignal_node.so \
${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 libsignal-node-${DISTVERSION}-npm-cache.tar.gz .npm
+
.include <bsd.port.mk>