Skip to content

Commit

Permalink
Merge #502: support other libusb paths for Linux
Browse files Browse the repository at this point in the history
8a37eb9 support other libusb paths for Linux (Sylvia G)

Pull request description:

  Some linux distros such as Arch/Manjaro use /usr/lib

ACKs for top commit:
  achow101:
    ACK 8a37eb9

Tree-SHA512: 7b78ab686db6129a0dd5499a07a01f5711093c7fbaac80b25c2a323912b9914a07721352e222372a1baf19873a89ffc39bffabd91155aaea582198de6ddfdd24
  • Loading branch information
achow101 committed Apr 7, 2021
2 parents 9c06059 + 8a37eb9 commit ecb7b26
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 20 deletions.
24 changes: 14 additions & 10 deletions hwi-qt.spec
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,22 @@ import subprocess

block_cipher = None

binaries = []
if platform.system() == 'Windows':
binaries = [("c:/python3/libusb-1.0.dll", ".")]
elif platform.system() == 'Linux':
binaries = [("/lib/x86_64-linux-gnu/libusb-1.0.so.0", ".")]
elif platform.system() == 'Darwin':
find_brew_libusb_proc = subprocess.Popen(['brew', '--prefix', 'libusb'], stdout=subprocess.PIPE)
libusb_path = find_brew_libusb_proc.communicate()[0]
binaries = [(libusb_path.rstrip().decode() + "/lib/libusb-1.0.dylib", ".")]
def get_libusb_path():
if platform.system() == 'Windows':
return 'c:/python3/libusb-1.0.dll'
if platform.system() == 'Darwin':
proc = subprocess.Popen(['brew', '--prefix', 'libusb'], stdout=subprocess.PIPE)
prefix = proc.communicate()[0].rstrip().decode()
return os.path.join(prefix, "/lib/libusb-1.0.dylib")
if platform.system() == 'Linux':
for lib_dir in ['/lib/x86_64-linux-gnu', '/usr/lib64', '/usr/lib', '/lib']:
libusb_path = os.path.join(lib_dir, 'libusb-1.0.so.0')
if os.path.exists(libusb_path):
return libusb_path
raise RuntimeError(f"Unsupported platform: {platform.system()}")

a = Analysis(['hwi-qt.py'],
binaries=binaries,
binaries=[(get_libusb_path(), '.')],
datas=[],
hiddenimports=[],
hookspath=['contrib/pyinstaller-hooks/'],
Expand Down
25 changes: 15 additions & 10 deletions hwi.spec
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
# -*- mode: python -*-
import platform
import subprocess
import os

block_cipher = None

binaries = []
if platform.system() == 'Windows':
binaries = [("c:/python3/libusb-1.0.dll", ".")]
elif platform.system() == 'Linux':
binaries = [("/lib/x86_64-linux-gnu/libusb-1.0.so.0", ".")]
elif platform.system() == 'Darwin':
find_brew_libusb_proc = subprocess.Popen(['brew', '--prefix', 'libusb'], stdout=subprocess.PIPE)
libusb_path = find_brew_libusb_proc.communicate()[0]
binaries = [(libusb_path.rstrip().decode() + "/lib/libusb-1.0.dylib", ".")]
def get_libusb_path():
if platform.system() == "Windows":
return "c:/python3/libusb-1.0.dll"
if platform.system() == "Darwin":
proc = subprocess.Popen(["brew", "--prefix", "libusb"], stdout=subprocess.PIPE)
prefix = proc.communicate()[0].rstrip().decode()
return os.path.join(prefix, "/lib/libusb-1.0.dylib")
if platform.system() == "Linux":
for lib_dir in ["/lib/x86_64-linux-gnu", "/usr/lib64", "/lib64" "/usr/lib", "/lib"]:
libusb_path = os.path.join(lib_dir, "libusb-1.0.so.0")
if os.path.exists(libusb_path):
return libusb_path
raise RuntimeError(f"Unsupported platform: {platform.system()}")

a = Analysis(['hwi.py'],
binaries=binaries,
binaries=[(get_libusb_path(), '.')],
datas=[],
hiddenimports=[],
hookspath=['contrib/pyinstaller-hooks/'],
Expand Down

0 comments on commit ecb7b26

Please sign in to comment.