Update PKGBUILD versions and add AUR test scripts
- Update pkgver fallback to 4.2.1 in all PKGBUILDs - Add test-aur-build.sh for Docker-based testing - Add test-aur-nspawn.sh for systemd-nspawn testing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Maintainer: Aaron D. Lee <your-email@example.com>
|
# Maintainer: Aaron D. Lee <your-email@example.com>
|
||||||
pkgname=stegasoo-api-git
|
pkgname=stegasoo-api-git
|
||||||
pkgver=4.2.0.r6.g34ede38
|
pkgver=4.2.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Stegasoo REST API with TLS and API key authentication"
|
pkgdesc="Stegasoo REST API with TLS and API key authentication"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Maintainer: Aaron D. Lee <your-email@example.com>
|
# Maintainer: Aaron D. Lee <your-email@example.com>
|
||||||
pkgname=stegasoo-cli-git
|
pkgname=stegasoo-cli-git
|
||||||
pkgver=4.2.0.r4.g525bcec
|
pkgver=4.2.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Secure steganography CLI with hybrid photo + passphrase + PIN authentication"
|
pkgdesc="Secure steganography CLI with hybrid photo + passphrase + PIN authentication"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Maintainer: Aaron D. Lee <your-email@example.com>
|
# Maintainer: Aaron D. Lee <your-email@example.com>
|
||||||
pkgname=stegasoo-git
|
pkgname=stegasoo-git
|
||||||
pkgver=4.2.0.r0.g2ebc42f
|
pkgver=4.2.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Secure steganography with hybrid photo + passphrase + PIN authentication"
|
pkgdesc="Secure steganography with hybrid photo + passphrase + PIN authentication"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
|
|||||||
107
test-aur-build.sh
Normal file
107
test-aur-build.sh
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Test AUR package builds in a clean Arch container
|
||||||
|
#
|
||||||
|
# Usage: sudo ./test-aur-build.sh [package]
|
||||||
|
# package: all (default), full, cli, api
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PACKAGE="${1:-all}"
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
|
echo "=== Stegasoo AUR Build Test ==="
|
||||||
|
echo "Package: $PACKAGE"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Create a test script to run inside container
|
||||||
|
cat > /tmp/aur-build-test.sh << 'INNERSCRIPT'
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Update system
|
||||||
|
pacman -Syu --noconfirm
|
||||||
|
|
||||||
|
# Install build dependencies
|
||||||
|
pacman -S --noconfirm --needed \
|
||||||
|
base-devel git python python-build python-hatchling \
|
||||||
|
zbar
|
||||||
|
|
||||||
|
# Create build user (makepkg won't run as root)
|
||||||
|
useradd -m builder
|
||||||
|
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||||
|
|
||||||
|
# Copy source to build location
|
||||||
|
cp -r /src /home/builder/stegasoo
|
||||||
|
chown -R builder:builder /home/builder/stegasoo
|
||||||
|
|
||||||
|
build_package() {
|
||||||
|
local pkg_dir="$1"
|
||||||
|
local pkg_name="$2"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Building: $pkg_name"
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
|
cd "/home/builder/stegasoo/$pkg_dir"
|
||||||
|
|
||||||
|
# Build as non-root user
|
||||||
|
sudo -u builder makepkg -sf --noconfirm
|
||||||
|
|
||||||
|
# Show result
|
||||||
|
ls -lh *.pkg.tar.zst
|
||||||
|
|
||||||
|
# Test install
|
||||||
|
echo "Installing $pkg_name..."
|
||||||
|
pacman -U --noconfirm *.pkg.tar.zst
|
||||||
|
|
||||||
|
# Quick test
|
||||||
|
echo "Testing $pkg_name..."
|
||||||
|
stegasoo --version
|
||||||
|
stegasoo --help | head -20
|
||||||
|
|
||||||
|
# Uninstall for next test
|
||||||
|
pacman -R --noconfirm "${pkg_name%-git}" 2>/dev/null || pacman -R --noconfirm "$pkg_name" 2>/dev/null || true
|
||||||
|
|
||||||
|
echo "$pkg_name: SUCCESS"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
full)
|
||||||
|
build_package "aur" "stegasoo-git"
|
||||||
|
;;
|
||||||
|
cli)
|
||||||
|
build_package "aur-cli" "stegasoo-cli-git"
|
||||||
|
;;
|
||||||
|
api)
|
||||||
|
build_package "aur-api" "stegasoo-api-git"
|
||||||
|
;;
|
||||||
|
all)
|
||||||
|
build_package "aur" "stegasoo-git"
|
||||||
|
build_package "aur-cli" "stegasoo-cli-git"
|
||||||
|
build_package "aur-api" "stegasoo-api-git"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown package: $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
echo "All builds completed successfully!"
|
||||||
|
echo "=========================================="
|
||||||
|
INNERSCRIPT
|
||||||
|
|
||||||
|
chmod +x /tmp/aur-build-test.sh
|
||||||
|
|
||||||
|
# Run in Arch container
|
||||||
|
echo "Starting Arch container..."
|
||||||
|
docker run --rm -it \
|
||||||
|
-v "$SCRIPT_DIR:/src:ro" \
|
||||||
|
-v "/tmp/aur-build-test.sh:/build.sh:ro" \
|
||||||
|
archlinux:latest \
|
||||||
|
/bin/bash -c "chmod +x /build.sh && /build.sh $PACKAGE"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== Build test complete ==="
|
||||||
130
test-aur-nspawn.sh
Normal file
130
test-aur-nspawn.sh
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Test AUR package builds using systemd-nspawn
|
||||||
|
#
|
||||||
|
# Usage: sudo ./test-aur-nspawn.sh [package]
|
||||||
|
# package: all (default), full, cli, api
|
||||||
|
#
|
||||||
|
# First run creates Arch root at /tmp/arch-build-root
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PACKAGE="${1:-all}"
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
ARCH_ROOT="/tmp/arch-build-root"
|
||||||
|
|
||||||
|
echo "=== Stegasoo AUR Build Test (nspawn) ==="
|
||||||
|
echo "Package: $PACKAGE"
|
||||||
|
echo "Arch root: $ARCH_ROOT"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Check for root
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "Please run as root (sudo)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create Arch root if it doesn't exist
|
||||||
|
if [ ! -d "$ARCH_ROOT/usr" ]; then
|
||||||
|
echo "Creating Arch root (first time setup)..."
|
||||||
|
mkdir -p "$ARCH_ROOT"
|
||||||
|
pacstrap -c "$ARCH_ROOT" base base-devel git python python-build python-hatchling zbar
|
||||||
|
echo "Arch root created."
|
||||||
|
else
|
||||||
|
echo "Using existing Arch root."
|
||||||
|
# Update packages
|
||||||
|
arch-chroot "$ARCH_ROOT" pacman -Syu --noconfirm
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create build user if needed
|
||||||
|
if ! arch-chroot "$ARCH_ROOT" id builder &>/dev/null; then
|
||||||
|
arch-chroot "$ARCH_ROOT" useradd -m builder
|
||||||
|
echo "builder ALL=(ALL) NOPASSWD: ALL" >> "$ARCH_ROOT/etc/sudoers"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copy source
|
||||||
|
rm -rf "$ARCH_ROOT/home/builder/stegasoo"
|
||||||
|
cp -r "$SCRIPT_DIR" "$ARCH_ROOT/home/builder/stegasoo"
|
||||||
|
arch-chroot "$ARCH_ROOT" chown -R builder:builder /home/builder/stegasoo
|
||||||
|
|
||||||
|
# Create build script
|
||||||
|
cat > "$ARCH_ROOT/tmp/build.sh" << 'BUILDSCRIPT'
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
build_package() {
|
||||||
|
local pkg_dir="$1"
|
||||||
|
local pkg_name="$2"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Building: $pkg_name"
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
|
cd "/home/builder/stegasoo/$pkg_dir"
|
||||||
|
|
||||||
|
# Clean previous builds
|
||||||
|
rm -rf src pkg *.pkg.tar.zst "${pkg_name}" 2>/dev/null || true
|
||||||
|
|
||||||
|
# Build as non-root user
|
||||||
|
sudo -u builder makepkg -sf --noconfirm
|
||||||
|
|
||||||
|
# Show result
|
||||||
|
ls -lh *.pkg.tar.zst
|
||||||
|
|
||||||
|
# Test install
|
||||||
|
echo "Installing $pkg_name..."
|
||||||
|
pacman -U --noconfirm *.pkg.tar.zst
|
||||||
|
|
||||||
|
# Quick test
|
||||||
|
echo "Testing $pkg_name..."
|
||||||
|
/usr/bin/stegasoo --version
|
||||||
|
|
||||||
|
# More tests for API package
|
||||||
|
if [[ "$pkg_name" == *"api"* ]]; then
|
||||||
|
/usr/bin/stegasoo api --help
|
||||||
|
/usr/bin/stegasoo api keys list
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Uninstall for next test
|
||||||
|
pacman -Rns --noconfirm $(pacman -Qq | grep stegasoo) 2>/dev/null || true
|
||||||
|
|
||||||
|
echo "$pkg_name: SUCCESS"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
full)
|
||||||
|
build_package "aur" "stegasoo-git"
|
||||||
|
;;
|
||||||
|
cli)
|
||||||
|
build_package "aur-cli" "stegasoo-cli-git"
|
||||||
|
;;
|
||||||
|
api)
|
||||||
|
build_package "aur-api" "stegasoo-api-git"
|
||||||
|
;;
|
||||||
|
all)
|
||||||
|
build_package "aur-cli" "stegasoo-cli-git"
|
||||||
|
build_package "aur-api" "stegasoo-api-git"
|
||||||
|
build_package "aur" "stegasoo-git"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown package: $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
echo "All builds completed successfully!"
|
||||||
|
echo "=========================================="
|
||||||
|
BUILDSCRIPT
|
||||||
|
|
||||||
|
chmod +x "$ARCH_ROOT/tmp/build.sh"
|
||||||
|
|
||||||
|
# Run build in nspawn container
|
||||||
|
echo "Starting nspawn container..."
|
||||||
|
systemd-nspawn -D "$ARCH_ROOT" --bind-ro="$SCRIPT_DIR:/home/builder/stegasoo" /tmp/build.sh "$PACKAGE"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== Build test complete ==="
|
||||||
|
echo "Arch root preserved at: $ARCH_ROOT"
|
||||||
|
echo "To clean up: sudo rm -rf $ARCH_ROOT"
|
||||||
Reference in New Issue
Block a user