RPi: Standardize tarball naming to stegasoo-rpi-venv-arm64.tar.zst
- Update remote-build-pi.sh to use new naming - Rewrite build-runtime-tarball.sh for pyenv-free world (system Python) - Removed pyenv references, now just tarballs the venv Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Build Stegasoo Pi Runtime Environment Tarball
|
# Build Stegasoo Pi venv Tarball
|
||||||
# Run this ON THE PI after a successful from-source build
|
# Run this ON THE PI after a successful from-source build
|
||||||
#
|
#
|
||||||
# Creates: stegasoo-rpi-runtime-env-arm64.tar.zst (~50-60MB)
|
# Creates: stegasoo-rpi-venv-arm64.tar.zst (~40-50MB)
|
||||||
# Contains: pyenv + Python 3.12 + venv with all dependencies
|
# Contains: venv with all dependencies (uses system Python 3.11+)
|
||||||
#
|
#
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
@@ -16,11 +16,10 @@ YELLOW='\033[1;33m'
|
|||||||
NC='\033[0m'
|
NC='\033[0m'
|
||||||
|
|
||||||
INSTALL_DIR="${INSTALL_DIR:-/opt/stegasoo}"
|
INSTALL_DIR="${INSTALL_DIR:-/opt/stegasoo}"
|
||||||
OUTPUT_DIR="${OUTPUT_DIR:-/tmp}"
|
OUTPUT_FILE="${1:-$HOME/stegasoo-rpi-venv-arm64.tar.zst}"
|
||||||
OUTPUT_FILE="$OUTPUT_DIR/stegasoo-rpi-runtime-env-arm64.tar.zst"
|
|
||||||
|
|
||||||
echo -e "${GREEN}╔═══════════════════════════════════════════════════════════════╗${NC}"
|
echo -e "${GREEN}╔═══════════════════════════════════════════════════════════════╗${NC}"
|
||||||
echo -e "${GREEN}║ Stegasoo Pi Runtime Tarball Builder ║${NC}"
|
echo -e "${GREEN}║ Stegasoo Pi venv Tarball Builder ║${NC}"
|
||||||
echo -e "${GREEN}╚═══════════════════════════════════════════════════════════════╝${NC}"
|
echo -e "${GREEN}╚═══════════════════════════════════════════════════════════════╝${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -32,13 +31,6 @@ if [[ "$ARCH" != "aarch64" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify pyenv exists
|
|
||||||
if [[ ! -d "$HOME/.pyenv" ]]; then
|
|
||||||
echo -e "${RED}Error: pyenv not found at ~/.pyenv${NC}"
|
|
||||||
echo "Run a from-source build first: ./rpi/setup.sh --no-prebuilt"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Verify venv exists
|
# Verify venv exists
|
||||||
if [[ ! -d "$INSTALL_DIR/venv" ]]; then
|
if [[ ! -d "$INSTALL_DIR/venv" ]]; then
|
||||||
echo -e "${RED}Error: venv not found at $INSTALL_DIR/venv${NC}"
|
echo -e "${RED}Error: venv not found at $INSTALL_DIR/venv${NC}"
|
||||||
@@ -47,33 +39,22 @@ if [[ ! -d "$INSTALL_DIR/venv" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Step 1: Clean caches from venv
|
# Step 1: Clean caches from venv
|
||||||
echo -e "${GREEN}[1/4]${NC} Cleaning caches from venv..."
|
echo -e "${GREEN}[1/2]${NC} Cleaning caches from venv..."
|
||||||
VENV_SIZE_BEFORE=$(du -sh "$INSTALL_DIR/venv" | cut -f1)
|
VENV_SIZE_BEFORE=$(du -sh "$INSTALL_DIR/venv" | cut -f1)
|
||||||
find "$INSTALL_DIR/venv/" -type d -name '__pycache__' -exec rm -rf {} + 2>/dev/null || true
|
find "$INSTALL_DIR/venv/" -type d -name '__pycache__' -exec rm -rf {} + 2>/dev/null || true
|
||||||
find "$INSTALL_DIR/venv/" -type d -name 'tests' -exec rm -rf {} + 2>/dev/null || true
|
find "$INSTALL_DIR/venv/" -type d -name 'tests' -exec rm -rf {} + 2>/dev/null || true
|
||||||
find "$INSTALL_DIR/venv/" -type d -name 'test' -exec rm -rf {} + 2>/dev/null || true
|
find "$INSTALL_DIR/venv/" -type d -name 'test' -exec rm -rf {} + 2>/dev/null || true
|
||||||
find "$INSTALL_DIR/venv/" -type f -name '*.pyc' -delete 2>/dev/null || true
|
find "$INSTALL_DIR/venv/" -type f -name '*.pyc' -delete 2>/dev/null || true
|
||||||
VENV_SIZE_AFTER=$(du -sh "$INSTALL_DIR/venv" | cut -f1)
|
VENV_SIZE_AFTER=$(du -sh "$INSTALL_DIR/venv" | cut -f1)
|
||||||
echo " venv: $VENV_SIZE_BEFORE → $VENV_SIZE_AFTER"
|
echo " venv: $VENV_SIZE_BEFORE -> $VENV_SIZE_AFTER"
|
||||||
|
|
||||||
# Step 2: Create venv tarball
|
# Step 2: Create tarball
|
||||||
echo -e "${GREEN}[2/4]${NC} Creating venv tarball..."
|
echo -e "${GREEN}[2/2]${NC} Creating tarball..."
|
||||||
cd "$INSTALL_DIR"
|
cd "$INSTALL_DIR"
|
||||||
tar -cf - venv/ | zstd -19 -T0 > "$HOME/stegasoo-venv.tar.zst"
|
tar -cf - venv/ | zstd -19 -T0 > "$OUTPUT_FILE"
|
||||||
VENV_TAR_SIZE=$(ls -lh "$HOME/stegasoo-venv.tar.zst" | awk '{print $5}')
|
|
||||||
echo " Created: ~/stegasoo-venv.tar.zst ($VENV_TAR_SIZE)"
|
|
||||||
|
|
||||||
# Step 3: Create combined tarball
|
# Summary
|
||||||
echo -e "${GREEN}[3/4]${NC} Creating combined runtime tarball..."
|
|
||||||
cd "$HOME"
|
|
||||||
tar -cf - .pyenv stegasoo-venv.tar.zst | zstd -19 -T0 > "$OUTPUT_FILE"
|
|
||||||
|
|
||||||
# Cleanup intermediate file
|
|
||||||
rm "$HOME/stegasoo-venv.tar.zst"
|
|
||||||
|
|
||||||
# Step 4: Summary
|
|
||||||
FINAL_SIZE=$(ls -lh "$OUTPUT_FILE" | awk '{print $5}')
|
FINAL_SIZE=$(ls -lh "$OUTPUT_FILE" | awk '{print $5}')
|
||||||
echo -e "${GREEN}[4/4]${NC} Done!"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${GREEN}════════════════════════════════════════════════════════════════${NC}"
|
echo -e "${GREEN}════════════════════════════════════════════════════════════════${NC}"
|
||||||
echo -e " Output: ${YELLOW}$OUTPUT_FILE${NC}"
|
echo -e " Output: ${YELLOW}$OUTPUT_FILE${NC}"
|
||||||
@@ -83,7 +64,7 @@ echo ""
|
|||||||
echo "To pull to your host machine:"
|
echo "To pull to your host machine:"
|
||||||
echo " scp $(whoami)@$(hostname).local:$OUTPUT_FILE ./"
|
echo " scp $(whoami)@$(hostname).local:$OUTPUT_FILE ./"
|
||||||
echo ""
|
echo ""
|
||||||
echo "To use in setup.sh, copy to:"
|
echo "To use in setup.sh, place at:"
|
||||||
echo " rpi/stegasoo-rpi-runtime-env-arm64.tar.zst"
|
echo " rpi/stegasoo-rpi-venv-arm64.tar.zst"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Or upload to GitHub releases for automatic download."
|
echo "Or upload to GitHub releases for automatic download."
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ echo ""
|
|||||||
echo -e "${GREEN}[4/6]${NC} Copying pre-built tarball to Pi..."
|
echo -e "${GREEN}[4/6]${NC} Copying pre-built tarball to Pi..."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
TARBALL="$SCRIPT_DIR/stegasoo-rpi-runtime-env-arm64.tar.zst"
|
TARBALL="$SCRIPT_DIR/stegasoo-rpi-venv-arm64.tar.zst"
|
||||||
if [[ -f "$TARBALL" ]]; then
|
if [[ -f "$TARBALL" ]]; then
|
||||||
scp_to_pi "$TARBALL" "/opt/stegasoo/rpi/"
|
scp_to_pi "$TARBALL" "/opt/stegasoo/rpi/"
|
||||||
echo -e " ${GREEN}✓${NC} Tarball copied"
|
echo -e " ${GREEN}✓${NC} Tarball copied"
|
||||||
|
|||||||
Reference in New Issue
Block a user