From 550b16dc0b0266fe27273c100ca7aeff66e35c5a Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Tue, 16 Dec 2025 17:33:55 -0700 Subject: [PATCH] fix build for cargo deps --- Makefile | 8 ++++---- build-cargo-dep.sh | 24 +++++++----------------- core/builder-alias.sh | 2 +- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index afea7c454..2599742dd 100644 --- a/Makefile +++ b/Makefile @@ -374,14 +374,14 @@ uis: $(WEB_UIS) # this is a convenience step to build the UI ui: web/dist/raw/ui -cargo-deps/aarch64-unknown-linux-musl/release/pi-beep: +cargo-deps/aarch64-unknown-linux-musl/release/pi-beep: ./build-cargo-dep.sh ARCH=aarch64 ./build-cargo-dep.sh pi-beep -cargo-deps/$(RUST_ARCH)-unknown-linux-musl/release/tokio-console: +cargo-deps/$(RUST_ARCH)-unknown-linux-musl/release/tokio-console: ./build-cargo-dep.sh ARCH=$(ARCH) PREINSTALL="apk add musl-dev pkgconfig" ./build-cargo-dep.sh tokio-console -cargo-deps/$(RUST_ARCH)-unknown-linux-musl/release/startos-backup-fs: +cargo-deps/$(RUST_ARCH)-unknown-linux-musl/release/startos-backup-fs: ./build-cargo-dep.sh ARCH=$(ARCH) PREINSTALL="apk add fuse3 fuse3-dev fuse3-static musl-dev pkgconfig" ./build-cargo-dep.sh --git https://github.com/Start9Labs/start-fs.git startos-backup-fs -cargo-deps/$(RUST_ARCH)-unknown-linux-musl/release/flamegraph: +cargo-deps/$(RUST_ARCH)-unknown-linux-musl/release/flamegraph: ./build-cargo-dep.sh ARCH=$(ARCH) PREINSTALL="apk add musl-dev pkgconfig" ./build-cargo-dep.sh flamegraph diff --git a/build-cargo-dep.sh b/build-cargo-dep.sh index 538755198..1abb0d279 100755 --- a/build-cargo-dep.sh +++ b/build-cargo-dep.sh @@ -8,11 +8,6 @@ if [ "$0" != "./build-cargo-dep.sh" ]; then exit 1 fi -USE_TTY= -if tty -s; then - USE_TTY="-it" -fi - if [ -z "$ARCH" ]; then ARCH=$(uname -m) fi @@ -22,18 +17,13 @@ if [ "$ARCH" = "riscv64" ]; then RUST_ARCH="riscv64gc" fi -DOCKER_PLATFORM="linux/${ARCH}" -if [ "$ARCH" = aarch64 ] || [ "$ARCH" = arm64 ]; then - DOCKER_PLATFORM="linux/arm64" -elif [ "$ARCH" = x86_64 ]; then - DOCKER_PLATFORM="linux/amd64" -fi - mkdir -p cargo-deps -alias 'rust-musl-builder'='docker run $USE_TTY --platform=${DOCKER_PLATFORM} --rm -e "RUSTFLAGS=$RUSTFLAGS" -v "$HOME/.cargo/registry":/root/.cargo/registry -v "$(pwd)"/cargo-deps:/home/rust/src -w /home/rust/src -P alpine' -PREINSTALL=${PREINSTALL:-true} +source core/builder-alias.sh -rust-musl-builder sh -c "apk add cargo && $PREINSTALL && cargo install $* --target-dir /home/rust/src/$RUST_ARCH-unknown-linux-musl/" -sudo chown -R $USER cargo-deps -sudo chown -R $USER ~/.cargo +RUSTFLAGS="-C target-feature=+crt-static" + +rust-zig-builder cargo-zigbuild install $* --target-dir /workdir/cargo-deps/ --target=$RUST_ARCH-unknown-linux-musl +if [ "$(ls -nd "cargo-deps/$RUST_ARCH-unknown-linux-musl/release/${!#}" | awk '{ print $3 }')" != "$UID" ]; then + rust-zig-builder sh -c "chown -R $UID:$UID core/target && chown -R $UID:$UID /usr/local/cargo" +fi diff --git a/core/builder-alias.sh b/core/builder-alias.sh index f5716db34..20c9e469b 100644 --- a/core/builder-alias.sh +++ b/core/builder-alias.sh @@ -5,4 +5,4 @@ if tty -s; then USE_TTY="-it" fi -alias 'rust-zig-builder'='docker run '"$USE_TTY"' --rm -e "RUSTFLAGS=$RUSTFLAGS" -e "AWS_LC_SYS_CMAKE_TOOLCHAIN_FILE_riscv64gc_unknown_linux_musl=/root/cmake-overrides/toolchain-riscv64-musl-clang.cmake" -e SCCACHE_GHA_ENABLED -e SCCACHE_GHA_VERSION -e ACTIONS_RESULTS_URL -e ACTIONS_RUNTIME_TOKEN -v "$HOME/.cargo/registry":/usr/local/cargo/registry -v "$HOME/.cargo/git":/usr/local/cargo/git -v "$HOME/.cache/sccache":/root/.cache/sccache -v "$HOME/.cache/cargo-zigbuild:/root/.cache/cargo-zigbuild" -v "$(pwd)":/workdir -w /workdir -P start9/cargo-zigbuild' +alias 'rust-zig-builder'='docker run '"$USE_TTY"' --rm -e "RUSTFLAGS=$RUSTFLAGS" -e "PKG_CONFIG_SYSROOT_DIR=/opt/sysroot/$ARCH" -e PKG_CONFIG_PATH="" -e PKG_CONFIG_LIBDIR="/opt/sysroot/$ARCH/usr/lib/pkgconfig" -e "AWS_LC_SYS_CMAKE_TOOLCHAIN_FILE_riscv64gc_unknown_linux_musl=/root/cmake-overrides/toolchain-riscv64-musl-clang.cmake" -e SCCACHE_GHA_ENABLED -e SCCACHE_GHA_VERSION -e ACTIONS_RESULTS_URL -e ACTIONS_RUNTIME_TOKEN -v "$HOME/.cargo/registry":/usr/local/cargo/registry -v "$HOME/.cargo/git":/usr/local/cargo/git -v "$HOME/.cache/sccache":/root/.cache/sccache -v "$HOME/.cache/cargo-zigbuild:/root/.cache/cargo-zigbuild" -v "$(pwd)":/workdir -w /workdir start9/cargo-zigbuild' \ No newline at end of file