build seaweedfs from vendored source

This commit is contained in:
Joachim Schlöffel
2026-09-26 16:26:27 +02:00
parent a2da4acc53
commit 13a2d0dd16
7 changed files with 71 additions and 43 deletions
@@ -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