pyinstaller: use a spec file to build borg.exe binary

also: exclude osxfuse dylib on Mac OS X
This commit is contained in:
Thomas Waldmann 2016-10-02 00:43:06 +02:00
parent d8a7b17924
commit 864333d686
2 changed files with 39 additions and 1 deletions

2
Vagrantfile vendored
View File

@ -263,7 +263,7 @@ def build_binary_with_pyinstaller(boxname)
cd /vagrant/borg
. borg-env/bin/activate
cd borg
pyinstaller -F -n borg.exe --distpath=/vagrant/borg --clean borg/__main__.py
pyinstaller --clean --distpath=/vagrant/borg scripts/borg.exe.spec
EOF
end

38
scripts/borg.exe.spec Normal file
View File

@ -0,0 +1,38 @@
# -*- mode: python -*-
# this pyinstaller spec file is used to build borg binaries on posix platforms
import os, sys
basepath = '/vagrant/borg/borg'
block_cipher = None
a = Analysis([os.path.join(basepath, 'borg/__main__.py'), ],
pathex=[basepath, ],
binaries=[],
datas=[],
hiddenimports=['borg.platform.posix'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
if sys.platform == 'darwin':
# do not bundle the osxfuse libraries, so we do not get a version
# mismatch to the installed kernel driver of osxfuse.
a.binaries = [b for b in a.binaries if 'libosxfuse' not in b[0]]
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='borg.exe',
debug=False,
strip=False,
upx=True,
console=True )