mirror of
https://github.com/borgbackup/borg.git
synced 2026-06-09 17:00:11 -04:00
scripts/build-nuitka.sh: generate single-file binary using nuitka, fixes #3227
Very experimental and little tested.
This commit is contained in:
parent
ec331057a9
commit
b64d1dbc4d
1 changed files with 36 additions and 0 deletions
36
scripts/build-nuitka.sh
Executable file
36
scripts/build-nuitka.sh
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
# Generate a single-file binary of borgbackup using Nuitka.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
OUTPUT_DIR="build"
|
||||
OUTPUT_FILENAME="borg-nuitka.exe" # .exe does NOT mean windows here
|
||||
SRC_DIR="src/borg"
|
||||
|
||||
echo "============================================"
|
||||
echo "Found Nuitka $(python -m nuitka --version | head -n 1)."
|
||||
echo "Building single-file binary of borgbackup..."
|
||||
echo "============================================"
|
||||
|
||||
# Run Nuitka compilation
|
||||
# We use --assume-yes-for-downloads to avoid interactive prompts in automated runs.
|
||||
# We set PYTHONPATH=src to ensure the local version of borg is used.
|
||||
# We include cffi and _cffi_backend to avoid runtime ModuleNotFoundError in argon2-cffi.
|
||||
PYTHONPATH=src python -m nuitka \
|
||||
--standalone \
|
||||
--onefile \
|
||||
--assume-yes-for-downloads \
|
||||
--include-package=borg \
|
||||
--include-package=borghash \
|
||||
--include-package=borgstore \
|
||||
--include-package=cffi \
|
||||
--include-module=_cffi_backend \
|
||||
--output-dir="$OUTPUT_DIR" \
|
||||
--output-filename="$OUTPUT_FILENAME" \
|
||||
"$SRC_DIR"
|
||||
|
||||
echo "============================================="
|
||||
echo "Build completed successfully!"
|
||||
echo "Single-file binary generated at:"
|
||||
echo " $OUTPUT_DIR/$OUTPUT_FILENAME"
|
||||
echo "============================================="
|
||||
Loading…
Reference in a new issue