aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Li <vishwin@FreeBSD.org>2025-03-12 02:24:07 +0000
committerCharlie Li <vishwin@FreeBSD.org>2025-03-12 02:31:08 +0000
commit7a5f12ca6a82f80b6846aa727807cf697d1f5345 (patch)
tree9646572c54a83ba96873a141e858853fe0f4e6a2
parentc80aa929f5235bfcd3129fdbfdd9babc6c7c066b (diff)
databases/py-gdbm: convert to USE_PYTHON=pep517
PR: 268283
-rw-r--r--databases/py-gdbm/Makefile27
-rw-r--r--databases/py-gdbm/files/pyproject.toml.in11
-rw-r--r--databases/py-gdbm/files/setup.py21
3 files changed, 35 insertions, 24 deletions
diff --git a/databases/py-gdbm/Makefile b/databases/py-gdbm/Makefile
index 380cc4946f3c..3514845816c4 100644
--- a/databases/py-gdbm/Makefile
+++ b/databases/py-gdbm/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gdbm
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= databases python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION}
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,22 +11,35 @@ MAINTAINER= python@FreeBSD.org
COMMENT= Python bindings to the GNU dbm library (Python ${PYTHON_VER})
LICENSE= PSFL
+LICENSE_FILE= ${WRKDIR}/Python-${DISTVERSION}/LICENSE
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
LIB_DEPENDS= libgdbm.so:databases/gdbm
USES= compiler:c11 python tar:xz
-USE_PYTHON= allflavors autoplist distutils
+USE_PYTHON= allflavors autoplist pep517
-DISTINFO_FILE= ${.CURDIR}/../../lang/python${PYTHON_SUFFIX}/distinfo
-PYDISTUTILS_INSTALLARGS+= --install-lib ${PYTHONPREFIX_LIBDIR}/lib-dynload
+DISTINFO_FILE= ${PORTSDIR}/lang/python${PYTHON_SUFFIX}/distinfo
WRKSRC_SUBDIR= Modules
+SUB_LIST+= DISTVERSION=${DISTVERSION}
+SUB_FILES= pyproject.toml
+PLIST_FILES= ${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;}/lib-dynload/_gdbm${PYTHON_EXT_SUFFIX}.so
+
PORTSCOUT= ignore:1
-post-extract:
- @${CP} ${FILESDIR}/setup.py ${WRKSRC}/setup.py
+pre-configure:
+ @${CP} ${FILESDIR}/setup.py ${WRKSRC}
+ @${MV} ${WRKDIR}/pyproject.toml ${WRKSRC}
post-install:
- ${STRIP_CMD} ${STAGEDIR}${PYTHON_LIBDIR}/lib-dynload/_gdbm.cpython-${PYTHON_SUFFIX}.so
+ @${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/_gdbm${PYTHON_EXT_SUFFIX}.so
+ # lib-dynload is the expected location
+ @${MKDIR} ${STAGEDIR}${PYTHONPREFIX_LIBDIR}/lib-dynload
+ @(cd ${STAGEDIR}${PYTHONPREFIX_LIBDIR}/lib-dynload && ${LN} -s ../site-packages/_gdbm${PYTHON_EXT_SUFFIX}.so)
+
+do-test:
+ @${PYTHON_CMD} -c 'import dbm' # minimal smoke test
.include <bsd.port.mk>
diff --git a/databases/py-gdbm/files/pyproject.toml.in b/databases/py-gdbm/files/pyproject.toml.in
new file mode 100644
index 000000000000..8d32d1e58f3f
--- /dev/null
+++ b/databases/py-gdbm/files/pyproject.toml.in
@@ -0,0 +1,11 @@
+[build-system]
+requires = ["setuptools", "wheel"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "gdbm"
+version = "%%DISTVERSION%%"
+description = "GNU dbm extension to Python"
+
+[tool.setuptools]
+packages = []
diff --git a/databases/py-gdbm/files/setup.py b/databases/py-gdbm/files/setup.py
index 0a947466d03e..d6424297d8da 100644
--- a/databases/py-gdbm/files/setup.py
+++ b/databases/py-gdbm/files/setup.py
@@ -1,27 +1,14 @@
#!/usr/bin/env python
-# To use:
-# python setup.py install
-#
-try:
- import distutils
- from distutils import sysconfig
- from distutils.command.install import install
- from distutils.core import setup, Extension
-except:
- raise SystemExit("Distutils problem")
+import sysconfig
+from setuptools import setup, Extension
-install.sub_commands = [x for x in install.sub_commands if 'egg' not in x[0]]
-
-prefix = sysconfig.PREFIX
+prefix = sysconfig.get_config_var('prefix')
inc_dirs = [prefix + "/include"]
lib_dirs = [prefix + "/lib"]
libs = ["gdbm"]
-setup(name = "gdbm",
- description = "GDBM Extension to Python",
-
- ext_modules = [Extension('_gdbm', ['_gdbmmodule.c'],
+setup(ext_modules = [Extension('_gdbm', ['_gdbmmodule.c'],
include_dirs = inc_dirs,
libraries = libs,
library_dirs = lib_dirs)]