From 7c1e7b0af1c8bf773e38f1b797b57c95cd7d70ab Mon Sep 17 00:00:00 2001 From: guihkx <626206+guihkx@users.noreply.github.com> Date: Sat, 3 Jun 2023 07:42:10 -0300 Subject: [PATCH] linux: add PyGObject as a dependency This dependency is required for proper support of the AppIndicator backend from pystray: https://github.com/moses-palmer/pystray/blob/v0.19.4/docs/faq.rst#how-do-i-use-pystray-in-a-virtualenv-on-linux --- build.spec | 29 ++++++++++++++++++++--------- requirements.txt | 1 + 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/build.spec b/build.spec index b2a6aa0..c6d8d46 100644 --- a/build.spec +++ b/build.spec @@ -34,28 +34,39 @@ for source_path, dest_path, required in to_add: elif required: raise FileNotFoundError(str(source_path)) +binaries: list[tuple[Path, str]] = [] +hiddenimports: list[str] = [ + "PIL._tkinter_finder", + "setuptools._distutils.log", + "setuptools._distutils.dir_util", + "setuptools._distutils.file_util", + "setuptools._distutils.archive_util", +] + +if sys.platform == "linux": + # Needed files for better system tray support on Linux via pystray (AppIndicator backend). + datas.append((Path("/usr/lib/girepository-1.0/AppIndicator3-0.1.typelib"), "gi_typelibs")) + binaries.append((Path("/lib/x86_64-linux-gnu/libappindicator3.so.1"), ".")) + hiddenimports.extend([ + "gi.repository.Gtk", + "gi.repository.GObject", + ]) block_cipher = None a = Analysis( ["main.py"], pathex=[], datas=datas, - binaries=[], excludes=[], hookspath=[], hooksconfig={}, noarchive=False, - hiddenimports=[ - "setuptools._distutils.log", - "setuptools._distutils.dir_util", - "setuptools._distutils.file_util", - "setuptools._distutils.archive_util", - "PIL._tkinter_finder", - ], runtime_hooks=[], + binaries=binaries, cipher=block_cipher, - win_no_prefer_redirects=False, + hiddenimports=hiddenimports, win_private_assemblies=False, + win_no_prefer_redirects=False, ) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE( diff --git a/requirements.txt b/requirements.txt index 3708b68..92bf9a9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ aiohttp>2.0,<4.0 Pillow # TODO: switch back to a stable pystray release when a version newer than v0.19.4 is out pystray@git+https://github.com/moses-palmer/pystray.git@903836104f8b1a2979f4fa5a333870ef7b075992 +PyGObject; sys_platform == "linux" # required for better system tray support on Linux # selenium-wire # undetected-chromedriver # this is installed only on windows