From 0273be02327580a6bfd159d5967ec9812a0f386a Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Wed, 17 Aug 2022 22:32:58 +0300 Subject: [PATCH] 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 --- Khoj.spec | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/Khoj.spec b/Khoj.spec index 3697f32d..7df8b79b 100644 --- a/Khoj.spec +++ b/Khoj.spec @@ -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, + )