#!/bin/bash # Download Offline Packages Script for Kivy Signage Player # This script downloads all necessary Python packages and documents system packages set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_DIR="$SCRIPT_DIR/repo" WHEELS_DIR="$REPO_DIR/python-wheels" SYSTEM_DIR="$REPO_DIR/system-packages" echo "==========================================" echo "Downloading Offline Packages" echo "==========================================" echo "" # Check if repo directory exists if [ ! -d "$REPO_DIR" ]; then echo "Error: repo directory not found!" echo "Creating directories..." mkdir -p "$WHEELS_DIR" mkdir -p "$SYSTEM_DIR" fi # Download Python packages echo "Step 1: Downloading Python wheels..." echo "--------------------" cd "$SCRIPT_DIR" # Check if pip is installed if ! command -v pip3 &> /dev/null; then echo "Error: pip3 is not installed. Please install it first:" echo " sudo apt install python3-pip" exit 1 fi # Download all Python packages and their dependencies echo "Downloading packages from requirements.txt..." pip3 download -r requirements.txt -d "$WHEELS_DIR" --platform linux_armv7l --only-binary=:all: || \ pip3 download -r requirements.txt -d "$WHEELS_DIR" || true # Also download for general Linux platforms as fallback echo "Downloading cross-platform packages..." pip3 download -r requirements.txt -d "$WHEELS_DIR" || true echo "" echo "Python wheels downloaded to: $WHEELS_DIR" echo "Total wheel files: $(ls -1 "$WHEELS_DIR"/*.whl 2>/dev/null | wc -l)" # List system packages echo "" echo "Step 2: System packages information" echo "--------------------" echo "System packages are listed in: $SYSTEM_DIR/apt-packages.txt" echo "" echo "To download .deb files for offline installation, run:" echo " bash download_deb_packages.sh" echo "" # Summary echo "==========================================" echo "Download Complete!" echo "==========================================" echo "" echo "Offline packages ready in: $REPO_DIR" echo "" echo "Next steps:" echo "1. Copy the entire 'repo' folder to your offline system" echo "2. Run: bash install.sh" echo " (The installer will automatically detect and use offline packages)" echo ""