git: a4d616aff942 - main - devel/py-gpep517: add

From: Charlie Li <vishwin_at_FreeBSD.org>
Date: Mon, 27 Mar 2023 04:48:47 UTC
The branch main has been updated by vishwin:

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

commit a4d616aff9421cef1ce84d390422a567f82968f6
Author:     Charlie Li <vishwin@FreeBSD.org>
AuthorDate: 2023-03-27 04:45:29 +0000
Commit:     Charlie Li <vishwin@FreeBSD.org>
CommitDate: 2023-03-27 04:45:29 +0000

    devel/py-gpep517: add
    
    Alternative PEP-517 build frontend, originally from Gentoo
    
    Despite the requires-python specifier, this does work on 3.7.
---
 devel/Makefile             |  1 +
 devel/py-gpep517/Makefile  | 51 ++++++++++++++++++++++++++++++++++++++++++++++
 devel/py-gpep517/distinfo  |  3 +++
 devel/py-gpep517/pkg-descr |  7 +++++++
 4 files changed, 62 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index f884ddc55fc5..4abfd541fa59 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4663,6 +4663,7 @@
     SUBDIR += py-google-pasta
     SUBDIR += py-google-re2
     SUBDIR += py-googleapis-common-protos
+    SUBDIR += py-gpep517
     SUBDIR += py-gpxpy
     SUBDIR += py-grab
     SUBDIR += py-graphene
diff --git a/devel/py-gpep517/Makefile b/devel/py-gpep517/Makefile
new file mode 100644
index 000000000000..66e31a64d0ec
--- /dev/null
+++ b/devel/py-gpep517/Makefile
@@ -0,0 +1,51 @@
+PORTNAME=	gpep517
+DISTVERSION=	13
+CATEGORIES=	devel python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	python@FreeBSD.org
+COMMENT=	Python package builder and installer for non-pip-centric world
+WWW=		https://github.com/projg2/gpep517
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}installer>=0.5:devel/py-installer@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}flit-core>=3.2:devel/py-flit-core@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pdm-pep517>0:devel/py-pdm-pep517@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}poetry-core>0:devel/py-poetry-core@${PY_FLAVOR} \
+		${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	allflavors autoplist concurrent pep517 pytest
+
+PEP517_BUILD_DEPEND=	${PYTHON_PKGNAMEPREFIX}flit-core>=3.2:devel/py-flit-core@${PY_FLAVOR}
+PEP517_BUILD_CMD=	${PYTHON_CMD} -m flit_core.wheel
+
+NO_ARCH=	yes
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} < 31100
+BUILD_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}tomli>=1.2.3:textproc/py-tomli@${PY_FLAVOR}
+RUN_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}tomli>=1.2.3:textproc/py-tomli@${PY_FLAVOR}
+.endif
+
+post-patch:
+	@${REINPLACE_CMD} '/requires-python/d' ${WRKSRC}/pyproject.toml
+
+pre-test:
+.for i in flit_core hatchling pdm.pep517 poetry.core setuptools-legacy setuptools
+	@${LN} -s ${TEST_WRKSRC}/test/test-pkg/testpkg \
+		${TEST_WRKSRC}/test/integration/${i}/testpkg
+.endfor
+
+post-test:
+.for i in flit_core hatchling pdm.pep517 poetry.core setuptools-legacy setuptools
+	@${RM} ${TEST_WRKSRC}/test/integration/${i}/testpkg
+.endfor
+
+.include <bsd.port.post.mk>
diff --git a/devel/py-gpep517/distinfo b/devel/py-gpep517/distinfo
new file mode 100644
index 000000000000..1d31ee42593f
--- /dev/null
+++ b/devel/py-gpep517/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1679878249
+SHA256 (gpep517-13.tar.gz) = 4ba0d7f0c943e599ebf3df77d43147313d80cdffa75aacc46beef72f7af44c89
+SIZE (gpep517-13.tar.gz) = 19244
diff --git a/devel/py-gpep517/pkg-descr b/devel/py-gpep517/pkg-descr
new file mode 100644
index 000000000000..a58f3d4388e4
--- /dev/null
+++ b/devel/py-gpep517/pkg-descr
@@ -0,0 +1,7 @@
+gpep517 is a minimal tool to aid building wheels for Python packages
+through PEP 517-compliant build systems and installing them. The
+tool originated from Gentoo with its primary goals being absolutely
+minimal dependency footprint to ease clean bootstrap without bundling
+dependencies, and clean separation of functions to aid external
+package managers. It is the tool of choice for a world that does
+not revolve around pip and venvs.