git: 20b4df7d517e - main - misc/py-spdx-tools: Update to 0.8.3

From: Kai Knoblich <kai_at_FreeBSD.org>
Date: Sun, 02 Feb 2025 09:10:44 UTC
The branch main has been updated by kai:

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

commit 20b4df7d517ef0bb593e959e06422c1dee3591de
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2025-02-02 08:50:09 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2025-02-02 08:50:09 +0000

    misc/py-spdx-tools: Update to 0.8.3
    
    * Add a workaround by pre-generating some files to avoid fs-violations
      in poudriere.
    
    * Remove CONFLICTS_INSTALL as the installed package of this port
      no longer conflicts with misc/py-spdx.
    
    Changelog since 0.7.1:
    
    https://github.com/spdx/tools-python/blob/v0.8.3/CHANGELOG.md
    
    PR:             284464
    Reported by:    jhale
---
 misc/py-spdx-tools/Makefile                 | 32 ++++++++++++++++++++---------
 misc/py-spdx-tools/distinfo                 |  6 +++---
 misc/py-spdx-tools/files/generate-parser.py |  9 ++++++++
 3 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/misc/py-spdx-tools/Makefile b/misc/py-spdx-tools/Makefile
index b3fcfba595f3..94eb8e59d0d0 100644
--- a/misc/py-spdx-tools/Makefile
+++ b/misc/py-spdx-tools/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	spdx-tools
-DISTVERSION=	0.7.1
-PORTREVISION=	1
+DISTVERSION=	0.8.3
 CATEGORIES=	misc python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -14,30 +13,43 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	${PY_SETUPTOOLS} \
 		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=3.4.3:devel/py-setuptools-scm@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-
+		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} \
+		${RUN_DEPENDS}
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}click>=0:devel/py-click@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}xmltodict>=0:devel/py-xmltodict@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}rdflib>=0:textproc/py-rdflib@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}typeguard>=2.13.3:devel/py-typeguard@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}beartype>=0:devel/py-beartype@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}uritools>=0:net/py-uritools@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}license-expression>=0:textproc/py-license-expression@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}ply>=0:devel/py-ply@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}ply>=0:devel/py-ply@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}semantic-version>=0:devel/py-semantic-version@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}tzdata>=0:devel/py-tzdata@${PY_FLAVOR}
 
 USES=		python
 USE_PYTHON=	autoplist concurrent pep517 pytest
 
 TEST_ENV=	PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} LC_ALL=en_US.UTF-8
 
-CONFLICTS_INSTALL=	py??-spdx
-NO_ARCH=		yes
-PORTEXAMPLES=		*
+NO_ARCH=	yes
+PLIST_FILES=	${PYTHON_SITELIBDIR}/spdx_tools/spdx/parser/tagvalue/parser.out
+PORTEXAMPLES=	*
 
 OPTIONS_DEFINE=	EXAMPLES
 
-post-install-EXAMPLES-on:
+pre-build:
+	${SETENVI} PYTHONPATH=${WRKSRC}/src:${PYTHON_LIBDIR} ${PYTHON_CMD} ${FILESDIR}/generate-parser.py
+
+post-install:
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
 	${FIND} ${WRKSRC}/examples -type f -exec ${INSTALL_DATA} {} ${STAGEDIR}${EXAMPLESDIR} \;
+	${INSTALL_DATA} ${WRKSRC}/src/spdx_tools/spdx/parser/tagvalue/parser.out \
+		${STAGEDIR}${PYTHON_SITELIBDIR}/spdx_tools/spdx/parser/tagvalue
+
+# This test requires https://github.com/RDFLib/pySHACL, which is not currently
+# in the ports tree. Using PYTEST_IGNORED_TESTS doesn't seem to work in this
+# case, so just delete it for now so that the other tests pass.
+pre-test:
+	${RM} ${WRKSRC}/tests/spdx3/validation/json_ld/test_shacl_validation.py
 
 .include <bsd.port.mk>
diff --git a/misc/py-spdx-tools/distinfo b/misc/py-spdx-tools/distinfo
index 7d8bb429eae2..30382b146207 100644
--- a/misc/py-spdx-tools/distinfo
+++ b/misc/py-spdx-tools/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1683647611
-SHA256 (spdx-tools-0.7.1.tar.gz) = 975e6dbba88f105a8acb22abf53fe90f0e9d5635a2b9b1fe487781e969623b17
-SIZE (spdx-tools-0.7.1.tar.gz) = 200475
+TIMESTAMP = 1737794656
+SHA256 (spdx-tools-0.8.3.tar.gz) = 68b8f9ce2893b5216bd90b2e63f1c821c2884e4ebc4fd295ebbf1fa8b8a94b93
+SIZE (spdx-tools-0.8.3.tar.gz) = 681626
diff --git a/misc/py-spdx-tools/files/generate-parser.py b/misc/py-spdx-tools/files/generate-parser.py
new file mode 100644
index 000000000000..08f9c64cc5ed
--- /dev/null
+++ b/misc/py-spdx-tools/files/generate-parser.py
@@ -0,0 +1,9 @@
+# Pre-generate a few files to avoid fs-violations in poudriere:
+#
+# ${PYTHON_SITELIBDIR}/spdx_tools/spdx/parser/tagvalue/parser.out
+# ${PYTHON_SITELIBDIR}/spdx_tools/spdx/parser/tagvalue/parser.py
+#
+
+import spdx_tools.spdx.parser.tagvalue.tagvalue_parser as tvp
+
+tvp.Parser()