vendor lavinmq build inputs

This commit is contained in:
Joachim Schlöffel
2026-09-26 23:22:14 +02:00
parent 13a2d0dd16
commit dae1f755a2
5 changed files with 56 additions and 10 deletions
+14 -8
View File
@@ -1,7 +1,7 @@
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de> # Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
pkgname=lavinmq pkgname=lavinmq
pkgver=2.10.0 pkgver=2.10.0
pkgrel=0 pkgrel=1
pkgdesc="High-performance AMQP and MQTT message queue server" pkgdesc="High-performance AMQP and MQTT message queue server"
url="https://github.com/cloudamqp/lavinmq" url="https://github.com/cloudamqp/lavinmq"
arch="x86_64" arch="x86_64"
@@ -9,7 +9,6 @@ license="Apache-2.0"
depends="ca-certificates /bin/sh" depends="ca-certificates /bin/sh"
makedepends=" makedepends="
crystal=1.21.0-r0 crystal=1.21.0-r0
curl
gc-dev gc-dev
help2man help2man
libevent-dev libevent-dev
@@ -29,15 +28,21 @@ subpackages="
$pkgname-doc $pkgname-doc
$pkgname-openrc:_openrc:noarch $pkgname-openrc:_openrc:noarch
" "
options="net"
source=" source="
$pkgname-$pkgver.tar.gz::https://github.com/cloudamqp/lavinmq/archive/refs/tags/v$pkgver.tar.gz $pkgname-$pkgver.tar.gz::https://github.com/cloudamqp/lavinmq/archive/refs/tags/v$pkgver.tar.gz
$pkgname-$pkgver-shards.tar.gz
$pkgname-$pkgver-assets.tar.gz
lavinmq.confd lavinmq.confd
lavinmq.initd lavinmq.initd
use-vendored-build-inputs.patch
" "
export CRYSTAL_CACHE_DIR="${CRYSTAL_CACHE_DIR:-$srcdir/crystal-cache}" prepare() {
export SHARDS_CACHE_PATH="${SHARDS_CACHE_PATH:-$srcdir/shards-cache}" default_prepare
tar -xzf "$srcdir/$pkgname-$pkgver-shards.tar.gz" -C "$builddir"
mkdir -p "$builddir/.alpine-assets"
tar -xzf "$srcdir/$pkgname-$pkgver-assets.tar.gz" -C "$builddir/.alpine-assets"
}
build() { build() {
crystal --version crystal --version
@@ -46,9 +51,7 @@ build() {
} }
check() { check() {
bin/lavinmq -v crystal spec spec/config_spec.cr
bin/lavinmqctl --version
bin/lavinmqperf --version
} }
package() { package() {
@@ -70,6 +73,9 @@ _openrc() {
sha512sums=" sha512sums="
b494892dada6eb713025bc3245e16035a63265805d77c537b4530226195f00dacab1fb14de5bf4c999165faa6bf2f7ef7c6b8ffb4c6f4a921977f1c13a4f1545 lavinmq-2.10.0.tar.gz b494892dada6eb713025bc3245e16035a63265805d77c537b4530226195f00dacab1fb14de5bf4c999165faa6bf2f7ef7c6b8ffb4c6f4a921977f1c13a4f1545 lavinmq-2.10.0.tar.gz
d0dfdd5c0e474024f57deb9e31c76e3f176e798c8d21dea53d3aea1b05436bd03fa34e69ccddf322bc89adedce5f379df5a316cddbbdfe12520e5bf672ad8228 lavinmq-2.10.0-shards.tar.gz
ae3cea2534b211abbcbd1e4fcb6da73dfaf383a19aef1c45f367cba77492cc20a7ce8283fc42f26c0a023149114c369bed307fb8cde0b8f27fba61165092e986 lavinmq-2.10.0-assets.tar.gz
62a609d50f28db960098c4c84ce4f1dad78413366a9a9aca18fe321114d687be3bf7b71924d4ace69bd74383c5ac40d2ee09ae0eef9c1bfe653b97448e42e110 lavinmq.confd 62a609d50f28db960098c4c84ce4f1dad78413366a9a9aca18fe321114d687be3bf7b71924d4ace69bd74383c5ac40d2ee09ae0eef9c1bfe653b97448e42e110 lavinmq.confd
1853196e70297b5c4a2207fde50df735620cf6d99c4994644fd676bffaf863d67300ad7ae771c4bbb86fce1a0485c2a7968cf912c5f5bb878e08b15e5a28ba1b lavinmq.initd 1853196e70297b5c4a2207fde50df735620cf6d99c4994644fd676bffaf863d67300ad7ae771c4bbb86fce1a0485c2a7968cf912c5f5bb878e08b15e5a28ba1b lavinmq.initd
e7617099f745ecbf2f0686830d0a1b28044741ebd543798505b5b3c08f1be96b6cc478eb18f6785af49b100c2f49d837775f0721ac27519ddf3f081e681c581c use-vendored-build-inputs.patch
" "
+6 -2
View File
@@ -1,7 +1,9 @@
# LavinMQ Alpine Package # LavinMQ Alpine Package
Builds LavinMQ from the upstream source release for `x86_64` and packages the Builds LavinMQ from the upstream source release for `x86_64` and packages the
OpenRC service plus `/etc/lavinmq` defaults. OpenRC service plus `/etc/lavinmq` defaults. The locked Shards dependencies and
frontend assets are versioned, checksummed source inputs, so the build does not
need network access.
Build command: Build command:
@@ -9,7 +11,9 @@ Build command:
make make
``` ```
LavinMQ 2.9.2 requires Crystal 1.21.0. The package pins Alpine edge's native Crystal package, avoiding a glibc toolchain in the Alpine musl build.
LavinMQ 2.10.0 requires Crystal 1.21.0. The package pins Alpine edge's native
Crystal package, avoiding a glibc toolchain in the Alpine musl build.
Crystal package, avoiding a glibc toolchain in the Alpine musl build. Crystal package, avoiding a glibc toolchain in the Alpine musl build.
## Runtime Layout ## Runtime Layout
@@ -0,0 +1,36 @@
--- a/Makefile
+++ b/Makefile
@@ -8,0 +9 @@
+LAVINMQ_ASSET_DIR ?= .alpine-assets
@@ -55,2 +56,2 @@
-lib: shard.yml shard.lock
- shards install --production
+lib:
+ test -d lib
@@ -62,3 +63 @@
- curl --fail --retry 5 -sL https://github.com/chartjs/Chart.js/releases/download/v4.0.1/chart.js-4.0.1.tgz | \
- tar -zxOf- package/dist/chart.js > $@
- [ "038d0a4f9c61f0b35ff70f883e7591403a349542625a4caaf48caa141adedfd5 *$@" = "$$(openssl dgst -sha256 -r $@)" ]
+ install -Dm644 "$(LAVINMQ_ASSET_DIR)/chart.js" "$@"
@@ -67,3 +66 @@
- curl --fail --retry 5 -sL https://github.com/chartjs/Chart.js/releases/download/v4.0.1/chart.js-4.0.1.tgz | \
- tar -zxOf- package/dist/chunks/helpers.segment.js > $@
- [ "b4746b748fe583a18ef921e341b8b65166c2ebd0b737fde6527b254baaeb1aa1 *$@" = "$$(openssl dgst -sha256 -r $@)" ]
+ install -Dm644 "$(LAVINMQ_ASSET_DIR)/helpers.segment.js" "$@"
@@ -72,2 +69 @@
- curl --fail --retry 5 -sLo $@ https://moment.github.io/luxon/es6/luxon.mjs
- [ "b495ad5cabea3439d04387e6622f2c3fa81d319424d9d76d9e7f874ac5a0807a *$@" = "$$(openssl dgst -sha256 -r $@)" ]
+ install -Dm644 "$(LAVINMQ_ASSET_DIR)/luxon.js" "$@"
@@ -76,3 +72 @@
- curl --fail --retry 5 -sLo $@ https://cdn.jsdelivr.net/npm/chartjs-adapter-luxon@1.3.1/dist/chartjs-adapter-luxon.esm.js
- sed -i'' -e "s|\(import { _adapters } from\).*|\1 './chart.js'|; s|\(import { DateTime } from\).*|\1 './luxon.js'|" $@
- [ "17d7b6567d656a004f86b6b5cbdbe64cb308e9a2ebfa7675caa79ba0bc72ef91 *$@" = "$$(openssl dgst -sha256 -r $@)" ]
+ install -Dm644 "$(LAVINMQ_ASSET_DIR)/chartjs-adapter-luxon.esm.js" "$@"
@@ -81,2 +75 @@
- curl --fail --retry 5 -sLo $@ https://unpkg.com/@stoplight/elements@8.2.0/web-components.min.js
- [ "598862da6d551769ebad9d61d4e3037535de573a13d3e0bd1ded4c5fc65c5885 *$@" = "$$(openssl dgst -sha256 -r $@)" ]
+ install -Dm644 "$(LAVINMQ_ASSET_DIR)/elements-8.2.0.js" "$@"
@@ -85,2 +78 @@
- curl --fail --retry 5 -sLo $@ https://unpkg.com/@stoplight/elements@8.2.0/styles.min.css
- [ "119784e23ffc39b6fa3fdb3df93f391f8250e8af141b78dfc3b6bed86079f93b *$@" = "$$(openssl dgst -sha256 -r $@)" ]
+ install -Dm644 "$(LAVINMQ_ASSET_DIR)/elements-8.2.0.css" "$@"