From 9cb48a01eb378f1ab0370e991fe8d6227e65fb0d Mon Sep 17 00:00:00 2001 From: Echo Date: Mon, 27 Apr 2026 00:57:03 +0000 Subject: [PATCH] fix: resolve remaining build failures debian/rules: Source cargo env before calling cargo - Add `. "$HOME/.cargo/env"` to override_dh_auto_build build-alpine.sh: Use /home/builduser for all paths - PKGDIR=/home/builduser/apk-package (accessible by builduser) - WORKSPACE_DIR=/home/builduser (for APKBUILD package function) - Removed duplicate else line build-arch.sh: Copy repo to accessible directory - Copy repo contents to /home/builduser/repo before makepkg - Run makepkg in /home/builduser/repo (not act cache path) --- build-alpine.sh | 13 +++++++++---- build-arch.sh | 16 ++++++++++++---- debian/rules | 1 + 3 files changed, 22 insertions(+), 8 deletions(-) mode change 100755 => 100644 debian/rules diff --git a/build-alpine.sh b/build-alpine.sh index d3a1a14..94019df 100644 --- a/build-alpine.sh +++ b/build-alpine.sh @@ -44,8 +44,8 @@ else echo "Skipping cargo build (SKIP_CARGO_BUILD is set)" fi -# Create package directory -PKGDIR=$(pwd)/apk-package +# Create package directory in /home/builduser (accessible by builduser) +PKGDIR=/home/builduser/apk-package mkdir -p "$PKGDIR"/usr/bin mkdir -p "$PKGDIR"/etc/linux_patch_api mkdir -p "$PKGDIR"/etc/init.d @@ -57,8 +57,8 @@ cp configs/linux-patch-api-openrc "$PKGDIR"/etc/init.d/linux-patch-api chmod 755 "$PKGDIR"/etc/init.d/linux-patch-api cp configs/whitelist.yaml.example "$PKGDIR"/etc/linux_patch_api/whitelist.yaml -# Determine workspace path for APKBUILD -WORKSPACE_DIR=$(pwd) +# Use /home/builduser as workspace for APKBUILD +WORKSPACE_DIR=/home/builduser # Create APKBUILD echo "Creating APKBUILD..." @@ -96,6 +96,11 @@ if [ "$(id -u)" = "0" ]; then adduser -D -s /bin/sh builduser 2>/dev/null || true addgroup builduser abuild 2>/dev/null || usermod -aG abuild builduser + # Copy repo contents to builduser home (accessible directory) + cp -r . /home/builduser/repo/ + chown -R builduser:builduser /home/builduser/repo/ + chown -R builduser:builduser /home/builduser/apk-package/ + # Set up builduser home directory for abuild mkdir -p /home/builduser/.abuild cp /root/.abuild/* /home/builduser/.abuild/ 2>/dev/null || true diff --git a/build-arch.sh b/build-arch.sh index 080d755..78fa2ca 100644 --- a/build-arch.sh +++ b/build-arch.sh @@ -64,17 +64,25 @@ echo "Creating .SRCINFO..." # Build package echo "Building Arch package..." -# For CI environments where we may run as root # For CI environments where we may run as root if [ "$(id -u)" = "0" ]; then echo "Running as root - creating build user for makepkg..." useradd -m builduser 2>/dev/null || true - chown -R builduser:builduser "$REPO_DIR" - su - builduser -c "cd $REPO_DIR && makepkg --printsrcinfo > .SRCINFO" - su - builduser -c "cd $REPO_DIR && makepkg -f --noconfirm" + + # Copy repo contents to builduser home (accessible directory) + mkdir -p /home/builduser/repo + cp -r . /home/builduser/repo/ + chown -R builduser:builduser /home/builduser/repo/ + + su - builduser -c "cd /home/builduser/repo && makepkg --printsrcinfo > .SRCINFO" + su - builduser -c "cd /home/builduser/repo && makepkg -f --noconfirm" + + # Copy package to releases + cp /home/builduser/repo/*.pkg.tar.zst releases/ else makepkg --printsrcinfo > .SRCINFO makepkg -f --noconfirm + cp *.pkg.tar.zst releases/ fi # Copy to releases directory diff --git a/debian/rules b/debian/rules old mode 100755 new mode 100644 index 1f6f99b..30a276d --- a/debian/rules +++ b/debian/rules @@ -8,6 +8,7 @@ export DEB_CARGO_BUILD_FLAGS=--release dh $@ override_dh_auto_build: + . "$HOME/.cargo/env" cargo build --release --target x86_64-unknown-linux-gnu override_dh_auto_install: