add source build for lance (rust) worker to avoid glibc compat dependency
Build Alpine Packages / build-and-publish (v3.24, 3.24) (pull_request) Successful in 49m43s

This commit is contained in:
Joachim Schlöffel
2026-09-06 10:53:23 +02:00
parent b5af335ec5
commit f1af2660eb
7 changed files with 33 additions and 53 deletions
+22 -32
View File
@@ -7,6 +7,7 @@ url="https://github.com/seaweedfs/seaweedfs"
arch="x86_64 aarch64" arch="x86_64 aarch64"
license="Apache-2.0" license="Apache-2.0"
depends="ca-certificates /bin/sh" depends="ca-certificates /bin/sh"
makedepends="build-base cargo rust protobuf-dev"
provides="!$pkgname-openrc cmd:weed=$pkgver-r$pkgrel" provides="!$pkgname-openrc cmd:weed=$pkgver-r$pkgrel"
install="$pkgname.pre-install" install="$pkgname.pre-install"
subpackages=" subpackages="
@@ -20,27 +21,24 @@ subpackages="
$pkgname-volume-openrc:_openrc_volume:noarch $pkgname-volume-openrc:_openrc_volume:noarch
$pkgname-webdav-openrc:_openrc_webdav:noarch $pkgname-webdav-openrc:_openrc_webdav:noarch
$pkgname-worker-openrc:_openrc_worker:noarch $pkgname-worker-openrc:_openrc_worker:noarch
$pkgname-worker-rust:_worker_rust $pkgname-worker-lance:_worker_lance
$pkgname-worker-rust-openrc:_openrc_worker_rust:noarch $pkgname-worker-lance-openrc:_openrc_worker_lance:noarch
" "
options="!check !strip !tracedeps" options="!check !strip !tracedeps"
case "$CARCH" in case "$CARCH" in
x86_64) x86_64)
_archive="$pkgname-$pkgver-linux-amd64.tar.gz" _archive="$pkgname-$pkgver-linux-amd64.tar.gz"
_worker_archive="$pkgname-worker-$pkgver-linux-amd64.tar.gz"
;; ;;
aarch64) aarch64)
_archive="$pkgname-$pkgver-linux-arm64.tar.gz" _archive="$pkgname-$pkgver-linux-arm64.tar.gz"
_worker_archive="$pkgname-worker-$pkgver-linux-arm64.tar.gz"
;; ;;
esac esac
source=" source="
$pkgname-$pkgver-linux-amd64.tar.gz::https://github.com/seaweedfs/seaweedfs/releases/download/$pkgver/linux_amd64.tar.gz $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-linux-arm64.tar.gz::https://github.com/seaweedfs/seaweedfs/releases/download/$pkgver/linux_arm64.tar.gz
$pkgname-worker-$pkgver-linux-amd64.tar.gz::https://github.com/seaweedfs/seaweedfs/releases/download/$pkgver/weed-worker_linux_amd64.tar.gz $pkgname-$pkgver-src.tar.gz::https://github.com/seaweedfs/seaweedfs/archive/refs/tags/$pkgver.tar.gz
$pkgname-worker-$pkgver-linux-arm64.tar.gz::https://github.com/seaweedfs/seaweedfs/releases/download/$pkgver/weed-worker_linux_arm64.tar.gz
admin.toml admin.toml
example-admin.toml example-admin.toml
credential.toml credential.toml
@@ -66,35 +64,28 @@ source="
seaweedfs.volume.confd seaweedfs.volume.confd
seaweedfs.webdav.confd seaweedfs.webdav.confd
seaweedfs.worker.confd seaweedfs.worker.confd
seaweedfs.worker-rust.confd seaweedfs.worker-lance.confd
weed-worker-wrapper
weed.bash-completion weed.bash-completion
" "
builddir="$srcdir" builddir="$srcdir"
_worker_builddir="$builddir/$pkgname-$pkgver/seaweed-worker"
prepare() { prepare() {
default_prepare default_prepare
tar -xzf "$srcdir/$_archive" -C "$builddir" tar -xzf "$srcdir/$_archive" -C "$builddir"
tar -xzf "$srcdir/$_worker_archive" -C "$builddir" tar -xzf "$srcdir/$pkgname-$pkgver-src.tar.gz" -C "$builddir"
} }
build() { build() {
cat > "$builddir"/res_init.c <<'EOF' cd "$_worker_builddir"
#include <resolv.h> cargo build --locked --release -p weed-lance-worker
int __res_init(void) {
return res_init();
}
EOF
${CC:-cc} -shared -fPIC -o "$builddir"/libresinit.so "$builddir"/res_init.c
} }
package() { package() {
install -Dm755 "$srcdir"/weed "$pkgdir"/usr/bin/weed install -Dm755 "$srcdir"/weed "$pkgdir"/usr/bin/weed
install -Dm755 "$srcdir"/weed-worker "$pkgdir"/usr/lib/seaweedfs/weed-worker install -Dm755 "${CARGO_TARGET_DIR:-$_worker_builddir/target}/release/weed-worker" \
install -Dm755 "$srcdir"/weed-worker-wrapper "$pkgdir"/usr/bin/weed-worker "$pkgdir"/usr/bin/weed-worker
install -Dm755 "$builddir"/libresinit.so "$pkgdir"/usr/lib/seaweedfs/libresinit.so
local _config local _config
for _config in admin credential filer master notification replication security shell; do for _config in admin credential filer master notification replication security shell; do
install -Dm644 "$srcdir"/$_config.toml \ install -Dm644 "$srcdir"/$_config.toml \
@@ -123,16 +114,17 @@ _openrc_sftp() { _openrc_service sftp; }
_openrc_volume() { _openrc_service volume; } _openrc_volume() { _openrc_service volume; }
_openrc_webdav() { _openrc_service webdav; } _openrc_webdav() { _openrc_service webdav; }
_openrc_worker() { _openrc_service worker; } _openrc_worker() { _openrc_service worker; }
_worker_rust() {
pkgdesc="Rust worker for SeaweedFS Lance table maintenance"
depends="$pkgname=$pkgver-r$pkgrel gcompat libgcc"
amove usr/bin/weed-worker usr/lib/seaweedfs _worker_lance() {
pkgdesc="SeaweedFS Lance table maintenance worker"
depends="$pkgname=$pkgver-r$pkgrel libgcc"
amove usr/bin/weed-worker
} }
_openrc_worker_rust() { _openrc_worker_lance() {
_openrc_service worker-rust _openrc_service worker-lance
depends="$pkgname-worker-rust=$pkgver-r$pkgrel $depends" depends="$pkgname-worker-lance=$pkgver-r$pkgrel $depends"
} }
_bashcomp() { _bashcomp() {
@@ -147,8 +139,7 @@ _bashcomp() {
sha512sums=" sha512sums="
7307107cc6c48b37ae019bdde4a2d62408b6577d9276f3b8c94764a716aa3dea919165a7bece94c84f834bd55e0cd2861dfeeeb00c57fd37d8964e9baef29ec0 seaweedfs-4.45-linux-amd64.tar.gz 7307107cc6c48b37ae019bdde4a2d62408b6577d9276f3b8c94764a716aa3dea919165a7bece94c84f834bd55e0cd2861dfeeeb00c57fd37d8964e9baef29ec0 seaweedfs-4.45-linux-amd64.tar.gz
2580ccc65fc8704d4534af40475f88dc8e69e807e035d366780ba1dba7df835c591f07ba6414323c79e8ac63565da1533b92724f88eb62096ce15b1a5447a8d9 seaweedfs-4.45-linux-arm64.tar.gz 2580ccc65fc8704d4534af40475f88dc8e69e807e035d366780ba1dba7df835c591f07ba6414323c79e8ac63565da1533b92724f88eb62096ce15b1a5447a8d9 seaweedfs-4.45-linux-arm64.tar.gz
fc39b0988ae857f59f2d8da14216743a958a1e7019b01becc65974d759cfdf0bc310e718150efa050d96a69a32bbdd8682447768f9faf792108cb44ff26bc66c seaweedfs-worker-4.45-linux-amd64.tar.gz 0ec16ea593cf154caf04b53bd81ce9a24276ecc1f6c09f0f91d82ee1218b1c12c4e8ebc79aea5ca166b988e6f8dcaffdb87ef3ff8816a99f14719c054c7fc144 seaweedfs-4.45-src.tar.gz
4d5e59fdc029f2b79e8e8de372166bc83382e68d805a141728d34d40a39041eaa0bd3ccde75d8da64d98a3a3f74f60bc45976ab9abc84c9a7ec8a1ef867aa451 seaweedfs-worker-4.45-linux-arm64.tar.gz
4f24760848c909fdee1ae8569ef7ef7cbec2c885d891a543d7beddee492bddbf266e6789601095a86798d1b00256782c45297ea36cdb527bb6b64980dd02486a admin.toml 4f24760848c909fdee1ae8569ef7ef7cbec2c885d891a543d7beddee492bddbf266e6789601095a86798d1b00256782c45297ea36cdb527bb6b64980dd02486a admin.toml
507b389f6373b5f4d8ca69f27bc806b39bda8edf7f58e4f32720958e7782ee171dd0461bdecb285e5a8bf2cf4ea3d6cbe8b62ae6ac43c2a40d0eb053d50a22f8 example-admin.toml 507b389f6373b5f4d8ca69f27bc806b39bda8edf7f58e4f32720958e7782ee171dd0461bdecb285e5a8bf2cf4ea3d6cbe8b62ae6ac43c2a40d0eb053d50a22f8 example-admin.toml
b6ce09d6d83dd70e2797a185171eea3587436fb024a99b4998f714b713244d6f768ef59f67c9b7251650d4f19d414eea231eab92099763d85cd92e41cb2bdc3f credential.toml b6ce09d6d83dd70e2797a185171eea3587436fb024a99b4998f714b713244d6f768ef59f67c9b7251650d4f19d414eea231eab92099763d85cd92e41cb2bdc3f credential.toml
@@ -167,14 +158,13 @@ d21981923b5964cf8365185a4f7c28a14e33ba6f60ad63e797e315544a6c22efdaa72814292824c0
7a91ce9da79b92e5ef42d4915f56a010bceaaa6c96dcef1f7b1821ee208d381aaa88b9cf495248276132e66d3215927f589b7fabc4eae2c2cb195645f904fac7 shell.toml 7a91ce9da79b92e5ef42d4915f56a010bceaaa6c96dcef1f7b1821ee208d381aaa88b9cf495248276132e66d3215927f589b7fabc4eae2c2cb195645f904fac7 shell.toml
82e2793bf483ffb5b0c8fbe38e6c9df75afe01f824f8414cafd91e4bed5c79c13dae1ca659070401d4968d16ed4b26455b0c6208f777705527bceb2e5f286988 seaweedfs.admin.confd 82e2793bf483ffb5b0c8fbe38e6c9df75afe01f824f8414cafd91e4bed5c79c13dae1ca659070401d4968d16ed4b26455b0c6208f777705527bceb2e5f286988 seaweedfs.admin.confd
5ad952c37c62a770327bd70f7349fa677406606f0b9bf03fdc8f6c6804701f1e77710ab20d6153f9e0cfb549ec161d68a3316abab9c59837bbe3f91ee99e5ce0 seaweedfs.filer.confd 5ad952c37c62a770327bd70f7349fa677406606f0b9bf03fdc8f6c6804701f1e77710ab20d6153f9e0cfb549ec161d68a3316abab9c59837bbe3f91ee99e5ce0 seaweedfs.filer.confd
8a25e70ea874d58bf5450c91a54b8016d26b0dac61be7634cfbfc196bc2a21ae539911485ba9f72e515b42684c13e25f86cbd4c1427c29dc751c031613b40d32 seaweedfs.initd 077c513851bbbe53dd32d26455abc361f97006f9ace1190f96eb4b9136d16befab1a6153752eae8dac695c3a9aed084a00b411684915618cb30dd0770e608403 seaweedfs.initd
57ba77519bb266f0117eaadae3af5ae6bc99bb653668ff526202f327df1c8d93973c0e19dae0c53a19e06389868043c04e53f16f01c851b77fe1387e92cc993b seaweedfs.master.confd 57ba77519bb266f0117eaadae3af5ae6bc99bb653668ff526202f327df1c8d93973c0e19dae0c53a19e06389868043c04e53f16f01c851b77fe1387e92cc993b seaweedfs.master.confd
22a3ea6c83266a979ea7c848fc74b40fc0f2ade960b273fa11e63d4a72a1328bd688c9918be3e9234cfb19f889fd9c931388bb5c2863cea3500e534b8bd90282 seaweedfs.s3.confd 22a3ea6c83266a979ea7c848fc74b40fc0f2ade960b273fa11e63d4a72a1328bd688c9918be3e9234cfb19f889fd9c931388bb5c2863cea3500e534b8bd90282 seaweedfs.s3.confd
3e9c41bc61cdd9a4c53ece64d847eca26ab7d0ce0cc98e72462c3dbb225a40de10a02201362801015a9c629d77d5c0d54c7228e9d20111fb6f478b2267d2db98 seaweedfs.sftp.confd 3e9c41bc61cdd9a4c53ece64d847eca26ab7d0ce0cc98e72462c3dbb225a40de10a02201362801015a9c629d77d5c0d54c7228e9d20111fb6f478b2267d2db98 seaweedfs.sftp.confd
262cc5132a70a43f9f154d24da16fe2f34f736c0bfdafd56cd341b7f34b48b82aa3a38a93d64206360c391e1167e2b665a3ade5c7eddfe4b322253521629f4e0 seaweedfs.volume.confd 262cc5132a70a43f9f154d24da16fe2f34f736c0bfdafd56cd341b7f34b48b82aa3a38a93d64206360c391e1167e2b665a3ade5c7eddfe4b322253521629f4e0 seaweedfs.volume.confd
84a9caa8f5203a31f2f96ef812dca8e4f7597f8f06ed3f55db38daff167448b0332564a421dcb356405d761c7a9e815656208d431e84b8106951554ab7ef2142 seaweedfs.webdav.confd 84a9caa8f5203a31f2f96ef812dca8e4f7597f8f06ed3f55db38daff167448b0332564a421dcb356405d761c7a9e815656208d431e84b8106951554ab7ef2142 seaweedfs.webdav.confd
b586dfbdbcf17591366a7a62c4da6f2b13e1bd5dfb5b066beea114d01057eeb3d81172814655d812c48e02336277b3d70fa9f9550923cfe616e9dd8162661f51 seaweedfs.worker.confd b586dfbdbcf17591366a7a62c4da6f2b13e1bd5dfb5b066beea114d01057eeb3d81172814655d812c48e02336277b3d70fa9f9550923cfe616e9dd8162661f51 seaweedfs.worker.confd
72508778ad85fc9722c4d4e9d862434b0714e0e37315550ae05210090131fc3ad857635ff248cc978199b3612ea3c085b4f34904ec00bb7ceca6258ba0dc26c9 seaweedfs.worker-rust.confd 0a06a1ea007a6e4e0110a6208830f080685b81f6e1aae8453a75941ef54e4506155e4c7be125b2eed0b971050d0743118cf1454b6e9d01cf8eec02005125b6b2 seaweedfs.worker-lance.confd
8deb0d366b54238c0fbd64fc0473f7212b95472f6dd1708f30131ae66d3d40d89c8f5de8093d5a5bd7b84fd4568f3844ca5ec4b86a2166708746da4b87449fc4 weed-worker-wrapper
2815330810545d17cffd993d93502c934c24af5aeff8f7096bcf0f020f895f1da50b74c356c028b67de552cbd8e4ccfa176636da2642feae99542035e4272171 weed.bash-completion 2815330810545d17cffd993d93502c934c24af5aeff8f7096bcf0f020f895f1da50b74c356c028b67de552cbd8e4ccfa176636da2642feae99542035e4272171 weed.bash-completion
" "
+4 -4
View File
@@ -54,7 +54,7 @@ seaweedfs-webdav-openrc -> /etc/init.d/seaweedfs.webdav
seaweedfs-sftp-openrc -> /etc/init.d/seaweedfs.sftp seaweedfs-sftp-openrc -> /etc/init.d/seaweedfs.sftp
seaweedfs-admin-openrc -> /etc/init.d/seaweedfs.admin seaweedfs-admin-openrc -> /etc/init.d/seaweedfs.admin
seaweedfs-worker-openrc -> /etc/init.d/seaweedfs.worker seaweedfs-worker-openrc -> /etc/init.d/seaweedfs.worker
seaweedfs-worker-rust-openrc -> /etc/init.d/seaweedfs.worker-rust seaweedfs-worker-lance-openrc -> /etc/init.d/seaweedfs.worker-lance
``` ```
Replace Alpine's old generic OpenRC package before installing a role split: Replace Alpine's old generic OpenRC package before installing a role split:
@@ -95,9 +95,9 @@ rc-update add seaweedfs.filer default
rc-service seaweedfs.filer start rc-service seaweedfs.filer start
# Optional: Lance table maintenance (requires a Lance namespace endpoint) # Optional: Lance table maintenance (requires a Lance namespace endpoint)
apk add seaweedfs-worker-rust-openrc apk add seaweedfs-worker-lance-openrc
rc-update add seaweedfs.worker-rust default rc-update add seaweedfs.worker-lance default
rc-service seaweedfs.worker-rust start rc-service seaweedfs.worker-lance start
``` ```
Check status: Check status:
@@ -7,7 +7,7 @@ apk add seaweedfs \
seaweedfs-master-openrc \ seaweedfs-master-openrc \
seaweedfs-volume-openrc \ seaweedfs-volume-openrc \
seaweedfs-filer-openrc \ seaweedfs-filer-openrc \
seaweedfs-worker-rust-openrc seaweedfs-worker-lance-openrc
test -x /usr/bin/weed test -x /usr/bin/weed
test -d /etc/seaweedfs test -d /etc/seaweedfs
@@ -20,7 +20,7 @@ test -f /etc/conf.d/seaweedfs.filer
test -f /etc/init.d/seaweedfs.master test -f /etc/init.d/seaweedfs.master
test -f /etc/init.d/seaweedfs.volume test -f /etc/init.d/seaweedfs.volume
test -f /etc/init.d/seaweedfs.filer test -f /etc/init.d/seaweedfs.filer
test -f /etc/init.d/seaweedfs.worker-rust test -f /etc/init.d/seaweedfs.worker-lance
test -x /usr/bin/weed-worker test -x /usr/bin/weed-worker
/usr/bin/weed-worker --help >/dev/null /usr/bin/weed-worker --help >/dev/null
test -d /usr/share/doc/seaweedfs/examples test -d /usr/share/doc/seaweedfs/examples
@@ -16,7 +16,7 @@ apk_test_install_run "${repo_root}" "${PACKAGE_NAME:-seaweedfs}" "${PACKAGE_VERS
seaweedfs-master-openrc \ seaweedfs-master-openrc \
seaweedfs-volume-openrc \ seaweedfs-volume-openrc \
seaweedfs-filer-openrc \ seaweedfs-filer-openrc \
seaweedfs-worker-rust-openrc seaweedfs-worker-lance-openrc
test -x /usr/bin/weed test -x /usr/bin/weed
test -d /etc/seaweedfs test -d /etc/seaweedfs
@@ -29,7 +29,7 @@ apk_test_install_run "${repo_root}" "${PACKAGE_NAME:-seaweedfs}" "${PACKAGE_VERS
test -f /etc/init.d/seaweedfs.master test -f /etc/init.d/seaweedfs.master
test -f /etc/init.d/seaweedfs.volume test -f /etc/init.d/seaweedfs.volume
test -f /etc/init.d/seaweedfs.filer test -f /etc/init.d/seaweedfs.filer
test -f /etc/init.d/seaweedfs.worker-rust test -f /etc/init.d/seaweedfs.worker-lance
test -x /usr/bin/weed-worker test -x /usr/bin/weed-worker
/usr/bin/weed-worker --help >/dev/null /usr/bin/weed-worker --help >/dev/null
@@ -46,7 +46,7 @@ build_command_args() {
data_dir="${SEAWEEDFS_DATA_DIR:-/var/lib/seaweedfs/worker}" data_dir="${SEAWEEDFS_DATA_DIR:-/var/lib/seaweedfs/worker}"
command_args="$command_args -admin=${SEAWEEDFS_ADMIN:-localhost:23646} -workingDir=${data_dir}" command_args="$command_args -admin=${SEAWEEDFS_ADMIN:-localhost:23646} -workingDir=${data_dir}"
;; ;;
worker-rust) worker-lance)
command="/usr/bin/weed-worker" command="/usr/bin/weed-worker"
command_args="--admin ${SEAWEEDFS_ADMIN:-localhost:23646} --namespace ${SEAWEEDFS_LANCE_NAMESPACE:-http://localhost:9101}" command_args="--admin ${SEAWEEDFS_ADMIN:-localhost:23646} --namespace ${SEAWEEDFS_LANCE_NAMESPACE:-http://localhost:9101}"
;; ;;
@@ -66,7 +66,7 @@ depend() {
s3|webdav|sftp) s3|webdav|sftp)
after seaweedfs.filer after seaweedfs.filer
;; ;;
worker|worker-rust) worker|worker-lance)
after seaweedfs.admin after seaweedfs.admin
;; ;;
esac esac
@@ -1,4 +1,4 @@
# Rust Lance maintenance worker. It is optional and requires a Lance namespace. # Lance maintenance worker. It is optional and requires a Lance namespace.
SEAWEEDFS_ADMIN="localhost:23646" SEAWEEDFS_ADMIN="localhost:23646"
SEAWEEDFS_LANCE_NAMESPACE="http://localhost:9101" SEAWEEDFS_LANCE_NAMESPACE="http://localhost:9101"
SEAWEEDFS_OPTS="" SEAWEEDFS_OPTS=""
@@ -1,10 +0,0 @@
#!/bin/sh
shim="/usr/lib/seaweedfs/libresinit.so"
if [ -n "${LD_PRELOAD:-}" ]; then
export LD_PRELOAD="${shim}:${LD_PRELOAD}"
else
export LD_PRELOAD="${shim}"
fi
exec /usr/lib/seaweedfs/weed-worker "$@"