diff --git a/net-mgmt/Makefile b/net-mgmt/Makefile --- a/net-mgmt/Makefile +++ b/net-mgmt/Makefile @@ -334,6 +334,7 @@ SUBDIR += py-pypowerwall SUBDIR += py-pysmi SUBDIR += py-pysnmp + SUBDIR += py-pysnmp-lextudio SUBDIR += py-pysnmp-mibs SUBDIR += py-pyzabbix SUBDIR += py-snmp_passpersist diff --git a/net-mgmt/py-pysnmp-lextudio/Makefile b/net-mgmt/py-pysnmp-lextudio/Makefile new file mode 100644 --- /dev/null +++ b/net-mgmt/py-pysnmp-lextudio/Makefile @@ -0,0 +1,85 @@ +PORTNAME= pysnmp-lextudio +DISTVERSIONPREFIX= v +DISTVERSION= 5.0.32 +CATEGORIES= net-mgmt python +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= agh@riseup.net +COMMENT= SNMP framework for Python +WWW= https://pypi.org/project/pysnmp-lextudio + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE.rst + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}poetry-core>0:devel/py-poetry-core@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sphinx-copybutton>0:textproc/py-sphinx-copybutton@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sphinx-sitemap>0:textproc/py-sphinx-sitemap@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyasn1>0:devel/py-pyasn1@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pysmi>0:net-mgmt/py-pysmi@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pysnmpcrypto>0:net-mgmt/py-pysnmpcrypto@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tox>0:devel/py-tox@${PY_FLAVOR} + +USES= python +USE_GITHUB= yes +GH_ACCOUNT= lextudio +GH_PROJECT= pysnmp +USE_PYTHON= autoplist concurrent flavors pep517 pytest + +CONFLICTS_INSTALL= py-pysnmplib + +DOCSDIR= ${PREFIX}/share/doc/${PYTHON_PKGNAMEPREFIX}${PORTNAME} +EXAMPLESDIR= ${PREFIX}/share/examples/${PYTHON_PKGNAMEPREFIX}${PORTNAME} + +EXTRACT_AFTER_ARGS= --exclude examples/README.md + +NO_ARCH= yes + +PLIST_FILES= share/man/man1/pysnmp.1.gz +PORTDOCS= * +PORTEXAMPLES= * + +OPTIONS_DEFINE= DOCS EXAMPLES + +DOCS_DESC= Install Python SNMP library documentation + +_DOCS_BUILD_ENV= PYTHONPATH="${PYTHONPATH}:${WRKDIR}${PYTHON_SITELIBDIR}" + +do-build-DOCS-on: + (cd ${WRKSRC}/docs && \ + pip-${PYTHON_VER} install --ignore-installed --isolated \ + --no-deps --root=${WRKDIR} ${WRKSRC}/dist/*.whl && \ + ${SETENV} ${_DOCS_BUILD_ENV} sphinx-build-${PYTHON_VER} \ + -M html source ../build) + +post-build: + (cd ${WRKSRC}/docs && \ + pip-${PYTHON_VER} install --ignore-installed --isolated \ + --no-deps --root=${WRKDIR} ${WRKSRC}/dist/*.whl && \ + ${SETENV} ${_DOCS_BUILD_ENV} sphinx-build-${PYTHON_VER} \ + -M man source ../build) + +do-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + (cd ${WRKSRC}/build/html && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} "-not -name .buildinfo -not -regex ^./_sources.*") + ${INSTALL_DATA} ${WRKSRC}/README.md \ + ${STAGEDIR}${DOCSDIR} + +do-install-EXAMPLES-on: + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + (cd ${WRKSRC}/examples && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}) + +post-install: + ${INSTALL_MAN} ${WRKSRC}/build/man/pysnmp.1 \ + ${STAGEDIR}${PREFIX}/share/man/man1 + +do-test: + (cd ${WRKSRC} && \ + ${SETENV} ${TEST_ENV} tox-${PYTHON_VER} -e ${PY_FLAVOR}) + +.include diff --git a/net-mgmt/py-pysnmp-lextudio/distinfo b/net-mgmt/py-pysnmp-lextudio/distinfo new file mode 100644 --- /dev/null +++ b/net-mgmt/py-pysnmp-lextudio/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1704098680 +SHA256 (lextudio-pysnmp-v5.0.32_GH0.tar.gz) = 529bad55bf147a025d6eee5bf6ab6bce798621104eb4dddb0c82df251c7d6802 +SIZE (lextudio-pysnmp-v5.0.32_GH0.tar.gz) = 447549 diff --git a/net-mgmt/py-pysnmp-lextudio/pkg-descr b/net-mgmt/py-pysnmp-lextudio/pkg-descr new file mode 100644 --- /dev/null +++ b/net-mgmt/py-pysnmp-lextudio/pkg-descr @@ -0,0 +1,15 @@ +A pure-Python, fully functional SNMP management engine, and library. +Features: +* Complete SNMPv1/v2c and SNMPv3 support +* SMI framework for resolving MIB information and implementing SMI Managed +Objects +* Complete SNMP entity implementation +* USM Extended Security Options support (3DES, 192/256-bit AES encryption) +* Extensible network transports framework (UDP/IPv4, UDP/IPv6) +* Asynchronous socket-based IO API support +* Asyncio integration +* PySMI integration for dynamic MIB compilation +* Built-in instrumentation exposing protocol engine operations +* Python eggs and py2exe friendly +* 100% Python, works with Python 3.7+ +* MT-safe (if SnmpEngine is thread-local)