git: 1a18e0ae75e7 - main - dns/py-libknot: new port: Python API using knot.sock to interact with the Knot DNS daemon

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Tue, 23 Jul 2024 16:52:09 UTC
The branch main has been updated by vvd:

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

commit 1a18e0ae75e73291bb9e6f9ed1ca832ae3e09daa
Author:     Leo Vandewoestijne <freebsd@dns.company>
AuthorDate: 2024-07-23 16:49:21 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2024-07-23 16:49:21 +0000

    dns/py-libknot: new port: Python API using knot.sock to interact with the Knot DNS daemon
    
    Using this module it's possible to create scripts for efficient tasks
    that would require complex shell scripts with multiple calls of knotc.
    For communication with the daemon it uses the same mechanism as the
    knotc utility, i.e. communication via a Unix socket.
    
    PR:     278280
---
 dns/Makefile             |  1 +
 dns/py-libknot/Makefile  | 22 ++++++++++++++++++++++
 dns/py-libknot/distinfo  |  3 +++
 dns/py-libknot/pkg-descr |  2 ++
 4 files changed, 28 insertions(+)

diff --git a/dns/Makefile b/dns/Makefile
index 8b62166ab555..bc71c5e2a57f 100644
--- a/dns/Makefile
+++ b/dns/Makefile
@@ -187,6 +187,7 @@
     SUBDIR += py-idna
     SUBDIR += py-idna_ssl
     SUBDIR += py-ldns
+    SUBDIR += py-libknot
     SUBDIR += py-localzone
     SUBDIR += py-ns1-python
     SUBDIR += py-publicsuffix
diff --git a/dns/py-libknot/Makefile b/dns/py-libknot/Makefile
new file mode 100644
index 000000000000..d137a6ffefb8
--- /dev/null
+++ b/dns/py-libknot/Makefile
@@ -0,0 +1,22 @@
+PORTNAME=	libknot
+DISTVERSION=	${KNOT_VERSION}
+CATEGORIES=	dns python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	freebsd@dns.company
+COMMENT=	Python API using knot.sock to interact with the Knot DNS daemon
+WWW=		https://gitlab.nic.cz/knot/knot-dns/-/tree/master/python/libknot
+
+LICENSE=	GPLv3
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR}
+LIB_DEPENDS=	libknot.so:dns/knot3
+
+USES=		python:3.5+
+USE_PYTHON=	autoplist concurrent pep517
+
+NO_ARCH=	yes
+
+.include "${.CURDIR}/../knot3/knotdns.mk"
+.include <bsd.port.mk>
diff --git a/dns/py-libknot/distinfo b/dns/py-libknot/distinfo
new file mode 100644
index 000000000000..05f0e8c3e6ab
--- /dev/null
+++ b/dns/py-libknot/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1721721718
+SHA256 (libknot-3.3.8.tar.gz) = 446d8d385402eabc5ebad6b09f702b672f6e34b9fe80f984aabbf5134618271e
+SIZE (libknot-3.3.8.tar.gz) = 11110
diff --git a/dns/py-libknot/pkg-descr b/dns/py-libknot/pkg-descr
new file mode 100644
index 000000000000..41724f2bae75
--- /dev/null
+++ b/dns/py-libknot/pkg-descr
@@ -0,0 +1,2 @@
+Python interface to operate the Knot DNS daemon.
+Communicating with it using the knot.sock unixsocket.