git: f665aa3933ec - main - comms/py-pymodbus: Add new port

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Fri, 20 Jan 2023 11:50:35 UTC
The branch main has been updated by mikael:

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

commit f665aa3933ec2173abb4da8aca442e97fb29b18a
Author:     Christian Ullrich <chris@chrullrich.net>
AuthorDate: 2023-01-17 17:29:54 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2023-01-20 11:50:24 +0000

    comms/py-pymodbus: Add new port
    
    Pymodbus is a full Modbus protocol implementation offering
    asynchronous communications. It can also be used without any
    third party dependencies (aside from pyserial) if a more
    lightweight project is needed.
    
    PR:             251614
---
 comms/Makefile                              |  1 +
 comms/py-pymodbus/Makefile                  | 38 +++++++++++++++++++++++++++++
 comms/py-pymodbus/distinfo                  |  3 +++
 comms/py-pymodbus/files/extra-patch-NO_REPL | 11 +++++++++
 comms/py-pymodbus/pkg-descr                 |  4 +++
 5 files changed, 57 insertions(+)

diff --git a/comms/Makefile b/comms/Makefile
index f05779176d57..6b62709c275e 100644
--- a/comms/Makefile
+++ b/comms/Makefile
@@ -137,6 +137,7 @@
     SUBDIR += py-hidapi
     SUBDIR += py-libimobiledevice
     SUBDIR += py-libscrc
+    SUBDIR += py-pymodbus
     SUBDIR += py-pyserial
     SUBDIR += py-pyserial-asyncio
     SUBDIR += py-xmodem
diff --git a/comms/py-pymodbus/Makefile b/comms/py-pymodbus/Makefile
new file mode 100644
index 000000000000..b47fdb9da46c
--- /dev/null
+++ b/comms/py-pymodbus/Makefile
@@ -0,0 +1,38 @@
+PORTNAME=	pymodbus
+DISTVERSION=	3.1.0
+CATEGORIES=	comms python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	chris@chrullrich.net
+COMMENT=	Implementation of the Modbus protocol
+WWW=		https://github.com/pymodbus-dev/pymodbus/
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		python:3.8+
+USE_PYTHON=	autoplist distutils
+
+OPTIONS_DEFINE=	REPL SERIAL DATASTORE_REDIS DATASTORE_SQL
+OPTIONS_DEFAULT=REPL
+REPL_DESC=	Interactive REPL console
+SERIAL_DESC=	Support serial port
+DATASTORE_REDIS_DESC=	Use Redis for server data
+DATASTORE_SQL_DESC=	Use database for server data (via SQLAlchemy)
+
+REPL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}aiohttp>=3.8.1:www/py-aiohttp@${PY_FLAVOR} \
+			${PYTHON_PKGNAMEPREFIX}prompt-toolkit>=3.0.8:devel/py-prompt-toolkit@${PY_FLAVOR} \
+			${PYTHON_PKGNAMEPREFIX}typer>=0.6.1:devel/py-typer@${PY_FLAVOR} \
+			${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR}
+REPL_EXTRA_PATCHES_OFF=	${PATCHDIR}/extra-patch-NO_REPL
+
+SERIAL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pyserial>=3.5:comms/py-pyserial@${PY_FLAVOR} \
+			${PYTHON_PKGNAMEPREFIX}pyserial-asyncio>=0.6:comms/py-pyserial-asyncio@${PY_FLAVOR}
+
+DATASTORE_REDIS_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}redis>0:databases/py-redis@${PY_FLAVOR}
+DATASTORE_SQL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlalchemy14>0:databases/py-sqlalchemy14@${PY_FLAVOR}
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/comms/py-pymodbus/distinfo b/comms/py-pymodbus/distinfo
new file mode 100644
index 000000000000..f91621f8d35b
--- /dev/null
+++ b/comms/py-pymodbus/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1673787533
+SHA256 (pymodbus-3.1.0.tar.gz) = eeba02c86b13b1f885c0acc50adf4611df24ab85066ff54daa37c2d883c32525
+SIZE (pymodbus-3.1.0.tar.gz) = 177256
diff --git a/comms/py-pymodbus/files/extra-patch-NO_REPL b/comms/py-pymodbus/files/extra-patch-NO_REPL
new file mode 100644
index 000000000000..84c72f385617
--- /dev/null
+++ b/comms/py-pymodbus/files/extra-patch-NO_REPL
@@ -0,0 +1,11 @@
+--- setup.cfg.orig	2023-01-14 21:23:03.797249800 +0000
++++ setup.cfg	2023-01-15 13:13:52.728391000 +0000
+@@ -46,8 +46,6 @@
+ 
+ [options.entry_points]
+ console_scripts = 
+-	pymodbus.console = pymodbus.repl.client.main:main
+-	pymodbus.server  = pymodbus.repl.server.main:app
+ 	pymodbus.simulator = pymodbus.server.simulator.main:main
+ 
+ [options.packages.find]
diff --git a/comms/py-pymodbus/pkg-descr b/comms/py-pymodbus/pkg-descr
new file mode 100644
index 000000000000..bf78da2e428e
--- /dev/null
+++ b/comms/py-pymodbus/pkg-descr
@@ -0,0 +1,4 @@
+Pymodbus is a full Modbus protocol implementation offering
+asynchronous communications. It can also be used without any
+third party dependencies (aside from pyserial) if a more
+lightweight project is needed.