Exclude unused libs under torch/lib. Reduce Debian package size by 700Mb

- libtorch_cuda.so (1Gb) and libtorch_cpu.so (700Mb) are large shared
  libs that are available at package root and under torch/lib.
- The top level imports are used, so they unused libs are removed from
  package
- This reduces the single file package size from 1.6Gb to 920Mb
This commit is contained in:
Debanjum Singh Solanky 2022-08-17 22:32:58 +03:00
parent 5a20283202
commit 0273be0232

View file

@ -1,4 +1,6 @@
# -*- mode: python ; coding: utf-8 -*-
from os.path import join
from platform import system
from PyInstaller.utils.hooks import copy_metadata
datas = [('src/interface/web', 'src/interface/web')]
@ -29,6 +31,13 @@ a = Analysis(
cipher=block_cipher,
noarchive=False,
)
# Filter out unused, duplicate shared libs under torch/lib
torch_lib_path = set([
join('torch', 'lib', 'libtorch_cuda.so'),
join('torch', 'lib', 'libtorch_cpu.so')])
a.datas = [entry for entry in a.datas if not entry[0] in torch_lib_path]
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
@ -53,9 +62,11 @@ exe = EXE(
entitlements_file=None,
icon='src/interface/web/assets/icons/favicon.icns',
)
app = BUNDLE(
exe,
name='Khoj.app',
icon='src/interface/web/assets/icons/favicon.icns',
bundle_identifier=None,
)
if system() == 'Darwin':
app = BUNDLE(
exe,
name='Khoj.app',
icon='src/interface/web/assets/icons/favicon.icns',
bundle_identifier=None,
)