fix: Alpine install scripts - use separate files with valid abuild suffixes
Root cause: .apk-install is not a valid abuild suffix (lines 247-257 of abuild). abuild expects SEPARATE files: pkgname.pre-install, .post-install, .pre-deinstall, .post-deinstall. The old single .apk-install file caused abuild to die with "unknown install script suffix", but CI used || true which masked the failure, so APK was built WITHOUT install scripts. Verified on actual Alpine runner: install script suffixes now pass abuild validation. - configs/linux-patch-api.pre-install: create dirs, set permissions (matches Debian preinst) - configs/linux-patch-api.post-install: copy example configs, enable service (matches Debian postinst) - configs/linux-patch-api.pre-deinstall: stop and disable service (matches Debian prerm) - configs/linux-patch-api.post-deinstall: clean up empty dirs (matches Debian postrm) - Removed configs/linux-patch-api.apk-install (invalid format) - Updated build-alpine.sh: copy 4 install scripts to workspace, updated install= line in APKBUILD
This commit is contained in:
@ -70,18 +70,21 @@ cp configs/whitelist.yaml.example "$PKGDIR"/etc/linux_patch_api/whitelist.yaml.e
|
||||
|
||||
# Prepare workspace for abuild
|
||||
WORKSPACE_DIR=/home/builduser/repo
|
||||
rm -rf "$WORKSPACE_DIR"
|
||||
mkdir -p "$WORKSPACE_DIR"
|
||||
|
||||
# Copy install script to workspace (must be co-located with APKBUILD)
|
||||
cp configs/linux-patch-api.apk-install "$WORKSPACE_DIR"/linux-patch-api.apk-install
|
||||
|
||||
# Copy package directory to workspace
|
||||
cp -r "$PKGDIR" "$WORKSPACE_DIR"/apk-package
|
||||
|
||||
# Copy entire repo to workspace for source references
|
||||
cp -r . "$WORKSPACE_DIR"/src/
|
||||
# Copy install scripts to workspace (must be co-located with APKBUILD)
|
||||
# Alpine abuild requires SEPARATE files with valid suffixes:
|
||||
# pkgname.pre-install, pkgname.post-install, pkgname.pre-deinstall, pkgname.post-deinstall
|
||||
cp configs/linux-patch-api.pre-install "$WORKSPACE_DIR"/linux-patch-api.pre-install
|
||||
cp configs/linux-patch-api.post-install "$WORKSPACE_DIR"/linux-patch-api.post-install
|
||||
cp configs/linux-patch-api.pre-deinstall "$WORKSPACE_DIR"/linux-patch-api.pre-deinstall
|
||||
cp configs/linux-patch-api.post-deinstall "$WORKSPACE_DIR"/linux-patch-api.post-deinstall
|
||||
|
||||
# Create APKBUILD in workspace directory (co-located with install script)
|
||||
# Create APKBUILD in workspace directory (co-located with install scripts)
|
||||
echo "Creating APKBUILD..."
|
||||
cat > "$WORKSPACE_DIR"/APKBUILD << EOF
|
||||
pkgname=linux-patch-api
|
||||
@ -93,7 +96,7 @@ arch="x86_64"
|
||||
license="MIT"
|
||||
makedepends=""
|
||||
depends="openrc"
|
||||
install="linux-patch-api.apk-install"
|
||||
install="linux-patch-api.pre-install linux-patch-api.post-install linux-patch-api.pre-deinstall linux-patch-api.post-deinstall"
|
||||
subpackages=""
|
||||
source=""
|
||||
|
||||
@ -141,16 +144,15 @@ if [ "$(id -u)" = "0" ]; then
|
||||
cp /home/builduser/.abuild/*.rsa.pub /etc/apk/keys/ 2>/dev/null || true
|
||||
|
||||
# Run abuild as builduser in workspace directory
|
||||
# Use || true because index update may fail but APK is still created
|
||||
su - builduser -c "cd $WORKSPACE_DIR && abuild checksum && abuild -d -F" || true
|
||||
su - builduser -c "cd $WORKSPACE_DIR && abuild checksum && abuild -d"
|
||||
|
||||
# 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
|
||||
cp /home/builduser/packages/home/x86_64/*.apk releases/ 2>/dev/null || find /home/builduser/packages -name "*.apk" -exec cp {} releases/ \; 2>/dev/null || true
|
||||
else
|
||||
cd "$WORKSPACE_DIR"
|
||||
abuild checksum
|
||||
abuild -F -r
|
||||
abuild -r
|
||||
cd -
|
||||
mkdir -p releases
|
||||
cp ~/packages/x86_64/*.apk releases/ 2>/dev/null || cp ~/packages/*.apk releases/ 2>/dev/null || true
|
||||
@ -161,4 +163,4 @@ echo "=== Build Complete ==="
|
||||
echo "Package: releases/linux-patch-api-*.apk"
|
||||
echo ""
|
||||
echo "Install with:"
|
||||
echo " sudo apk add --allow-unstable ./releases/linux-patch-api-*.apk"
|
||||
echo " sudo apk add ./releases/linux-patch-api-*.apk"
|
||||
|
||||
Reference in New Issue
Block a user