summaryrefslogtreecommitdiff
path: root/net/lavinmq/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'net/lavinmq/Makefile')
-rw-r--r--net/lavinmq/Makefile71
1 files changed, 63 insertions, 8 deletions
diff --git a/net/lavinmq/Makefile b/net/lavinmq/Makefile
index 86d209dccf0c..d27d57820c3c 100644
--- a/net/lavinmq/Makefile
+++ b/net/lavinmq/Makefile
@@ -1,8 +1,43 @@
PORTNAME= lavinmq
DISTVERSIONPREFIX= v
-DISTVERSION= 1.2.14
+DISTVERSION= 2.3.0
CATEGORIES= net
+# JavaScripts
+MASTER_SITES+= https://github.com/chartjs/Chart.js/releases/download/v4.0.1/:chartjs \
+ https://github.com/cloudamqp/amqp-client.js/releases/download/v3.1.1/:amqpclient \
+ https://moment.github.io/luxon/es6/:luxon \
+ https://cdn.jsdelivr.net/npm/chartjs-adapter-luxon@1.3.1/dist/:chartjsadapter \
+ https://unpkg.com/@stoplight/elements@8.2.0/:elements \
+ https://raw.githubusercontent.com/eclipse-paho/paho.mqtt.javascript/master/src/:paho
+
+DISTFILES+= chart.js-4.0.1.tgz:chartjs \
+ amqp-websocket-client.mjs:amqpclient \
+ amqp-websocket-client.mjs.map:amqpclient \
+ luxon.js:luxon \
+ chartjs-adapter-luxon.esm.js:chartjsadapter \
+ web-components.min.js:elements \
+ styles.min.css:elements \
+ paho-mqtt.js:paho
+
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \
+ 84codes-lz4.cr-${_LZ4}_GH0.tar.gz \
+ 84codes-systemd.cr-v2.0.0_GH0.tar.gz \
+ cloudamqp-amq-protocol.cr-v1.1.15_GH0.tar.gz \
+ cloudamqp-amqp-client.cr-v1.3.1_GH0.tar.gz \
+ 84codes-mqtt-protocol.cr-${_MQTT}_GH0.tar.gz \
+ chart.js-${_CHARTJS}.tgz
+
+# Crystal library versions
+_LZ4= 96d714f7593c66ca7425872fd26c7b1286806d3d
+_MQTT= d01a1210ed7adfed9aa5cd055f1788a45d9c4d52
+
+# JavaScript library versions
+_CHARTJS= 4.0.1
+_ELEMENTS= 8.2.0
+_AMQP_CLIENT= 3.1.1
+_CHARTJS_ADAPTER= 1.3.1
+
MAINTAINER= dch@FreeBSD.org
COMMENT= Next-generation AMQP 0.9.1 based message broker
WWW= https://www.lavinmq.com/
@@ -16,13 +51,11 @@ BUILD_DEPENDS= crystal:lang/crystal \
USES= pkgconfig ssl:build
USE_GITHUB= yes
GH_ACCOUNT= cloudamqp
-GH_TUPLE= \
- 84codes:lz4.cr:6cc0d0096207821222317ee02ea23d5296ad4023:a/deps/lz4.cr \
+GH_TUPLE= 84codes:lz4.cr:${_LZ4}:a/deps/lz4.cr \
84codes:systemd.cr:v2.0.0:systemd/deps/systemd.cr \
- cloudamqp:amq-protocol.cr:v1.1.14:proto/deps/amq-protocol.cr \
- cloudamqp:amqp-client.cr:v1.2.3:client/deps/amqp-client.cr \
- luislavena:radix:v0.4.1:radix/deps/radix \
- tbrand:router.cr:v0.2.8:router/deps/router.cr
+ cloudamqp:amq-protocol.cr:v1.1.15:proto/deps/amq-protocol.cr \
+ cloudamqp:amqp-client.cr:v1.3.1:client/deps/amqp-client.cr \
+ 84codes:mqtt-protocol.cr:${_MQTT}:mqtt/deps/mqtt-protocol.cr
USE_RC_SUBR= lavinmq
@@ -39,7 +72,7 @@ SHARDS_ENV= --time --verbose --production --release --no-color --stats \
.include <bsd.port.options.mk>
.if ${SSL_DEFAULT:Mopenssl} || ${SSL_DEFAULT:Mopenssl3*}
-BROKEN= fails to compile: undefined symbol: EVP_MD_size
+BROKEN= fails to compile: undefined symbol: EVP_MD_size
.endif
post-extract:
@@ -58,6 +91,28 @@ post-extract:
-e 's,/tmp/lavinmq-http.sock,/var/run/lavinmq/http.sock,' \
-e 's,/tmp/lavinmq.sock,/var/run/lavinmq/amqp.sock,' \
${WRKSRC}/extras/lavinmq.ini
+# setup javaScript directories
+ ${MKDIR} ${WRKSRC}/static/js/lib \
+ ${WRKSRC}/static/js/lib/chunks
+# extract Chart.js files from tarball
+ ${TAR} -xOf ${DISTDIR}/chart.js-${_CHARTJS}.tgz package/dist/chart.js \
+ > ${WRKSRC}/static/js/lib/chart.js
+ ${TAR} -xOf ${DISTDIR}/chart.js-${_CHARTJS}.tgz package/dist/chunks/helpers.segment.js \
+ > ${WRKSRC}/static/js/lib/chunks/helpers.segment.js
+# copy AMQP WebSocket client files
+ ${CP} ${DISTDIR}/amqp-websocket-client.mjs ${WRKSRC}/static/js/lib/
+ ${CP} ${DISTDIR}/amqp-websocket-client.mjs.map ${WRKSRC}/static/js/lib/
+# copy luxon and Chart.js adapter
+ ${CP} ${DISTDIR}/luxon.js ${WRKSRC}/static/js/lib/
+ ${CP} ${DISTDIR}/chartjs-adapter-luxon.esm.js ${WRKSRC}/static/js/lib/
+ ${SED} -i '' \
+ -e "s|\(import { _adapters } from\).*|\1 './chart.js'|; s|\(import { DateTime } from\).*|\1 './luxon.js'|" \
+ ${WRKSRC}/static/js/lib/chartjs-adapter-luxon.esm.js
+# copy stoplight Elements files
+ ${CP} ${DISTDIR}/web-components.min.js ${WRKSRC}/static/js/lib/elements-${_ELEMENTS}.js
+ ${CP} ${DISTDIR}/styles.min.css ${WRKSRC}/static/js/lib/elements-${_ELEMENTS}.css
+# copy paho MQTT
+ ${CP} ${DISTDIR}/paho-mqtt.js ${WRKSRC}/static/js/lib/
do-build:
${MKDIR} ${WRKDIR}/man1