Parallel builds and package updates #11

Merged
fspjo merged 22 commits from development into main 2026-09-29 11:00:07 +02:00
7 changed files with 8 additions and 70 deletions
Showing only changes of commit 03daf40d6e - Show all commits
+1
View File
@@ -5,3 +5,4 @@ packaging/alpine/*/*/pkg/
packaging/alpine/*/*/src/
packaging/alpine/*/*/*.apk
packaging/alpine/*/*/*.tar.*
!packaging/alpine/*/*/*-vendor.tar.gz
-4
View File
@@ -33,10 +33,6 @@ run = "scripts/apk/build.sh checksum"
description = "Refresh packaged upstream examples and shell completions"
run = "scripts/apk/update-generated-sources.sh"
[tasks."apk:update-vendor"]
description = "Refresh package-local vendored source archives"
run = "scripts/apk/update-vendor-sources.sh"
[tasks."apk:lint"]
description = "Run Alpine APKBUILD lint in Docker"
run = "scripts/apk/build.sh lint"
+3 -11
View File
@@ -24,12 +24,10 @@ subpackages="
$pkgname-worker-lance:_worker_lance
$pkgname-worker-lance-openrc:_openrc_worker_lance:noarch
"
options="!strip !tracedeps"
options="!strip !tracedeps net"
source="
$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
@@ -61,17 +59,13 @@ _worker_builddir="$srcdir/$pkgname-$pkgver/seaweed-worker"
prepare() {
default_prepare
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
go build -mod=readonly -buildvcs=false -trimpath -o "$builddir/weed-bin" ./weed
cd "$_worker_builddir"
cargo build --frozen --locked --release -p weed-lance-worker
cargo build --locked --release -p weed-lance-worker
}
check() {
@@ -138,8 +132,6 @@ _bashcomp() {
sha512sums="
91a34fec9bb78832f421b54dd823adb1c1690b746083d947c5f72e4ad7670362512bbb920432f42342482774fd8be2b396645ff3bc764b10f328432601733fe3 seaweedfs-4.48-src.tar.gz
25020f7fce02672fd716a0d35fa45b6a55833dbb23f6dc17598478077f0f6d84bb9071da32ce061801c22c8c64990ec93ac7403887c494eff81cd2e1f8875a62 seaweedfs-4.48-go-vendor.tar.gz
10ac7b7d877936559454c253303ab1b21cc125a662122f1129036763a914295f8cae2303f61f806dbf39cbcd1725be95a612f545f2295ac6f19d32357952949c seaweedfs-4.48-cargo-vendor.tar.gz
58be6587b082f45b4dd22ad8ebb1b8bf84cea2a7c0cb6b4ad4a749ac0bfdf92d10d22281a432f9e5a87afa0b940cd0172671a292fbe17803e56425cd940d47f9 admin.toml
7f77ad8787629e3defbc89e39e5432482aa50d87ddd723de927a9c6c77b14b1673cbf5b3fc3c18dd7d0eba26fbcd4220d2da6939ed097d0294b24ccd5c002635 credential.toml
507b389f6373b5f4d8ca69f27bc806b39bda8edf7f58e4f32720958e7782ee171dd0461bdecb285e5a8bf2cf4ea3d6cbe8b62ae6ac43c2a40d0eb053d50a22f8 example-admin.toml
+3 -5
View File
@@ -2,16 +2,14 @@
Builds SeaweedFS 4.48 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.
without optional build tags. Go and Cargo dependencies are resolved from the
versions pinned in the upstream `go.sum` and `Cargo.lock` files.
## Package Commands
When updating SeaweedFS, refresh the vendor archives before generating the
config scaffolds and checksums:
When updating SeaweedFS, generate the config scaffolds and refresh checksums:
```sh
ALPINE_PACKAGE=seaweedfs mise run apk:update-vendor
ALPINE_PACKAGE=seaweedfs mise run apk:update-generated
ALPINE_PACKAGE=seaweedfs mise run apk:checksum
```
@@ -23,10 +23,9 @@ if [[ ! -f "${source_archive}" ]]; then
fi
tar -xzf "${source_archive}" -C "${tmpdir}"
source_dir="${tmpdir}/seaweedfs-${pkgver}"
tar -xzf "${package_dir}/seaweedfs-${pkgver}-go-vendor.tar.gz" -C "${source_dir}"
(
cd "${source_dir}"
go build -mod=vendor -buildvcs=false -trimpath -o "${tmpdir}/weed" ./weed
go build -mod=readonly -buildvcs=false -trimpath -o "${tmpdir}/weed" ./weed
)
for config in "${configs[@]}"; do
@@ -1,38 +0,0 @@
#!/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)"
repo_root="${REPO_ROOT:-$(cd "${package_dir}/../../../.." && pwd)}"
source_archive="${repo_root}/.cache/apk-distfiles/seaweedfs-${pkgver}-src.tar.gz"
cleanup() {
rm -rf "${tmpdir}"
}
trap cleanup EXIT
if [[ ! -f "${source_archive}" ]]; then
source_archive="${tmpdir}/seaweedfs-${pkgver}-src.tar.gz"
curl -fsSL \
-o "${source_archive}" \
"https://github.com/seaweedfs/seaweedfs/archive/refs/tags/${pkgver}.tar.gz"
fi
tar -xzf "${source_archive}" -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
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
. "${repo_root}/scripts/apk/package-lib.sh"
while IFS= read -r package_dir; do
apk_validate_package_dir "${package_dir}"
apk_run_package_hook "${repo_root}" "${package_dir}" update-vendor-sources
done < <(apk_package_dirs "${repo_root}")