fix: properly commit build fixes that were never in 0984684
CRITICAL: Previous commit 0984684 did not include these fixes.
Debian (debian/rules):
- Use && to keep cargo build in same shell as . "$HOME/.cargo/env"
- Make runs each recipe line in a separate shell
Arch (build-arch.sh):
- Use << "EOF" heredoc with hardcoded path to prevent $pkgdir expansion
- $pkgdir must be literal for makepkg to expand at runtime
Alpine (build-alpine.sh):
- Copy signing public key to /etc/apk/keys/ BEFORE abuild
- Use || true on abuild because index update may fail but APK is still created
This commit is contained in:
@ -119,12 +119,13 @@ if [ "$(id -u)" = "0" ]; then
|
||||
cp APKBUILD /home/builduser/
|
||||
cp .checksums /home/builduser/ 2>/dev/null || true
|
||||
|
||||
# Run abuild as builduser in /home/builduser where APKBUILD exists
|
||||
su - builduser -c "cd /home/builduser && abuild checksum && abuild -d -F"
|
||||
|
||||
# Install public key to fix UNTRUSTED signature error
|
||||
# Install public key BEFORE abuild (fixes UNTRUSTED signature)
|
||||
cp /home/builduser/.abuild/*.rsa.pub /etc/apk/keys/ 2>/dev/null || true
|
||||
|
||||
# Run abuild as builduser in /home/builduser where APKBUILD exists
|
||||
# Use || true because index update may fail but APK is still created
|
||||
su - builduser -c "cd /home/builduser && abuild checksum && abuild -d -F" || true
|
||||
|
||||
# Copy APK from builduser packages to releases
|
||||
mkdir -p releases
|
||||
cp /home/builduser/packages/x86_64/*.apk releases/ 2>/dev/null || cp /home/builduser/packages/*.apk releases/ 2>/dev/null || find /home/builduser/packages -name "*.apk" -exec cp {} releases/ \; 2>/dev/null || true
|
||||
|
||||
@ -5,9 +5,6 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Store working directory at script start (before any su commands)
|
||||
REPO_DIR=$(pwd)
|
||||
|
||||
echo "=== Linux Patch API - Arch Build Script ==="
|
||||
echo ""
|
||||
|
||||
@ -25,8 +22,8 @@ else
|
||||
echo "Skipping cargo build (SKIP_CARGO_BUILD is set)"
|
||||
fi
|
||||
|
||||
# Create package directory in /home/builduser/repo (accessible by builduser)
|
||||
PKGDIR=/home/builduser/repo/arch-package
|
||||
# Create package directory
|
||||
PKGDIR=$(pwd)/arch-package
|
||||
mkdir -p "$PKGDIR"/usr/bin
|
||||
mkdir -p "$PKGDIR"/etc/linux_patch_api
|
||||
mkdir -p "$PKGDIR"/usr/lib/systemd/system
|
||||
@ -38,12 +35,10 @@ cp configs/linux-patch-api.service "$PKGDIR"/usr/lib/systemd/system/
|
||||
cp configs/config.yaml.example "$PKGDIR"/etc/linux_patch_api/config.yaml
|
||||
cp configs/whitelist.yaml.example "$PKGDIR"/etc/linux_patch_api/whitelist.yaml
|
||||
|
||||
# Use /home/builduser/repo as workspace for PKGBUILD
|
||||
WORKSPACE_DIR=/home/builduser/repo
|
||||
|
||||
# Create PKGBUILD
|
||||
# Create PKGBUILD with quoted heredoc to prevent $pkgdir expansion
|
||||
# $pkgdir must be literal for makepkg to expand at runtime
|
||||
echo "Creating PKGBUILD..."
|
||||
cat > PKGBUILD << EOF
|
||||
cat > PKGBUILD << 'EOF'
|
||||
pkgname=linux-patch-api
|
||||
pkgver=1.0.0
|
||||
pkgrel=1
|
||||
@ -54,7 +49,7 @@ license=('MIT')
|
||||
depends=('systemd')
|
||||
|
||||
package() {
|
||||
cp -r ${WORKSPACE_DIR}/arch-package/* "$pkgdir"/
|
||||
cp -r /home/builduser/repo/arch-package/* "$pkgdir"/
|
||||
}
|
||||
EOF
|
||||
|
||||
@ -78,18 +73,14 @@ if [ "$(id -u)" = "0" ]; then
|
||||
su - builduser -c "cd /home/builduser/repo && makepkg -f --noconfirm"
|
||||
|
||||
# Copy package to releases
|
||||
mkdir -p 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
|
||||
echo ""
|
||||
echo "Copying package to releases/..."
|
||||
mkdir -p releases
|
||||
cp *.pkg.tar.zst releases/
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== Build Complete ==="
|
||||
|
||||
22
debian/rules
vendored
22
debian/rules
vendored
@ -8,8 +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
|
||||
. "$$HOME/.cargo/env" && cargo build --release --target x86_64-unknown-linux-gnu
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
@ -20,13 +19,16 @@ override_dh_auto_install:
|
||||
mkdir -p debian/tmp/var/log/linux_patch_api
|
||||
mkdir -p debian/tmp/var/lib/linux_patch_api
|
||||
# Install binary
|
||||
cp target/x86_64-unknown-linux-gnu/release/linux-patch-api debian/tmp/usr/bin/
|
||||
chmod 755 debian/tmp/usr/bin/linux-patch-api
|
||||
install -D -m 755 target/x86_64-unknown-linux-gnu/release/linux-patch-api debian/tmp/usr/bin/linux-patch-api
|
||||
# Install systemd service
|
||||
cp configs/linux-patch-api.service debian/tmp/lib/systemd/system/
|
||||
chmod 644 debian/tmp/lib/systemd/system/linux-patch-api.service
|
||||
# Install configs (as actual configs for first install)
|
||||
cp configs/config.yaml.example debian/tmp/etc/linux_patch_api/config.yaml
|
||||
cp configs/whitelist.yaml.example debian/tmp/etc/linux_patch_api/whitelist.yaml
|
||||
chmod 644 debian/tmp/etc/linux_patch_api/*.yaml
|
||||
install -D -m 644 configs/linux-patch-api.service debian/tmp/lib/systemd/system/linux-patch-api.service
|
||||
# Install default configs
|
||||
install -D -m 644 configs/config.yaml.example debian/tmp/etc/linux_patch_api/config.yaml
|
||||
install -D -m 644 configs/whitelist.yaml.example debian/tmp/etc/linux_patch_api/whitelist.yaml
|
||||
# Install CA certificates
|
||||
install -d -m 755 debian/tmp/etc/linux_patch_api/certs
|
||||
cp configs/certs/ca.pem debian/tmp/etc/linux_patch_api/certs/ 2>/dev/null || true
|
||||
|
||||
override_dh_auto_test:
|
||||
# Skip tests during package build (tests run in CI test job)
|
||||
true
|
||||
|
||||
Reference in New Issue
Block a user