Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-streamdeck for openSUSE:Factory checked in at 2023-11-13 22:22:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-streamdeck (Old) and /work/SRC/openSUSE:Factory/.python-streamdeck.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-streamdeck" Mon Nov 13 22:22:03 2023 rev:3 rq:1125600 version:0.9.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python-streamdeck/python-streamdeck.changes 2023-07-19 19:11:53.617008184 +0200 +++ /work/SRC/openSUSE:Factory/.python-streamdeck.new.17445/python-streamdeck.changes 2023-11-13 22:25:37.514005726 +0100 @@ -1,0 +2,9 @@ +Mon Nov 13 12:21:44 UTC 2023 - Frederic Crozat <fcro...@suse.com> + +- Update to 0.9.4: + * Updated Windows HIDAPI backend to attempt to load from the + local working directory. + * Added detection for MacOS Homebrew installations of the + libhidapi back-end library. + +------------------------------------------------------------------- Old: ---- streamdeck-0.9.3.tar.gz New: ---- streamdeck-0.9.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-streamdeck.spec ++++++ --- /var/tmp/diff_new_pack.dTMYdi/_old 2023-11-13 22:25:38.014024136 +0100 +++ /var/tmp/diff_new_pack.dTMYdi/_new 2023-11-13 22:25:38.014024136 +0100 @@ -17,7 +17,7 @@ Name: python-streamdeck -Version: 0.9.3 +Version: 0.9.4 Release: 0 Summary: Library to control Elgato StreamDeck devices License: MIT ++++++ streamdeck-0.9.3.tar.gz -> streamdeck-0.9.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/streamdeck-0.9.3/CHANGELOG new/streamdeck-0.9.4/CHANGELOG --- old/streamdeck-0.9.3/CHANGELOG 2022-10-16 05:31:42.000000000 +0200 +++ new/streamdeck-0.9.4/CHANGELOG 2023-08-12 07:35:25.000000000 +0200 @@ -1,3 +1,7 @@ +Version 0.9.4: + - Updated Windows HIDAPI backend to attempt to load from the local working directory. + - Added detection for MacOS Homebrew installations of the libhidapi back-end library. + Version 0.9.3: - Added support for a new sub-variant of the StreamDeck XL. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/streamdeck-0.9.3/PKG-INFO new/streamdeck-0.9.4/PKG-INFO --- old/streamdeck-0.9.3/PKG-INFO 2022-10-16 05:38:48.044771200 +0200 +++ new/streamdeck-0.9.4/PKG-INFO 2023-08-12 07:39:18.650708400 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: streamdeck -Version: 0.9.3 +Version: 0.9.4 Summary: Library to control Elgato StreamDeck devices. Home-page: https://github.com/abcminiuser/python-elgato-streamdeck Author: Dean Camera @@ -72,12 +72,14 @@ - [jakobbuis](https://github.com/jakobbuis) - [jmudge14](https://github.com/jmudge14) - [Kalle-Wirsch](https://github.com/Kalle-Wirsch) + - [Lewiscowles1986](https://github.com/Lewiscowles1986) - [m-weigand](https://github.com/m-weigand) - [matrixinius](https://github.com/matrixinius) - [phillco](https://github.com/phillco) - [pointshader](https://github.com/pointshader) - [shanna](https://github.com/shanna) - [spidererrol](https://github.com/Spidererrol) + - [spyoungtech](https://github.com/spyoungtech) - [Subsentient](https://github.com/Subsentient) - [swedishmike](https://github.com/swedishmike) - [theslimshaney](https://github.com/theslimshaney) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/streamdeck-0.9.3/README.md new/streamdeck-0.9.4/README.md --- old/streamdeck-0.9.3/README.md 2022-10-16 05:32:22.000000000 +0200 +++ new/streamdeck-0.9.4/README.md 2023-08-01 09:26:43.000000000 +0200 @@ -64,12 +64,14 @@ - [jakobbuis](https://github.com/jakobbuis) - [jmudge14](https://github.com/jmudge14) - [Kalle-Wirsch](https://github.com/Kalle-Wirsch) +- [Lewiscowles1986](https://github.com/Lewiscowles1986) - [m-weigand](https://github.com/m-weigand) - [matrixinius](https://github.com/matrixinius) - [phillco](https://github.com/phillco) - [pointshader](https://github.com/pointshader) - [shanna](https://github.com/shanna) - [spidererrol](https://github.com/Spidererrol) +- [spyoungtech](https://github.com/spyoungtech) - [Subsentient](https://github.com/Subsentient) - [swedishmike](https://github.com/swedishmike) - [theslimshaney](https://github.com/theslimshaney) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/streamdeck-0.9.3/VERSION new/streamdeck-0.9.4/VERSION --- old/streamdeck-0.9.3/VERSION 2022-09-17 08:17:52.000000000 +0200 +++ new/streamdeck-0.9.4/VERSION 2023-08-12 07:37:22.000000000 +0200 @@ -1 +1 @@ -0.9.3 +0.9.4 Binary files old/streamdeck-0.9.3/src/StreamDeck/Devices/__pycache__/StreamDeck.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Devices/__pycache__/StreamDeck.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Devices/__pycache__/StreamDeckMini.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Devices/__pycache__/StreamDeckMini.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Devices/__pycache__/StreamDeckOriginal.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Devices/__pycache__/StreamDeckOriginal.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Devices/__pycache__/StreamDeckOriginalV2.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Devices/__pycache__/StreamDeckOriginalV2.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Devices/__pycache__/StreamDeckPedal.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Devices/__pycache__/StreamDeckPedal.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Devices/__pycache__/StreamDeckXL.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Devices/__pycache__/StreamDeckXL.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Devices/__pycache__/__init__.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Devices/__pycache__/__init__.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/ImageHelpers/__pycache__/PILHelper.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/ImageHelpers/__pycache__/PILHelper.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/ImageHelpers/__pycache__/__init__.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/ImageHelpers/__pycache__/__init__.cpython-38.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/streamdeck-0.9.3/src/StreamDeck/Transport/LibUSBHIDAPI.py new/streamdeck-0.9.4/src/StreamDeck/Transport/LibUSBHIDAPI.py --- old/streamdeck-0.9.3/src/StreamDeck/Transport/LibUSBHIDAPI.py 2022-08-13 08:14:33.000000000 +0200 +++ new/streamdeck-0.9.4/src/StreamDeck/Transport/LibUSBHIDAPI.py 2023-08-01 09:25:57.000000000 +0200 @@ -7,6 +7,8 @@ import atexit import ctypes +import ctypes.util +import os import platform import threading @@ -21,6 +23,7 @@ class Library(): HIDAPI_INSTANCE = None + HOMEBREW_PREFIX = None def _load_hidapi_library(self, library_search_list): """ @@ -31,12 +34,41 @@ :return: Loaded HIDAPI library instance, or None if no library was found. """ + # If the library's already loaded, we can use the existing instance and skip the slow load process. if self.HIDAPI_INSTANCE: return self.HIDAPI_INSTANCE + # If we're running on MacOS, we very likely need to search for the library in the Homebrew path if it's installed. + # The ctypes loader won't look in there by default unless the user has a Homebrew installed python, which gets patched + # on installation. + if self.platform_name == "Darwin" and not self.HOMEBREW_PREFIX: + self.HOMEBREW_PREFIX = os.environ.get('HOMEBREW_PREFIX') + + if not self.HOMEBREW_PREFIX: + try: + import subprocess # nosec B404 + + self.HOMEBREW_PREFIX = subprocess.run(['brew', '--prefix'], stdout=subprocess.PIPE, text=True, check=True).stdout.strip() # nosec + except Exception: # nosec B110 + pass + for lib_name in library_search_list: + # We'll try to use ctypes' utility function to find the library first, using + # its default search paths. It requires the name of the library only (minus all + # path prefix and extension suffix). + library_name_no_extension = os.path.basename(os.path.splitext(lib_name)[0]) + found_lib = ctypes.util.find_library(library_name_no_extension) + + # If we've running with a Homebrew installation, and find_library() didn't find the library in + # any of the default search paths, we'll look in Homebrew instead as a fallback. + if not found_lib and self.HOMEBREW_PREFIX: + library_path_homebrew = os.path.join(self.HOMEBREW_PREFIX, 'lib', lib_name) + + if os.path.exists(library_path_homebrew): + found_lib = library_path_homebrew + try: - type(self).HIDAPI_INSTANCE = ctypes.cdll.LoadLibrary(lib_name) + type(self).HIDAPI_INSTANCE = ctypes.cdll.LoadLibrary(found_lib if found_lib else lib_name) break except OSError: pass @@ -109,7 +141,7 @@ """ search_library_names = { - "Windows": ["hidapi.dll", "libhidapi-0.dll"], + "Windows": ["hidapi.dll", "libhidapi-0.dll", "./hidapi.dll"], "Linux": ["libhidapi-libusb.so", "libhidapi-libusb.so.0"], "Darwin": ["libhidapi.dylib"], } Binary files old/streamdeck-0.9.3/src/StreamDeck/Transport/__pycache__/Dummy.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Transport/__pycache__/Dummy.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Transport/__pycache__/LibUSBHIDAPI.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Transport/__pycache__/LibUSBHIDAPI.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Transport/__pycache__/Transport.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Transport/__pycache__/Transport.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/Transport/__pycache__/__init__.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/Transport/__pycache__/__init__.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/__pycache__/DeviceManager.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/__pycache__/DeviceManager.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/__pycache__/ProductIDs.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/__pycache__/ProductIDs.cpython-38.pyc differ Binary files old/streamdeck-0.9.3/src/StreamDeck/__pycache__/__init__.cpython-38.pyc and new/streamdeck-0.9.4/src/StreamDeck/__pycache__/__init__.cpython-38.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/streamdeck-0.9.3/src/streamdeck.egg-info/PKG-INFO new/streamdeck-0.9.4/src/streamdeck.egg-info/PKG-INFO --- old/streamdeck-0.9.3/src/streamdeck.egg-info/PKG-INFO 2022-10-16 05:38:47.000000000 +0200 +++ new/streamdeck-0.9.4/src/streamdeck.egg-info/PKG-INFO 2023-08-12 07:39:18.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: streamdeck -Version: 0.9.3 +Version: 0.9.4 Summary: Library to control Elgato StreamDeck devices. Home-page: https://github.com/abcminiuser/python-elgato-streamdeck Author: Dean Camera @@ -72,12 +72,14 @@ - [jakobbuis](https://github.com/jakobbuis) - [jmudge14](https://github.com/jmudge14) - [Kalle-Wirsch](https://github.com/Kalle-Wirsch) + - [Lewiscowles1986](https://github.com/Lewiscowles1986) - [m-weigand](https://github.com/m-weigand) - [matrixinius](https://github.com/matrixinius) - [phillco](https://github.com/phillco) - [pointshader](https://github.com/pointshader) - [shanna](https://github.com/shanna) - [spidererrol](https://github.com/Spidererrol) + - [spyoungtech](https://github.com/spyoungtech) - [Subsentient](https://github.com/Subsentient) - [swedishmike](https://github.com/swedishmike) - [theslimshaney](https://github.com/theslimshaney) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/streamdeck-0.9.3/src/streamdeck.egg-info/SOURCES.txt new/streamdeck-0.9.4/src/streamdeck.egg-info/SOURCES.txt --- old/streamdeck-0.9.3/src/streamdeck.egg-info/SOURCES.txt 2022-10-16 05:38:47.000000000 +0200 +++ new/streamdeck-0.9.4/src/streamdeck.egg-info/SOURCES.txt 2023-08-12 07:39:18.000000000 +0200 @@ -32,28 +32,12 @@ src/StreamDeck/Devices/StreamDeckPedal.py src/StreamDeck/Devices/StreamDeckXL.py src/StreamDeck/Devices/__init__.py -src/StreamDeck/Devices/__pycache__/StreamDeck.cpython-38.pyc -src/StreamDeck/Devices/__pycache__/StreamDeckMini.cpython-38.pyc -src/StreamDeck/Devices/__pycache__/StreamDeckOriginal.cpython-38.pyc -src/StreamDeck/Devices/__pycache__/StreamDeckOriginalV2.cpython-38.pyc -src/StreamDeck/Devices/__pycache__/StreamDeckPedal.cpython-38.pyc -src/StreamDeck/Devices/__pycache__/StreamDeckXL.cpython-38.pyc -src/StreamDeck/Devices/__pycache__/__init__.cpython-38.pyc src/StreamDeck/ImageHelpers/PILHelper.py src/StreamDeck/ImageHelpers/__init__.py -src/StreamDeck/ImageHelpers/__pycache__/PILHelper.cpython-38.pyc -src/StreamDeck/ImageHelpers/__pycache__/__init__.cpython-38.pyc src/StreamDeck/Transport/Dummy.py src/StreamDeck/Transport/LibUSBHIDAPI.py src/StreamDeck/Transport/Transport.py src/StreamDeck/Transport/__init__.py -src/StreamDeck/Transport/__pycache__/Dummy.cpython-38.pyc -src/StreamDeck/Transport/__pycache__/LibUSBHIDAPI.cpython-38.pyc -src/StreamDeck/Transport/__pycache__/Transport.cpython-38.pyc -src/StreamDeck/Transport/__pycache__/__init__.cpython-38.pyc -src/StreamDeck/__pycache__/DeviceManager.cpython-38.pyc -src/StreamDeck/__pycache__/ProductIDs.cpython-38.pyc -src/StreamDeck/__pycache__/__init__.cpython-38.pyc src/streamdeck.egg-info/PKG-INFO src/streamdeck.egg-info/SOURCES.txt src/streamdeck.egg-info/dependency_links.txt