chore: cleanup build artifacts and add .gitignore
This commit is contained in:
70
build_binary_linux.sh
Executable file
70
build_binary_linux.sh
Executable file
@@ -0,0 +1,70 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "🐧 Building Linux x86_64 binary via Docker (Ubuntu 22.04 base)..."
|
||||
|
||||
mkdir -p dist
|
||||
|
||||
docker run --rm \
|
||||
--platform linux/amd64 \
|
||||
-v "$PWD":/work \
|
||||
-w /work \
|
||||
ubuntu:22.04 \
|
||||
bash -c '
|
||||
set -e
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install Python 3.12 and build tools
|
||||
apt-get update -qq
|
||||
apt-get install -y -qq software-properties-common
|
||||
add-apt-repository -y ppa:deadsnakes/ppa
|
||||
apt-get update -qq
|
||||
apt-get install -y -qq \
|
||||
python3.12 \
|
||||
python3.12-venv \
|
||||
python3.12-dev \
|
||||
binutils \
|
||||
gcc \
|
||||
g++ \
|
||||
make \
|
||||
libffi-dev
|
||||
|
||||
# Install pip for Python 3.12
|
||||
python3.12 -m ensurepip
|
||||
python3.12 -m pip install -q --upgrade pip
|
||||
python3.12 -m pip install -q pyinstaller
|
||||
python3.12 -m pip install -q -r requirements.txt
|
||||
|
||||
echo "📝 Patching for frozen build..."
|
||||
python3.12 -c "
|
||||
import sys
|
||||
with open(\"src/pyhdwallet.py\", \"r\") as f:
|
||||
content = f.read()
|
||||
content = content.replace(
|
||||
\"def _require(mod: str, pkg: str) -> None:\\n try:\",
|
||||
\"def _require(mod: str, pkg: str) -> None:\\n import sys\\n if getattr(sys, \\\"frozen\\\", False): return\\n try:\"
|
||||
)
|
||||
with open(\"/tmp/pyhdwallet_frozen.py\", \"w\") as f:
|
||||
f.write(content)
|
||||
"
|
||||
|
||||
echo "🔧 Building with PyInstaller..."
|
||||
python3.12 -m PyInstaller --onefile --name pyhdwallet-linux --clean \
|
||||
--collect-all bip_utils \
|
||||
--collect-all pgpy \
|
||||
--collect-all nacl \
|
||||
--collect-all pyzipper \
|
||||
--collect-all coincurve \
|
||||
--copy-metadata coincurve \
|
||||
/tmp/pyhdwallet_frozen.py
|
||||
|
||||
echo "✅ Linux binary created (compatible with Ubuntu 22.04+)"
|
||||
'
|
||||
|
||||
echo ""
|
||||
echo "Binary location: dist/pyhdwallet-linux"
|
||||
echo "Size: $(du -h dist/pyhdwallet-linux 2>/dev/null | cut -f1 || echo 'N/A')"
|
||||
echo "GLIBC: $(docker run --rm --platform linux/amd64 -v "$PWD/dist":/b ubuntu:22.04 ldd /b/pyhdwallet-linux | grep libc.so || echo 'static')"
|
||||
echo ""
|
||||
echo "Test it:"
|
||||
echo " docker run --rm --platform linux/amd64 -v \"\$PWD/dist\":/bin ubuntu:22.04 /bin/pyhdwallet-linux test"
|
||||
Reference in New Issue
Block a user