git: e8d50a3f5ade - main - devel/py-protoc-gen-validate: Add py-protoc-gen-validate 1.2.1

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Tue, 09 Dec 2025 11:23:33 UTC
The branch main has been updated by sunpoet:

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

commit e8d50a3f5adef8f76bae8ce71c5ad9002c77eda9
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2025-12-09 06:37:14 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2025-12-09 11:20:49 +0000

    devel/py-protoc-gen-validate: Add py-protoc-gen-validate 1.2.1
    
    While protocol buffers effectively guarantee the types of structured data, they
    cannot enforce semantic rules for values. This package is a python
    implementation of protoc-gen-validate, which allows for runtime validation of
    various semantic assertions expressed as annotations on the protobuf schema. The
    syntax for all available annotations is in validate.proto. Implemented Python
    annotations are listed in the rules comparison.
---
 devel/Makefile                                     |  1 +
 devel/py-protoc-gen-validate/Makefile              | 28 ++++++++++++++++++++++
 devel/py-protoc-gen-validate/distinfo              |  3 +++
 devel/py-protoc-gen-validate/files/patch-setup.cfg | 11 +++++++++
 devel/py-protoc-gen-validate/pkg-descr             |  6 +++++
 5 files changed, 49 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 40e9dcd3490a..cc66c90be9d1 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -5591,6 +5591,7 @@
     SUBDIR += py-proto-plus
     SUBDIR += py-protobuf
     SUBDIR += py-protobuf-compiler
+    SUBDIR += py-protoc-gen-validate
     SUBDIR += py-protovalidate
     SUBDIR += py-proxmoxer
     SUBDIR += py-psygnal
diff --git a/devel/py-protoc-gen-validate/Makefile b/devel/py-protoc-gen-validate/Makefile
new file mode 100644
index 000000000000..a9a5bdcc0842
--- /dev/null
+++ b/devel/py-protoc-gen-validate/Makefile
@@ -0,0 +1,28 @@
+PORTNAME=	protoc-gen-validate
+PORTVERSION=	1.2.1
+CATEGORIES=	devel python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	protoc_gen_validate-${PORTVERSION}
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	PGV for python via just-in-time code generation
+WWW=		https://github.com/bufbuild/protoc-gen-validate/tree/main/python \
+		https://github.com/bufbuild/protoc-gen-validate
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=45:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=6.2:devel/py-setuptools-scm@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}wheel>=0.38.1:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Jinja2>=2.11.1:devel/py-Jinja2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}protobuf>=5.27.0,1:devel/py-protobuf@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}validate_email>=1.3:mail/py-validate_email@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent pep517
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/devel/py-protoc-gen-validate/distinfo b/devel/py-protoc-gen-validate/distinfo
new file mode 100644
index 000000000000..4a9e96ad499d
--- /dev/null
+++ b/devel/py-protoc-gen-validate/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1765032626
+SHA256 (protoc_gen_validate-1.2.1.tar.gz) = 62cd74043e49a34346a3fe7a7fe39e8adce69b19edc99b4d8d410c02a727d552
+SIZE (protoc_gen_validate-1.2.1.tar.gz) = 18160
diff --git a/devel/py-protoc-gen-validate/files/patch-setup.cfg b/devel/py-protoc-gen-validate/files/patch-setup.cfg
new file mode 100644
index 000000000000..6bb63690348d
--- /dev/null
+++ b/devel/py-protoc-gen-validate/files/patch-setup.cfg
@@ -0,0 +1,11 @@
+--- setup.cfg.orig	2025-01-22 20:45:00 UTC
++++ setup.cfg
+@@ -27,7 +27,7 @@ python_requires = >=3.9
+ python_requires = >=3.9
+ 
+ [options.data_files]
+-data = validate.proto
++share/protoc-gen-validate = validate.proto
+ 
+ [flake8]
+ max-line-length = 120
diff --git a/devel/py-protoc-gen-validate/pkg-descr b/devel/py-protoc-gen-validate/pkg-descr
new file mode 100644
index 000000000000..8f255f059e35
--- /dev/null
+++ b/devel/py-protoc-gen-validate/pkg-descr
@@ -0,0 +1,6 @@
+While protocol buffers effectively guarantee the types of structured data, they
+cannot enforce semantic rules for values. This package is a python
+implementation of protoc-gen-validate, which allows for runtime validation of
+various semantic assertions expressed as annotations on the protobuf schema. The
+syntax for all available annotations is in validate.proto. Implemented Python
+annotations are listed in the rules comparison.