modify the vendor folder aarch64
This commit is contained in:
110
Makefile
110
Makefile
@@ -24,6 +24,10 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
VENDOR_DIR := vendor/$(PLATFORM)-$(ARCH)
|
VENDOR_DIR := vendor/$(PLATFORM)-$(ARCH)
|
||||||
|
# Vendor directories for air-gapped deployment
|
||||||
|
VENDOR_MACOS := vendor/macos-arm64
|
||||||
|
VENDOR_LINUX_X86 := vendor/linux-x86_64
|
||||||
|
VENDOR_LINUX_ARM := vendor/linux-aarch64
|
||||||
|
|
||||||
# ---------- Config ----------
|
# ---------- Config ----------
|
||||||
IMAGE := hdwallet-build:3.12
|
IMAGE := hdwallet-build:3.12
|
||||||
@@ -45,9 +49,12 @@ help:
|
|||||||
@echo "📦 Vendoring (for offline/air-gapped use):"
|
@echo "📦 Vendoring (for offline/air-gapped use):"
|
||||||
@echo " make vendor-macos - Build macOS ARM64 wheels (requires macOS native)"
|
@echo " make vendor-macos - Build macOS ARM64 wheels (requires macOS native)"
|
||||||
@echo " make vendor-linux - Build Linux x86_64 wheels (Docker - any OS)"
|
@echo " make vendor-linux - Build Linux x86_64 wheels (Docker - any OS)"
|
||||||
|
@echo " make vendor-linux-arm - Build Linux ARM64/aarch64 wheels (Docker)"
|
||||||
@echo " make vendor-linux-dev - Build Linux x86_64 dev wheels (includes pytest)"
|
@echo " make vendor-linux-dev - Build Linux x86_64 dev wheels (includes pytest)"
|
||||||
@echo " make vendor-all - Build runtime wheels for both platforms"
|
@echo " make vendor-linux-arm-dev - Build Linux ARM64 dev wheels (includes pytest)"
|
||||||
@echo " make vendor-all-dev - Build runtime + dev wheels for all platforms"
|
@echo " make vendor-all - Build runtime wheels for ALL platforms"
|
||||||
|
@echo " make vendor-all-dev - Build runtime + dev wheels for Linux platforms"
|
||||||
|
|
||||||
@echo " make verify-vendor - Test offline installation from vendor/"
|
@echo " make verify-vendor - Test offline installation from vendor/"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "🔨 Binary Distribution:"
|
@echo "🔨 Binary Distribution:"
|
||||||
@@ -127,6 +134,70 @@ vendor-linux: requirements.txt
|
|||||||
"
|
"
|
||||||
@echo "✓ Linux x86_64 wheels: $(VENDOR_LINUX)/"
|
@echo "✓ Linux x86_64 wheels: $(VENDOR_LINUX)/"
|
||||||
|
|
||||||
|
# Add after vendor-linux target:
|
||||||
|
|
||||||
|
.PHONY: vendor-linux-arm
|
||||||
|
vendor-linux-arm: requirements.txt
|
||||||
|
@echo "Building Linux ARM64/aarch64 wheels (Docker)..."
|
||||||
|
mkdir -p $(VENDOR_LINUX_ARM)
|
||||||
|
docker run --rm \
|
||||||
|
--platform linux/arm64 \
|
||||||
|
-v "$$PWD":$(WORKDIR) \
|
||||||
|
-w $(WORKDIR) \
|
||||||
|
python:3.12-slim \
|
||||||
|
bash -c " \
|
||||||
|
set -e && \
|
||||||
|
apt-get update -qq && apt-get install -y -qq gcc g++ make libffi-dev && \
|
||||||
|
pip install --upgrade pip && \
|
||||||
|
pip download --dest $(VENDOR_LINUX_ARM) -r requirements.txt && \
|
||||||
|
pip wheel --wheel-dir $(VENDOR_LINUX_ARM) --no-deps $(VENDOR_LINUX_ARM)/*.tar.gz 2>/dev/null || true && \
|
||||||
|
rm -f $(VENDOR_LINUX_ARM)/*.tar.gz && \
|
||||||
|
cd $(VENDOR_LINUX_ARM) && sha256sum *.whl > SHA256SUMS \
|
||||||
|
"
|
||||||
|
@echo "✓ Linux ARM64 wheels: $(VENDOR_LINUX_ARM)/"
|
||||||
|
|
||||||
|
.PHONY: vendor-linux-arm-dev
|
||||||
|
vendor-linux-arm-dev: requirements-dev.txt
|
||||||
|
@echo "Building Linux ARM64 dev wheels (Docker)..."
|
||||||
|
mkdir -p $(VENDOR_LINUX_ARM)-dev
|
||||||
|
docker run --rm \
|
||||||
|
--platform linux/arm64 \
|
||||||
|
-v "$$PWD":$(WORKDIR) \
|
||||||
|
-w $(WORKDIR) \
|
||||||
|
python:3.12-slim \
|
||||||
|
bash -c " \
|
||||||
|
set -e && \
|
||||||
|
apt-get update -qq && apt-get install -y -qq gcc g++ make libffi-dev && \
|
||||||
|
pip install --upgrade pip && \
|
||||||
|
pip download --dest $(VENDOR_LINUX_ARM)-dev -r requirements-dev.txt && \
|
||||||
|
pip wheel --wheel-dir $(VENDOR_LINUX_ARM)-dev --no-deps $(VENDOR_LINUX_ARM)-dev/*.tar.gz 2>/dev/null || true && \
|
||||||
|
rm -f $(VENDOR_LINUX_ARM)-dev/*.tar.gz && \
|
||||||
|
cd $(VENDOR_LINUX_ARM)-dev && sha256sum *.whl > SHA256SUMS \
|
||||||
|
"
|
||||||
|
@echo "✓ Linux ARM64 dev wheels: $(VENDOR_LINUX_ARM)-dev/"
|
||||||
|
|
||||||
|
# Update vendor-all:
|
||||||
|
.PHONY: vendor-all
|
||||||
|
vendor-all: vendor-macos vendor-linux vendor-linux-arm
|
||||||
|
@echo ""
|
||||||
|
@echo "✓ All platforms vendored (runtime only):"
|
||||||
|
@echo " macOS ARM64: $(VENDOR_MACOS)/ ($$(ls $(VENDOR_MACOS)/*.whl 2>/dev/null | wc -l | xargs) wheels)"
|
||||||
|
@echo " Linux x86_64: $(VENDOR_LINUX_X86)/ ($$(ls $(VENDOR_LINUX_X86)/*.whl 2>/dev/null | wc -l | xargs) wheels)"
|
||||||
|
@echo " Linux aarch64: $(VENDOR_LINUX_ARM)/ ($$(ls $(VENDOR_LINUX_ARM)/*.whl 2>/dev/null | wc -l | xargs) wheels)"
|
||||||
|
@echo ""
|
||||||
|
@echo "Commit with: git add vendor/ && git commit -m 'vendor: update wheels'"
|
||||||
|
|
||||||
|
.PHONY: vendor-all-dev
|
||||||
|
vendor-all-dev: vendor-linux vendor-linux-dev vendor-linux-arm vendor-linux-arm-dev
|
||||||
|
@echo ""
|
||||||
|
@echo "✓ All platform wheels (runtime + dev):"
|
||||||
|
@echo " Linux x86_64 (runtime): $(VENDOR_LINUX_X86)/"
|
||||||
|
@echo " Linux x86_64 (dev): $(VENDOR_LINUX_X86)-dev/"
|
||||||
|
@echo " Linux aarch64 (runtime): $(VENDOR_LINUX_ARM)/"
|
||||||
|
@echo " Linux aarch64 (dev): $(VENDOR_LINUX_ARM)-dev/"
|
||||||
|
@echo ""
|
||||||
|
@echo "For macOS dev wheels, run on native macOS"
|
||||||
|
|
||||||
.PHONY: vendor-linux-dev
|
.PHONY: vendor-linux-dev
|
||||||
vendor-linux-dev: requirements-dev.txt
|
vendor-linux-dev: requirements-dev.txt
|
||||||
@echo "Building Linux x86_64 dev wheels (Docker)..."
|
@echo "Building Linux x86_64 dev wheels (Docker)..."
|
||||||
@@ -147,26 +218,6 @@ vendor-linux-dev: requirements-dev.txt
|
|||||||
"
|
"
|
||||||
@echo "✓ Linux x86_64 dev wheels: $(VENDOR_LINUX)-dev/"
|
@echo "✓ Linux x86_64 dev wheels: $(VENDOR_LINUX)-dev/"
|
||||||
|
|
||||||
.PHONY: vendor-all
|
|
||||||
vendor-all: vendor-macos vendor-linux
|
|
||||||
@echo ""
|
|
||||||
@echo "✓ All platforms vendored (runtime only):"
|
|
||||||
@echo " macOS ARM64: $(VENDOR_MACOS)/ ($$(ls $(VENDOR_MACOS)/*.whl 2>/dev/null | wc -l | xargs) wheels)"
|
|
||||||
@echo " Linux x86_64: $(VENDOR_LINUX)/ ($$(ls $(VENDOR_LINUX)/*.whl 2>/dev/null | wc -l | xargs) wheels)"
|
|
||||||
@echo ""
|
|
||||||
@echo "Commit with: git add vendor/ && git commit -m 'vendor: update wheels'"
|
|
||||||
|
|
||||||
.PHONY: vendor-all-dev
|
|
||||||
vendor-all-dev: vendor-linux vendor-linux-dev
|
|
||||||
@echo ""
|
|
||||||
@echo "✓ All platform wheels (runtime + dev):"
|
|
||||||
@echo " Linux x86_64 (runtime): $(VENDOR_LINUX)/ ($$(ls $(VENDOR_LINUX)/*.whl 2>/dev/null | wc -l | xargs) wheels)"
|
|
||||||
@echo " Linux x86_64 (dev): $(VENDOR_LINUX)-dev/ ($$(ls $(VENDOR_LINUX)-dev/*.whl 2>/dev/null | wc -l | xargs) wheels)"
|
|
||||||
@echo ""
|
|
||||||
@echo "For macOS dev wheels, run on native macOS:"
|
|
||||||
@echo " python3.12 -m venv .venv312 && source .venv312/bin/activate"
|
|
||||||
@echo " pip download --dest vendor/macos-arm64-dev -r requirements-dev.txt"
|
|
||||||
|
|
||||||
.PHONY: verify-vendor
|
.PHONY: verify-vendor
|
||||||
verify-vendor:
|
verify-vendor:
|
||||||
@echo "Testing offline installation from vendor/..."
|
@echo "Testing offline installation from vendor/..."
|
||||||
@@ -377,3 +428,18 @@ clean-release:
|
|||||||
@echo "🧹 Cleaning release artifacts..."
|
@echo "🧹 Cleaning release artifacts..."
|
||||||
@rm -rf releases/
|
@rm -rf releases/
|
||||||
@echo "✅ Release artifacts cleaned"
|
@echo "✅ Release artifacts cleaned"
|
||||||
|
|
||||||
|
.PHONY: clean-vendor
|
||||||
|
clean-vendor:
|
||||||
|
@echo "Removing all vendor wheels..."
|
||||||
|
rm -rf vendor/
|
||||||
|
@echo "✓ Vendor directory cleaned"
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean: clean-vendor
|
||||||
|
@echo "Removing virtual environments..."
|
||||||
|
rm -rf .venv
|
||||||
|
@echo "Removing Python cache..."
|
||||||
|
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
|
||||||
|
find . -type f -name "*.pyc" -delete
|
||||||
|
@echo "✓ Cleanup complete"
|
||||||
|
|||||||
@@ -10,7 +10,19 @@ fi
|
|||||||
|
|
||||||
# Detect platform
|
# Detect platform
|
||||||
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||||
PLATFORM="linux-x86_64"
|
ARCH=$(uname -m)
|
||||||
|
case "$ARCH" in
|
||||||
|
x86_64)
|
||||||
|
PLATFORM="linux-x86_64"
|
||||||
|
;;
|
||||||
|
aarch64|arm64)
|
||||||
|
PLATFORM="linux-aarch64"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "ERROR: Unsupported Linux architecture: $ARCH"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
if [[ "$ARCH" == "arm64" ]]; then
|
if [[ "$ARCH" == "arm64" ]]; then
|
||||||
@@ -24,7 +36,7 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Detected platform: $PLATFORM"
|
echo "Detected platform: $PLATFORM ($(uname -m))"
|
||||||
|
|
||||||
# Check if vendor directory exists
|
# Check if vendor directory exists
|
||||||
VENDOR_PATH="vendor/$PLATFORM"
|
VENDOR_PATH="vendor/$PLATFORM"
|
||||||
@@ -34,10 +46,26 @@ fi
|
|||||||
|
|
||||||
if [ ! -d "$VENDOR_PATH" ]; then
|
if [ ! -d "$VENDOR_PATH" ]; then
|
||||||
echo "ERROR: $VENDOR_PATH not found!"
|
echo "ERROR: $VENDOR_PATH not found!"
|
||||||
|
echo ""
|
||||||
|
echo "Available vendor directories:"
|
||||||
|
ls -d vendor/*/ 2>/dev/null || echo " (none)"
|
||||||
|
echo ""
|
||||||
if [ "$DEV_MODE" = true ]; then
|
if [ "$DEV_MODE" = true ]; then
|
||||||
echo "Run 'make vendor-linux-dev' to generate dev wheels"
|
echo "To build dev wheels:"
|
||||||
|
if [[ "$PLATFORM" == "linux-x86_64" ]]; then
|
||||||
|
echo " make vendor-linux-dev"
|
||||||
|
elif [[ "$PLATFORM" == "linux-aarch64" ]]; then
|
||||||
|
echo " make vendor-linux-arm-dev"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "Run 'make vendor-linux' or 'make vendor-macos' to generate wheels"
|
echo "To build runtime wheels:"
|
||||||
|
if [[ "$PLATFORM" == "linux-x86_64" ]]; then
|
||||||
|
echo " make vendor-linux"
|
||||||
|
elif [[ "$PLATFORM" == "linux-aarch64" ]]; then
|
||||||
|
echo " make vendor-linux-arm"
|
||||||
|
elif [[ "$PLATFORM" == "macos-arm64" ]]; then
|
||||||
|
echo " make vendor-macos"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -47,7 +75,7 @@ if ! command -v python3.12 &> /dev/null; then
|
|||||||
echo "ERROR: Python 3.12 not found!"
|
echo "ERROR: Python 3.12 not found!"
|
||||||
echo "Please install Python 3.12:"
|
echo "Please install Python 3.12:"
|
||||||
echo " macOS: brew install python@3.12"
|
echo " macOS: brew install python@3.12"
|
||||||
echo " Linux: apt-get install python3.12 python3.12-venv"
|
echo " Debian/Ubuntu: apt-get install python3.12 python3.12-venv"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -111,7 +139,6 @@ if [ "$DEV_MODE" = true ]; then
|
|||||||
echo "⚠️ pytest not found in dev install!"
|
echo "⚠️ pytest not found in dev install!"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Only mention pytest in production mode
|
|
||||||
echo "⚠️ Skipping pytest (use --dev for full test suite)"
|
echo "⚠️ Skipping pytest (use --dev for full test suite)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -129,6 +156,7 @@ echo "=========================================="
|
|||||||
echo ""
|
echo ""
|
||||||
echo "Virtual environment: $VENV_DIR"
|
echo "Virtual environment: $VENV_DIR"
|
||||||
echo "Python version: $(python --version)"
|
echo "Python version: $(python --version)"
|
||||||
|
echo "Platform: $PLATFORM"
|
||||||
if [ "$DEV_MODE" = true ]; then
|
if [ "$DEV_MODE" = true ]; then
|
||||||
echo "Mode: Development (pytest installed)"
|
echo "Mode: Development (pytest installed)"
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user