feat(install): Add pre-built wheel support for 32-bit ARM (Pi Zero W)
Host pre-built dbus_fast wheel on GitHub Releases to significantly speed up installation on 32-bit ARM devices like Raspberry Pi Zero W. Changes: - Created GitHub Release (armv6l-wheels-v1) with dbus_fast 2.44.5 wheel - Python 3.13 on ARMv6l architecture - 874KB wheel file saves ~20 minutes of compilation on Pi Zero W - Release URL: https://github.com/torlando-tech/ble-reticulum/releases/tag/armv6l-wheels-v1 - Modified install.sh to auto-download pre-built wheels: - Detects Python 3.13 on 32-bit ARM (armhf/armv6l/armv7l) - Downloads dbus_fast wheel from GitHub Releases - Falls back gracefully to source build if download fails - Saves ~20 minutes installation time on Pi Zero W - Updated README.md with comprehensive documentation: - Added "Pre-built Wheels for Raspberry Pi Zero W" section - Documented automatic installation behavior - Provided manual installation instructions - Explained why pre-built wheels matter for low-power devices - Added quick reference in automated installation section Time savings on Pi Zero W: - Before: 15-30 minutes (compile dbus_fast C extensions from source) - After: < 10 seconds (download and install pre-built wheel) The installer now transparently optimizes for Pi Zero W while maintaining compatibility with all other platforms. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
b5f21c3fd4
commit
dd83bef7d3
2 changed files with 83 additions and 0 deletions
29
install.sh
29
install.sh
|
|
@ -323,6 +323,35 @@ echo
|
|||
# Step 3: Install Python dependencies
|
||||
print_header "Installing Python Dependencies"
|
||||
|
||||
# Download pre-built wheels for 32-bit ARM (Pi Zero W optimization)
|
||||
# Saves ~15-30 minutes of compilation time for packages with C extensions
|
||||
if [[ "$ARCH" == "armhf" ]] || [[ "$(uname -m)" =~ ^(armv6l|armv7l)$ ]]; then
|
||||
PYTHON_VER=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")' 2>/dev/null || echo "unknown")
|
||||
|
||||
if [[ "$PYTHON_VER" == "3.13" ]]; then
|
||||
print_info "Python 3.13 on 32-bit ARM detected - downloading pre-built dbus_fast wheel..."
|
||||
print_info "This saves ~20 minutes of compilation time on Pi Zero W"
|
||||
|
||||
WHEEL_URL="https://github.com/torlando-tech/ble-reticulum/releases/download/armv6l-wheels-v1/dbus_fast-2.44.5-cp313-cp313-linux_armv6l.whl"
|
||||
WHEEL_FILE="/tmp/dbus_fast-armv6l-$$.whl"
|
||||
|
||||
if curl -sL "$WHEEL_URL" -o "$WHEEL_FILE" 2>/dev/null; then
|
||||
if [ -f "$WHEEL_FILE" ] && [ -s "$WHEEL_FILE" ]; then
|
||||
print_success "Pre-built dbus_fast wheel downloaded (874KB)"
|
||||
pip_install "$WHEEL_FILE"
|
||||
rm -f "$WHEEL_FILE"
|
||||
print_success "dbus_fast installed from pre-built wheel"
|
||||
else
|
||||
print_warning "Download failed or file empty, will build from source if needed"
|
||||
rm -f "$WHEEL_FILE"
|
||||
fi
|
||||
else
|
||||
print_warning "Could not download pre-built wheel, will build from source if needed"
|
||||
fi
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
print_info "Installing pip packages (PyGObject, dbus-python, pycairo provided by system packages)"
|
||||
|
||||
if [ "$INSTALL_MODE" = "venv" ]; then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue