git: e1190193af47 - main - misc/py-spdx-tools: Fix fs-violations for consumers

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Fri, 17 Apr 2026 06:36:22 UTC
The branch main has been updated by jhale:

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

commit e1190193af4746ec36728640165f5ccc03994f02
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2026-04-09 03:04:06 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2026-04-17 06:32:49 +0000

    misc/py-spdx-tools: Fix fs-violations for consumers
    
    When run as root by a consumer port, spdx_tools writes several files to
    $PYTHON_SITELIB}/spdx_tools/spdx/parser/ that must be pregenerated to
    avoid fs-violations in poudriere.
    
    Pass maintainership to kde@ since the main consumers of this will be the
    Qt6 ports starting with Qt 6.11.0.
    
    PR:             294345
    Approved by:    kai
    MFH:            2026Q2
---
 misc/py-spdx-tools/Makefile                   | 6 +++++-
 misc/py-spdx-tools/files/generate-parsetag.py | 9 +++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/misc/py-spdx-tools/Makefile b/misc/py-spdx-tools/Makefile
index ee13923cd48d..b5546983d48d 100644
--- a/misc/py-spdx-tools/Makefile
+++ b/misc/py-spdx-tools/Makefile
@@ -1,11 +1,12 @@
 PORTNAME=	spdx-tools
 DISTVERSION=	0.8.5
+PORTREVISION=	1
 CATEGORIES=	misc python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 DISTNAME=	spdx_tools-${DISTVERSION}
 
-MAINTAINER=	kai@FreeBSD.org
+MAINTAINER=	kde@FreeBSD.org
 COMMENT=	Parses, validates and creates SPDX documents
 WWW=		https://github.com/spdx/tools-python
 
@@ -37,6 +38,9 @@ PORTEXAMPLES=	*
 
 OPTIONS_DEFINE=	EXAMPLES
 
+pre-build:
+	${SETENVI} PYTHONPATH=${WRKSRC}/src:${PYTHON_LIBDIR} ${PYTHON_CMD} ${FILESDIR}/generate-parsetag.py
+
 post-install:
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
 	${FIND} ${WRKSRC}/examples -type f -exec ${INSTALL_DATA} {} ${STAGEDIR}${EXAMPLESDIR} \;
diff --git a/misc/py-spdx-tools/files/generate-parsetag.py b/misc/py-spdx-tools/files/generate-parsetag.py
new file mode 100644
index 000000000000..a4142d54bc6f
--- /dev/null
+++ b/misc/py-spdx-tools/files/generate-parsetag.py
@@ -0,0 +1,9 @@
+# Pre-generate a few files to avoid fs-violations in poudriere for consumers:
+#
+# ${PYTHON_SITELIBDIR}/spdx_tools/spdx/parser/tagvalue/parser.out
+# ${PYTHON_SITELIBDIR}/spdx_tools/spdx/parser/tagvalue/parsetag.py
+#
+
+import spdx_tools.spdx.parser.tagvalue.tagvalue_parser as tvp
+
+tvp.Parser()