From aa051266bbb86fa31d9090f1be191e7b86e490b5 Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Thu, 5 Mar 2026 14:21:45 +0300 Subject: [PATCH] fix: replace build_bee_debug with proper apkovl mechanism for Alpine LiveCD - genapkovl-bee_debug.sh: creates apkovl tarball with overlay files, /etc/apk/world package list, runlevel symlinks, dropbear config - mkimg.bee_debug.sh: set hostname/apkovl, remove invalid build_bee_debug --- iso/builder/genapkovl-bee_debug.sh | 112 +++++++++++++++++++++++++++++ iso/builder/mkimg.bee_debug.sh | 21 +----- 2 files changed, 114 insertions(+), 19 deletions(-) create mode 100755 iso/builder/genapkovl-bee_debug.sh diff --git a/iso/builder/genapkovl-bee_debug.sh b/iso/builder/genapkovl-bee_debug.sh new file mode 100755 index 0000000..ef178e8 --- /dev/null +++ b/iso/builder/genapkovl-bee_debug.sh @@ -0,0 +1,112 @@ +#!/bin/sh -e +# genapkovl-bee_debug.sh — generate apkovl for bee debug LiveCD +# Called by mkimage.sh: receives hostname as , must create .apkovl.tar.gz + +HOSTNAME="$1" +if [ -z "$HOSTNAME" ]; then + echo "usage: $0 hostname" + exit 1 +fi + +OVERLAY="${BEE_OVERLAY_DIR}" +if [ -z "$OVERLAY" ]; then + echo "ERROR: BEE_OVERLAY_DIR not set" + exit 1 +fi + +cleanup() { rm -rf "$tmp"; } +tmp="$(mktemp -d)" +trap cleanup EXIT + +makefile() { + OWNER="$1" PERMS="$2" FILENAME="$3" + cat > "$FILENAME" + chown "$OWNER" "$FILENAME" + chmod "$PERMS" "$FILENAME" +} + +rc_add() { + mkdir -p "$tmp/etc/runlevels/$2" + ln -sf /etc/init.d/"$1" "$tmp/etc/runlevels/$2/$1" +} + +# --- hostname --- +mkdir -p "$tmp/etc" +makefile root:root 0644 "$tmp/etc/hostname" </dev/null || true + chmod 600 "$tmp/root/.ssh/authorized_keys" 2>/dev/null || true +fi + +# --- dropbear: enable root login --- +mkdir -p "$tmp/etc/dropbear" "$tmp/etc/conf.d" +makefile root:root 0644 "$tmp/etc/conf.d/dropbear" </dev/null | gzip -9n > "$HOSTNAME.apkovl.tar.gz" diff --git a/iso/builder/mkimg.bee_debug.sh b/iso/builder/mkimg.bee_debug.sh index 41e599f..3f29a68 100644 --- a/iso/builder/mkimg.bee_debug.sh +++ b/iso/builder/mkimg.bee_debug.sh @@ -1,12 +1,12 @@ #!/bin/sh # Alpine mkimage profile: bee_debug -# Minimal LiveCD with audit binary + SSH for development/testing. -# No NVIDIA driver. SSH root login enabled. profile_bee_debug() { title="Bee Hardware Audit (debug)" desc="Hardware audit LiveCD with SSH access for testing" arch="x86_64" + hostname="alpine-bee" + apkovl="genapkovl-bee_debug.sh" image_ext="iso" output_format="iso" kernel_flavors="lts" @@ -43,21 +43,4 @@ profile_bee_debug() { less vim " - - # overlay is applied after package install - # contains: audit binary, dropbear init, authorized_keys -} - -build_bee_debug() { - # BEE_OVERLAY_DIR is exported by build-debug.sh (absolute path). - local overlay="${BEE_OVERLAY_DIR}" - if [ -d "$overlay" ]; then - cp -r "${overlay}/." "${ROOTFS}/" - fi - - # enable services - _bootscript default bee-sshsetup - _bootscript default dropbear - _bootscript default bee-network - _bootscript default bee-audit-debug }