aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgatekeeper <tiago.gasiba@gmail.com>2024-04-20 22:04:04 +0000
committerNuno Teixeira <eduardo@FreeBSD.org>2024-04-20 22:07:19 +0000
commite8c02a572f87a9118c02819c75c81bf30ec49c95 (patch)
treefc755628e3f1a8e79c4bc71f60043740d8a62c95
parente680bd98d34a86302db434c5be23d0cf9d23df23 (diff)
downloadports-e8c02a572f87a9118c02819c75c81bf30ec49c95.tar.gz
ports-e8c02a572f87a9118c02819c75c81bf30ec49c95.zip
comms/py-streamdeck: New port: Python library to control the Elgato Stream Deck
- Submitter becomes maintainer This is an open source Python 3 library to control an Elgato Stream Deck directly, without the official software. This can allow you to create your own custom front-ends, such as a custom control front-end for home automation software. WWW: https://github.com/abcminiuser/python-elgato-streamdeck PR: 278266
-rw-r--r--comms/Makefile1
-rw-r--r--comms/py-streamdeck/Makefile30
-rw-r--r--comms/py-streamdeck/distinfo3
-rw-r--r--comms/py-streamdeck/files/patch-src_StreamDeck_Transport_LibUSBHIDAPI.py10
-rw-r--r--comms/py-streamdeck/files/patch-test_test.py19
-rw-r--r--comms/py-streamdeck/pkg-descr4
6 files changed, 67 insertions, 0 deletions
diff --git a/comms/Makefile b/comms/Makefile
index 0943d7376ae3..9121e4c18575 100644
--- a/comms/Makefile
+++ b/comms/Makefile
@@ -137,6 +137,7 @@
SUBDIR += py-pymodbus
SUBDIR += py-pyserial
SUBDIR += py-pyserial-asyncio
+ SUBDIR += py-streamdeck
SUBDIR += py-xmodem
SUBDIR += pyla
SUBDIR += qico
diff --git a/comms/py-streamdeck/Makefile b/comms/py-streamdeck/Makefile
new file mode 100644
index 000000000000..c869c4328ba5
--- /dev/null
+++ b/comms/py-streamdeck/Makefile
@@ -0,0 +1,30 @@
+PORTNAME= streamdeck
+DISTVERSION= 0.9.5
+CATEGORIES= comms python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= tiago.gasiba@gmail.com
+COMMENT= Python library to control the Elgato Stream Deck
+WWW= https://github.com/abcminiuser/python-elgato-streamdeck
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+LIB_DEPENDS= libhidapi.so:comms/hidapi
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pillow>=8.1.1:graphics/py-pillow@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=3.2.1:devel/py-pytest@${PY_FLAVOR}
+
+USES= dos2unix python
+USE_PYTHON= autoplist pep517
+
+post-patch:
+ ${RM} ${WRKSRC}/src/StreamDeck/Transport/LibUSBHIDAPI.py.orig
+
+TEST_WRKSRC= ${WRKSRC}/test
+DO_MAKE_TEST= ${SETENV} ${TEST_ENV} pytest-${PYTHON_VER}
+TEST_TARGET= test.py
+
+.include <bsd.port.mk>
diff --git a/comms/py-streamdeck/distinfo b/comms/py-streamdeck/distinfo
new file mode 100644
index 000000000000..fc82767c5ddd
--- /dev/null
+++ b/comms/py-streamdeck/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1713635550
+SHA256 (streamdeck-0.9.5.tar.gz) = 04796266b44577ae03f940f5c5ca69d87007e03d19eed89b6b02686c030ceb91
+SIZE (streamdeck-0.9.5.tar.gz) = 2555109
diff --git a/comms/py-streamdeck/files/patch-src_StreamDeck_Transport_LibUSBHIDAPI.py b/comms/py-streamdeck/files/patch-src_StreamDeck_Transport_LibUSBHIDAPI.py
new file mode 100644
index 000000000000..5a4548b481c0
--- /dev/null
+++ b/comms/py-streamdeck/files/patch-src_StreamDeck_Transport_LibUSBHIDAPI.py
@@ -0,0 +1,10 @@
+--- src/StreamDeck/Transport/LibUSBHIDAPI.py.orig 2024-04-08 21:05:19 UTC
++++ src/StreamDeck/Transport/LibUSBHIDAPI.py
+@@ -154,6 +154,7 @@ class LibUSBHIDAPI(Transport):
+ "Windows": ["hidapi.dll", "libhidapi-0.dll", "./hidapi.dll"],
+ "Linux": ["libhidapi-libusb.so", "libhidapi-libusb.so.0"],
+ "Darwin": ["libhidapi.dylib"],
++ "FreeBSD": ["libhidapi.so"],
+ }
+
+ self.platform_name = platform.system()
diff --git a/comms/py-streamdeck/files/patch-test_test.py b/comms/py-streamdeck/files/patch-test_test.py
new file mode 100644
index 000000000000..5217afdb46a7
--- /dev/null
+++ b/comms/py-streamdeck/files/patch-test_test.py
@@ -0,0 +1,19 @@
+--- test/test.py.orig 2024-04-20 20:51:55 UTC
++++ test/test.py
+@@ -17,7 +17,16 @@ from PIL import ImageDraw
+ from StreamDeck.DeviceManager import DeviceManager
+ from StreamDeck.ImageHelpers import PILHelper
+ from PIL import ImageDraw
++import pytest
+
++def initialize_decks():
++ manager = DeviceManager(transport="dummy")
++ streamdecks = manager.enumerate()
++ return streamdecks
++
++@pytest.fixture(params=initialize_decks())
++def deck(request):
++ return request.param
+
+ def test_pil_helpers(deck):
+ if not deck.is_visual():
diff --git a/comms/py-streamdeck/pkg-descr b/comms/py-streamdeck/pkg-descr
new file mode 100644
index 000000000000..1512a55320a3
--- /dev/null
+++ b/comms/py-streamdeck/pkg-descr
@@ -0,0 +1,4 @@
+This is an open source Python 3 library to control an Elgato Stream Deck
+directly, without the official software. This can allow you to create your
+own custom front-ends, such as a custom control front-end for home
+automation software.