git: eb313671a311 - main - comms/py-libusbsio: Python wrapper for the NXP libusbsio library

From: Gleb Popov <arrowd_at_FreeBSD.org>
Date: Sat, 17 Aug 2024 20:44:55 UTC
The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=eb313671a3113039c30597dbced32b78887e3f9a

commit eb313671a3113039c30597dbced32b78887e3f9a
Author:     Shapovalov Alexey <aishapoval@mts.ru>
AuthorDate: 2024-07-03 07:47:07 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2024-08-17 20:44:39 +0000

    comms/py-libusbsio: Python wrapper for the NXP libusbsio library
    
    Sponsored by:   Serenity Cybersecurity, LLC
    Co-authored-by: Gleb Popov <arrowd@FreeBSD.org>
---
 comms/Makefile                                     |  1 +
 comms/py-libusbsio/Makefile                        | 29 ++++++++++++++++++++++
 comms/py-libusbsio/distinfo                        |  3 +++
 .../files/patch-libusbsio_libusbsio.py             | 21 ++++++++++++++++
 comms/py-libusbsio/pkg-descr                       |  8 ++++++
 5 files changed, 62 insertions(+)

diff --git a/comms/Makefile b/comms/Makefile
index 77a058606f96..52aeced5971d 100644
--- a/comms/Makefile
+++ b/comms/Makefile
@@ -136,6 +136,7 @@
     SUBDIR += py-hidapi
     SUBDIR += py-libimobiledevice
     SUBDIR += py-libscrc
+    SUBDIR += py-libusbsio
     SUBDIR += py-pymodbus
     SUBDIR += py-pyserial
     SUBDIR += py-pyserial-asyncio
diff --git a/comms/py-libusbsio/Makefile b/comms/py-libusbsio/Makefile
new file mode 100644
index 000000000000..77ab7e3cda71
--- /dev/null
+++ b/comms/py-libusbsio/Makefile
@@ -0,0 +1,29 @@
+PORTNAME=	libusbsio
+PORTVERSION=	2.1.11
+CATEGORIES=	comms python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	awoonyaa@gmail.com
+COMMENT=	Python wrapper for NXP libusbsio binary library
+WWW=		https://pypi.org/project/libusbsio/
+
+LICENSE=	BSD3CLAUSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
+LIB_DEPENDS=	libhidapi.so:comms/hidapi \
+		libudev.so:devel/libudev-devd \
+		libusbsio.so:comms/libusbsio
+
+USES=		dos2unix python
+USE_PYTHON=	autoplist concurrent pep517
+
+DOS2UNIX_FILES=	libusbsio/*.py
+
+post-extract:
+	${MKDIR} ${WRKSRC}/libusbsio/bin/${OPSYS:tl}_${ARCH}
+	${LN} -s ${LOCALBASE}/lib/${PORTNAME}.so ${WRKSRC}/libusbsio/bin/${OPSYS:tl}_${ARCH}/libusbsio.so
+
+.include <bsd.port.mk>
diff --git a/comms/py-libusbsio/distinfo b/comms/py-libusbsio/distinfo
new file mode 100755
index 000000000000..723af044bfb2
--- /dev/null
+++ b/comms/py-libusbsio/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1703160417
+SHA256 (libusbsio-2.1.11.tar.gz) = 7d2e81f4aedccbe8a3c327b002c7750dd374abdf1ef6d54780728e653af9124d
+SIZE (libusbsio-2.1.11.tar.gz) = 259491
diff --git a/comms/py-libusbsio/files/patch-libusbsio_libusbsio.py b/comms/py-libusbsio/files/patch-libusbsio_libusbsio.py
new file mode 100644
index 000000000000..6f02053c3179
--- /dev/null
+++ b/comms/py-libusbsio/files/patch-libusbsio_libusbsio.py
@@ -0,0 +1,21 @@
+https://github.com/monwarez/libusbsio/commit/6da5bec9ab40f1ea17bfb1812cacd6ffbd854d0c
+
+--- libusbsio/libusbsio.py.orig	2022-02-07 13:26:21 UTC
++++ libusbsio/libusbsio.py
+@@ -261,6 +261,16 @@ class LIBUSBSIO(object):
+             else:
+                 platf = LIBUSBSIO.P_LINUX32
+                 packing = 4
++        elif platform.system().lower().startswith('fre'):
++            dllname = "libusbsio.so"
++            is_64bits = sys.maxsize > 2**32
++            dfltdir = "freebsd_" + platform.machine()
++            if is_64bits:
++                platf = LIBUSBSIO.P_LINUX64
++                packing = 8
++            else:
++                platf = LIBUSBSIO.P_LINUX32
++                packing = 4
+         elif platform.system().lower().startswith('dar'):
+             dfltdir = "osx_" + platform.machine()
+             if platform.machine() == "arm64":
diff --git a/comms/py-libusbsio/pkg-descr b/comms/py-libusbsio/pkg-descr
new file mode 100755
index 000000000000..5915e65ddfdd
--- /dev/null
+++ b/comms/py-libusbsio/pkg-descr
@@ -0,0 +1,8 @@
+Python wrapper for NXP libusbsio binary library
+
+The NXP libusbsio is a binary library for Win/Linux/MacOS systems
+used to exercise SPI, I2C bus and GPIO pins over USBSIO interface of
+NXP LPCLink2 and MCUlink Pro devices.
+
+This Python component provides a wrapper object which encapsulates the
+binary library and exposes its API to Python applications.