7 Commits
Author SHA1 Message Date
Joachim Schlöffel f5efea2160 add package update status badge
Build Alpine Packages / build-and-publish (v3.24, 3.24) (push) Successful in 1h17m58s
Build Alpine Packages / build-and-publish (v3.24, 3.24) (pull_request) Successful in 35m57s
2026-09-26 23:51:50 +02:00
Joachim Schlöffel e4093a3c9f retain package registries as CI artifacts 2026-09-26 23:40:12 +02:00
Joachim Schlöffel d70e9ce84c Merge branch 'main' into features/source-build 2026-09-26 23:30:24 +02:00
Joachim Schlöffel fed4ad011d Revert "add -ip and -port to openrc script"
This reverts commit 2825e1bfef.
2026-09-26 23:29:05 +02:00
Joachim Schlöffel dae1f755a2 vendor lavinmq build inputs 2026-09-26 23:22:14 +02:00
Joachim Schlöffel b3d5424349 vendor lavinmq build inputs 2026-09-26 23:21:44 +02:00
Joachim Schlöffel 13a2d0dd16 build seaweedfs from vendored source 2026-09-26 16:26:27 +02:00
16 changed files with 177 additions and 71 deletions
+15 -14
View File
@@ -1,12 +1,9 @@
name: Build Alpine Packages
on:
schedule:
- cron: "17 5 * * 1"
push:
branches:
- master
- main
- "**"
tags:
- "*"
pull_request:
@@ -68,13 +65,11 @@ jobs:
fi
- name: Prepare package cache
if: github.event_name != 'schedule'
id: package-selection
run: |
scripts/apk/ci-package-cache.sh prepare
- name: Build packages
if: github.event_name != 'schedule'
run: |
scripts/apk/ci-build.sh
if [ -d packages/local ]; then
@@ -82,11 +77,10 @@ jobs:
fi
- name: Export GreptimeDB CI assets
if: github.event_name != 'schedule' && steps.package-selection.outputs.greptimedb_selected == 'true'
if: steps.package-selection.outputs.greptimedb_selected == 'true'
run: scripts/apk/export-ci-assets.sh
- name: Check artifact upload support
if: github.event_name != 'schedule'
id: artifact-upload
run: |
if [ -n "${ACTIONS_RUNTIME_TOKEN:-}" ]; then
@@ -96,18 +90,25 @@ jobs:
fi
- name: Upload generated CI assets
if: github.event_name != 'schedule' && steps.package-selection.outputs.greptimedb_selected == 'true' && steps.artifact-upload.outputs.available == 'true'
if: steps.package-selection.outputs.greptimedb_selected == 'true' && steps.artifact-upload.outputs.available == 'true'
uses: actions/upload-artifact@v3
with:
name: greptimedb-musl-binaries-${{ matrix.alpine_registry_branch }}
path: packages/ci-assets/
- name: Upload local Alpine registry
if: steps.package-selection.outputs.packages_selected == 'true' && steps.artifact-upload.outputs.available == 'true'
uses: actions/upload-artifact@v3
with:
name: alpine-local-registry-${{ matrix.alpine_registry_branch }}-${{ github.sha }}
path: packages/local/
retention-days: 30
- name: Smoke test
if: github.event_name != 'schedule'
run: scripts/apk/ci-smoke.sh
- name: Generate security reports
if: github.event_name != 'schedule' && env.ALPINE_SKIP_BUILD != '1'
if: env.ALPINE_SKIP_BUILD != '1'
run: |
scripts/apk/security-report.sh
if [ -n "${GITHUB_STEP_SUMMARY:-}" ]; then
@@ -117,16 +118,16 @@ jobs:
fi
- name: Upload security reports
if: github.event_name != 'schedule' && env.ALPINE_SKIP_BUILD != '1' && steps.artifact-upload.outputs.available == 'true'
if: env.ALPINE_SKIP_BUILD != '1' && steps.artifact-upload.outputs.available == 'true'
uses: actions/upload-artifact@v3
with:
name: apk-security-reports-${{ matrix.alpine_registry_branch }}
path: packages/security-reports/
- name: Runtime test
if: github.event_name != 'schedule' && env.ALPINE_SKIP_BUILD != '1'
if: env.ALPINE_SKIP_BUILD != '1'
run: scripts/apk/runtime-test.sh
- name: Publish Alpine packages
if: github.event_name != 'pull_request' && github.event_name != 'schedule' && env.ALPINE_SKIP_BUILD != '1'
if: github.ref == 'refs/heads/main' && env.ALPINE_SKIP_BUILD != '1'
run: scripts/apk/publish-gitea.sh
+30
View File
@@ -0,0 +1,30 @@
name: Package Update Status
on:
schedule:
- cron: "17 5 * * 1"
workflow_dispatch:
jobs:
package-status:
runs-on: ubuntu-latest
container:
image: alpine:3.24
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check packaged upstream versions
run: |
apk add --no-cache bash curl git jq
APK_UPDATE_CHECK_MODE=warn scripts/apk/outdated.sh > update-check.txt
cat update-check.txt
if [ -n "${GITHUB_STEP_SUMMARY:-}" ]; then
{
echo "## Upstream package update check"
echo
echo '```text'
cat update-check.txt
echo '```'
} >> "$GITHUB_STEP_SUMMARY"
fi
+3 -1
View File
@@ -1,5 +1,7 @@
# Alpine Packages
[![Package update check](https://code.factoring.digital/public/alpine-packages/actions/workflows/package-status.yml/badge.svg?branch=main&event=schedule)](https://code.factoring.digital/public/alpine-packages/actions?workflow=package-status.yml)
Alpine stable packaging for internal packages. This repository carries selected
upstream releases ahead of Alpine community packages when we need newer
features, packaging fixes, or service layouts on the current Alpine branch.
@@ -19,7 +21,7 @@ https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages
| Package | APK Name | Package Version | Package Type | Purpose |
|-----------------------------------------------------------|--------------|-----------------|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
| [SeaweedFS](packaging/alpine/local/seaweedfs/README.md) | `seaweedfs` | `4.47` | Binary repackaging of official upstream release tarballs | Ships current SeaweedFS features with Alpine OpenRC role splits. |
| [SeaweedFS](packaging/alpine/local/seaweedfs/README.md) | `seaweedfs` | `4.47` | Source build from upstream release | Builds the baseline upstream feature set with Alpine OpenRC role splits. |
| [GreptimeDB](packaging/alpine/local/greptimedb/README.md) | `greptimedb` | `1.2.1` | Source build from upstream release | Provides a current GreptimeDB build and component OpenRC packages before it is available from Alpine community. |
| [LavinMQ](packaging/alpine/local/lavinmq/README.md) | `lavinmq` | `2.10.0` | Source build from upstream release | Provides a current LavinMQ build on Alpine 3.24 with matching Crystal support. |
| [Gitea](packaging/alpine/local/gitea/README.md) | `gitea` | `1.27.3` | Binary repackaging of official upstream release binaries | Ships current Gitea releases with the expected Alpine runtime layout and OpenRC service. |
+14 -8
View File
@@ -1,7 +1,7 @@
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
pkgname=lavinmq
pkgver=2.10.0
pkgrel=0
pkgrel=1
pkgdesc="High-performance AMQP and MQTT message queue server"
url="https://github.com/cloudamqp/lavinmq"
arch="x86_64"
@@ -9,7 +9,6 @@ license="Apache-2.0"
depends="ca-certificates /bin/sh"
makedepends="
crystal=1.21.0-r0
curl
gc-dev
help2man
libevent-dev
@@ -29,15 +28,21 @@ subpackages="
$pkgname-doc
$pkgname-openrc:_openrc:noarch
"
options="net"
source="
$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.initd
use-vendored-build-inputs.patch
"
export CRYSTAL_CACHE_DIR="${CRYSTAL_CACHE_DIR:-$srcdir/crystal-cache}"
export SHARDS_CACHE_PATH="${SHARDS_CACHE_PATH:-$srcdir/shards-cache}"
prepare() {
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() {
crystal --version
@@ -46,9 +51,7 @@ build() {
}
check() {
bin/lavinmq -v
bin/lavinmqctl --version
bin/lavinmqperf --version
crystal spec spec/config_spec.cr
}
package() {
@@ -70,6 +73,9 @@ _openrc() {
sha512sums="
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
1853196e70297b5c4a2207fde50df735620cf6d99c4994644fd676bffaf863d67300ad7ae771c4bbb86fce1a0485c2a7968cf912c5f5bb878e08b15e5a28ba1b lavinmq.initd
e7617099f745ecbf2f0686830d0a1b28044741ebd543798505b5b3c08f1be96b6cc478eb18f6785af49b100c2f49d837775f0721ac27519ddf3f081e681c581c use-vendored-build-inputs.patch
"
+6 -2
View File
@@ -1,7 +1,9 @@
# LavinMQ Alpine Package
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:
@@ -9,7 +11,9 @@ Build command:
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.
## 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" "$@"
+24 -24
View File
@@ -1,13 +1,13 @@
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
pkgname=seaweedfs
pkgver=4.47
pkgrel=2
pkgrel=3
pkgdesc="Distributed storage system for object storage, file systems, and Iceberg tables"
url="https://github.com/seaweedfs/seaweedfs"
arch="x86_64 aarch64"
license="Apache-2.0"
depends="ca-certificates /bin/sh"
makedepends="build-base cargo rust protobuf-dev"
makedepends="build-base cargo go protobuf-dev rust"
provides="!$pkgname-openrc cmd:weed=$pkgver-r$pkgrel"
install="$pkgname.pre-install"
subpackages="
@@ -24,21 +24,12 @@ subpackages="
$pkgname-worker-lance:_worker_lance
$pkgname-worker-lance-openrc:_openrc_worker_lance:noarch
"
options="!check !strip !tracedeps"
case "$CARCH" in
x86_64)
_archive="$pkgname-$pkgver-linux-amd64.tar.gz"
;;
aarch64)
_archive="$pkgname-$pkgver-linux-arm64.tar.gz"
;;
esac
options="!strip !tracedeps"
source="
$pkgname-$pkgver-linux-amd64.tar.gz::https://github.com/seaweedfs/seaweedfs/releases/download/$pkgver/linux_amd64.tar.gz
$pkgname-$pkgver-linux-arm64.tar.gz::https://github.com/seaweedfs/seaweedfs/releases/download/$pkgver/linux_arm64.tar.gz
$pkgname-$pkgver-src.tar.gz::https://github.com/seaweedfs/seaweedfs/archive/refs/tags/$pkgver.tar.gz
$pkgname-$pkgver-go-vendor.tar.gz
$pkgname-$pkgver-cargo-vendor.tar.gz
admin.toml
credential.toml
example-admin.toml
@@ -66,22 +57,31 @@ source="
weed.bash-completion
"
builddir="$srcdir"
_worker_builddir="$builddir/$pkgname-$pkgver/seaweed-worker"
_worker_builddir="$srcdir/$pkgname-$pkgver/seaweed-worker"
prepare() {
default_prepare
tar -xzf "$srcdir/$_archive" -C "$builddir"
tar -xzf "$srcdir/$pkgname-$pkgver-src.tar.gz" -C "$builddir"
tar -xzf "$srcdir/$pkgname-$pkgver-go-vendor.tar.gz" -C "$builddir"
tar -xzf "$srcdir/$pkgname-$pkgver-cargo-vendor.tar.gz" -C "$_worker_builddir"
mkdir -p "$_worker_builddir/.cargo"
mv "$_worker_builddir/cargo-vendor-config.toml" "$_worker_builddir/.cargo/config.toml"
}
build() {
go build -mod=vendor -buildvcs=false -trimpath -o "$builddir/weed-bin" ./weed
cd "$_worker_builddir"
cargo build --locked --release -p weed-lance-worker
cargo build --frozen --locked --release -p weed-lance-worker
}
check() {
"$builddir/weed-bin" version
"$builddir/weed-bin" scaffold -config master >/dev/null
"${CARGO_TARGET_DIR:-$_worker_builddir/target}/release/weed-worker" --help >/dev/null
}
package() {
install -Dm755 "$srcdir"/weed "$pkgdir"/usr/bin/weed
install -Dm755 "$builddir"/weed-bin "$pkgdir"/usr/bin/weed
install -Dm755 "${CARGO_TARGET_DIR:-$_worker_builddir/target}/release/weed-worker" \
"$pkgdir"/usr/bin/weed-worker
local _config
@@ -137,16 +137,16 @@ _bashcomp() {
}
sha512sums="
f2e90fac760ac93951becce0314fa27aa69308a538a14d9066635d64c5fca07eababdbd41f5bb2215ba5793bf14fa2c019163438467aab2cf5bfea7f204f3faa seaweedfs-4.47-linux-amd64.tar.gz
a3e44542fa6e0f1266dea998a50120325c67a448d2cf09ad370a6d147f3d6096363fea57a056b2bd38d5b0674f4b2695644eed7e93110542efdc03fd8b5cde9e seaweedfs-4.47-linux-arm64.tar.gz
b04ed6a4d16a016d08179a85fb0d4a7cf9de354f39820f8590a92384f5c750236f690a2110e9c33ba253564eadc02f639a329754f48b5d213c9c117c4ba46578 seaweedfs-4.47-src.tar.gz
94ad27f6ef7e94eeefc3e2be8c95e7e9d3839e0257e797b57a595f9eb87039fb1379c6cbd568d39fcc2b324d1bb4f350ece6e04e2d724691efecc1eeb5f7e42e seaweedfs-4.47-go-vendor.tar.gz
924ff6649fb1caeac02c604d31e26eee294fbb902ed7f6410467530e83e5aa4c2a5f06849ce89a0fe4da5cd4e269d4e7395d020b6529094fc8c762ec31fb6b83 seaweedfs-4.47-cargo-vendor.tar.gz
58be6587b082f45b4dd22ad8ebb1b8bf84cea2a7c0cb6b4ad4a749ac0bfdf92d10d22281a432f9e5a87afa0b940cd0172671a292fbe17803e56425cd940d47f9 admin.toml
7f77ad8787629e3defbc89e39e5432482aa50d87ddd723de927a9c6c77b14b1673cbf5b3fc3c18dd7d0eba26fbcd4220d2da6939ed097d0294b24ccd5c002635 credential.toml
507b389f6373b5f4d8ca69f27bc806b39bda8edf7f58e4f32720958e7782ee171dd0461bdecb285e5a8bf2cf4ea3d6cbe8b62ae6ac43c2a40d0eb053d50a22f8 example-admin.toml
7105de7053654b8c0502521ce58585915fc831c3152801e1db02b1c5214dc3c3ed31f4fc18000665d8338c7a10ffbf0d248368bef2ef3a6d37d46cd856398366 example-credential.toml
c6ec4fc7709c42dc6771b5039203c44cbd693742abcd7720936c00b1bd5f99bb2999bb1545680ae4418efedd65d71c234f4602f52ce9d58b1ff7ec53eafb1a1a example-filer.toml
e5753bd0bcc60dc84428c40ba556c08acae61dec083a5b76640125f637532e7c5759a72cdfd95114222a7a0901a916ec3c4d12f306853cfca0fe9a0b1857893e example-master.toml
2d64cde0ba4f91ed78a580399d7cada2af254c974a8f6458be70339d218d772680ca1bdefcb69e3a3eced1b0fd8206fa0e30122c1cd0a4dc9f306f813da935ee example-volume.toml
aea1b3114311304230cb30143825329ef7353a302d094c131ca4e049b847305e2143b76078e6574c6d7d4039c03a2e2d5a4925de80cd7cb2be75b2b522ce47f7 example-volume.toml
2c200c28172a5d0b1c80ab28e849287e7af8d103355638fd3183b8614d3e2b1b3482132522663f7c6d844e10e13b8c6e23fb5fba0dec2cc83de45c2f17b33477 example-notification.toml
328cfe43d0c2ebf5092a1178af45c37b07593085135c31649754f0df9fd4c043847c13b56c3c7c45194541db8082309c4845c825d7011e4c3e503b1e6576528d example-replication.toml
3b45b0f5bf6c5339cfb63c3ddb489b7122e03996ce380c7a244778ef1e7f6c06b4e3e56ea695a2dc3c9c49322a58df865ff50b2904318abafee5e66b2af757f1 example-security.toml
@@ -156,7 +156,7 @@ e5753bd0bcc60dc84428c40ba556c08acae61dec083a5b76640125f637532e7c5759a72cdfd95114
79a078133c259473e601488cd1d8032b74c5fa32da6f34a4ed46efa9736bf5369365a77d775e3d78512b1060cd87012eb40226829eecb30544e1542d165af7d6 security.toml
82e2793bf483ffb5b0c8fbe38e6c9df75afe01f824f8414cafd91e4bed5c79c13dae1ca659070401d4968d16ed4b26455b0c6208f777705527bceb2e5f286988 seaweedfs.admin.confd
5ad952c37c62a770327bd70f7349fa677406606f0b9bf03fdc8f6c6804701f1e77710ab20d6153f9e0cfb549ec161d68a3316abab9c59837bbe3f91ee99e5ce0 seaweedfs.filer.confd
583de285a15b9006881821127b3fa0759216649c87c2f9aa5eaf73993ebfa66f7e06d364b1a35dd332efc9db4867120a3564f6ef12d2b39f00d7020c604599d6 seaweedfs.initd
077c513851bbbe53dd32d26455abc361f97006f9ace1190f96eb4b9136d16befab1a6153752eae8dac695c3a9aed084a00b411684915618cb30dd0770e608403 seaweedfs.initd
57ba77519bb266f0117eaadae3af5ae6bc99bb653668ff526202f327df1c8d93973c0e19dae0c53a19e06389868043c04e53f16f01c851b77fe1387e92cc993b seaweedfs.master.confd
22a3ea6c83266a979ea7c848fc74b40fc0f2ade960b273fa11e63d4a72a1328bd688c9918be3e9234cfb19f889fd9c931388bb5c2863cea3500e534b8bd90282 seaweedfs.s3.confd
3e9c41bc61cdd9a4c53ece64d847eca26ab7d0ce0cc98e72462c3dbb225a40de10a02201362801015a9c629d77d5c0d54c7228e9d20111fb6f478b2267d2db98 seaweedfs.sftp.confd
+9 -4
View File
@@ -1,13 +1,18 @@
# SeaweedFS Alpine Package
Repackages official SeaweedFS 4.47 Linux release tarballs for `x86_64` and
`aarch64`.
Builds SeaweedFS 4.47 from its upstream source release for `x86_64` and
`aarch64`. The package intentionally builds the upstream baseline feature set,
without optional build tags. Versioned Go and Cargo vendor archives make the
build fully offline after source retrieval.
## Package Commands
Refresh generated sources:
When updating SeaweedFS, refresh the vendor archives before generating the
config scaffolds and checksums:
```sh
PACKAGE_DIR=packaging/alpine/local/seaweedfs \
packaging/alpine/local/seaweedfs/scripts/update-vendor-sources.sh
ALPINE_PACKAGE=seaweedfs mise run apk:update-generated
ALPINE_PACKAGE=seaweedfs mise run apk:checksum
```
@@ -140,5 +145,5 @@ rc-service seaweedfs.master restart
Pin:
```sh
apk add seaweedfs=4.47-r2
apk add seaweedfs=4.47-r3
```
@@ -27,3 +27,4 @@ percent = 10
hdd = "500ms"
ssd = "100ms"
nvme = "50ms"
@@ -13,23 +13,13 @@ cleanup() {
}
trap cleanup EXIT
case "$(uname -m)" in
x86_64)
archive="linux_amd64.tar.gz"
;;
aarch64|arm64)
archive="linux_arm64.tar.gz"
;;
*)
printf 'unsupported host architecture for SeaweedFS generated sources: %s\n' "$(uname -m)" >&2
exit 2
;;
esac
curl -fsSL \
-o "${tmpdir}/${archive}" \
"https://github.com/seaweedfs/seaweedfs/releases/download/${pkgver}/${archive}"
tar -xzf "${tmpdir}/${archive}" -C "${tmpdir}" weed
-o "${tmpdir}/seaweedfs-${pkgver}-src.tar.gz" \
"https://github.com/seaweedfs/seaweedfs/archive/refs/tags/${pkgver}.tar.gz"
tar -xzf "${tmpdir}/seaweedfs-${pkgver}-src.tar.gz" -C "${tmpdir}"
source_dir="${tmpdir}/seaweedfs-${pkgver}"
tar -xzf "${package_dir}/seaweedfs-${pkgver}-go-vendor.tar.gz" -C "${source_dir}"
go build -mod=vendor -buildvcs=false -trimpath -o "${tmpdir}/weed" "${source_dir}/weed"
for config in "${configs[@]}"; do
"${tmpdir}/weed" scaffold -config "${config}" 2>/dev/null \
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
set -euo pipefail
package_dir="${PACKAGE_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
pkgver="$(awk -F= '$1 == "pkgver" { print $2; exit }' "${package_dir}/APKBUILD")"
tmpdir="$(mktemp -d)"
cleanup() {
rm -rf "${tmpdir}"
}
trap cleanup EXIT
curl -fsSL \
-o "${tmpdir}/seaweedfs-${pkgver}-src.tar.gz" \
"https://github.com/seaweedfs/seaweedfs/archive/refs/tags/${pkgver}.tar.gz"
tar -xzf "${tmpdir}/seaweedfs-${pkgver}-src.tar.gz" -C "${tmpdir}"
source_dir="${tmpdir}/seaweedfs-${pkgver}"
(
cd "${source_dir}"
go mod vendor
)
(
cd "${source_dir}/seaweed-worker"
cargo vendor --locked vendor > cargo-vendor-config.toml
)
tar --sort=name --mtime='@0' --owner=0 --group=0 --numeric-owner \
-C "${source_dir}" -czf "${package_dir}/seaweedfs-${pkgver}-go-vendor.tar.gz" vendor
tar --sort=name --mtime='@0' --owner=0 --group=0 --numeric-owner \
-C "${source_dir}/seaweed-worker" \
-czf "${package_dir}/seaweedfs-${pkgver}-cargo-vendor.tar.gz" \
vendor cargo-vendor-config.toml
@@ -52,8 +52,6 @@ build_command_args() {
;;
esac
[ -n "${SEAWEEDFS_IP:-}" ] && command_args="$command_args -ip=${SEAWEEDFS_IP}"
[ -n "${SEAWEEDFS_PORT:-}" ] && command_args="$command_args -port=${SEAWEEDFS_PORT}"
command_args="$command_args ${SEAWEEDFS_OPTS:-}"
}