summaryrefslogtreecommitdiff
path: root/devel/py-pyyaml-ft
diff options
context:
space:
mode:
Diffstat (limited to 'devel/py-pyyaml-ft')
-rw-r--r--devel/py-pyyaml-ft/Makefile28
-rw-r--r--devel/py-pyyaml-ft/distinfo3
-rw-r--r--devel/py-pyyaml-ft/files/patch-setup.py10
-rw-r--r--devel/py-pyyaml-ft/pkg-descr14
4 files changed, 55 insertions, 0 deletions
diff --git a/devel/py-pyyaml-ft/Makefile b/devel/py-pyyaml-ft/Makefile
new file mode 100644
index 000000000000..b49ca6135229
--- /dev/null
+++ b/devel/py-pyyaml-ft/Makefile
@@ -0,0 +1,28 @@
+PORTNAME= pyyaml-ft
+PORTVERSION= 8.0.0
+CATEGORIES= devel python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= pyyaml_ft-${PORTVERSION}
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= YAML parser and emitter for Python with support for free-threading
+WWW= https://pyyaml.org/wiki/PyYAMLDocumentation \
+ https://github.com/Quansight-Labs/pyyaml-ft
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+LIB_DEPENDS= libyaml.so:textproc/libyaml
+
+USES= localbase python
+USE_PYTHON= autoplist concurrent cython3 pep517 pytest
+
+TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR}
+
+post-install:
+ ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} +
+
+.include <bsd.port.mk>
diff --git a/devel/py-pyyaml-ft/distinfo b/devel/py-pyyaml-ft/distinfo
new file mode 100644
index 000000000000..381fe446bbcd
--- /dev/null
+++ b/devel/py-pyyaml-ft/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1750188112
+SHA256 (pyyaml_ft-8.0.0.tar.gz) = 0c947dce03954c7b5d38869ed4878b2e6ff1d44b08a0d84dc83fdad205ae39ab
+SIZE (pyyaml_ft-8.0.0.tar.gz) = 141057
diff --git a/devel/py-pyyaml-ft/files/patch-setup.py b/devel/py-pyyaml-ft/files/patch-setup.py
new file mode 100644
index 000000000000..87599dcbfa8e
--- /dev/null
+++ b/devel/py-pyyaml-ft/files/patch-setup.py
@@ -0,0 +1,10 @@
+--- setup.py.orig 2025-06-10 15:01:38 UTC
++++ setup.py
+@@ -1,6 +1,6 @@ import pathlib
+ import pathlib
+
+-NAME = 'PyYAML-ft'
++NAME = 'pyyaml-ft'
+ VERSION = '8.0.0'
+ DESCRIPTION = "YAML parser and emitter for Python with support for free-threading"
+ LONG_DESCRIPTION = (pathlib.Path(__file__).parent / 'README.md').read_text(encoding="utf-8")
diff --git a/devel/py-pyyaml-ft/pkg-descr b/devel/py-pyyaml-ft/pkg-descr
new file mode 100644
index 000000000000..bfdb8d223d4c
--- /dev/null
+++ b/devel/py-pyyaml-ft/pkg-descr
@@ -0,0 +1,14 @@
+PyYAML-ft provides a full-featured YAML processing framework for Python with
+support for free-threading.
+
+PEP 703 introduced free-threaded Python as a separate build of CPython 3.13.
+Thread-safety issues that might have otherwise gone unnoticed are now much
+easier to trigger because of the absence of protection from the GIL. Also,
+because the free-threaded build is ABI-incompatible, extension modules need to
+be separate, free-threaded wheels and declare support for it.
+
+The PyYAML maintainers decided to not port PyYAML to the free-threaded build
+before the latter, along with Cython support for it, has been tested more
+extensively in real-world applications. Our rationale with this fork is to
+implement support for the free-threaded build, so that PyYAML can be tested with
+it by its users, even before the port is merged upstream.