diff options
author | Charlie Li <vishwin@FreeBSD.org> | 2025-03-12 02:34:18 +0000 |
---|---|---|
committer | Charlie Li <vishwin@FreeBSD.org> | 2025-03-12 02:35:51 +0000 |
commit | b4529dc74457f6c0db0692aee8976b89a52aae5d (patch) | |
tree | 938e2275c18c658482c57c631d05fd83f70b3839 | |
parent | b7e75ada7e388c089d7655d78077f81d75cdb070 (diff) |
x11-toolkits/py-tkinter: convert to USE_PYTHON=pep517
Note USES=tk limited to 8.6; 9.0 support is not expected until Python 3.14
PR: 268283
-rw-r--r-- | x11-toolkits/py-tkinter/Makefile | 36 | ||||
-rw-r--r-- | x11-toolkits/py-tkinter/files/pyproject.toml.in | 11 | ||||
-rw-r--r-- | x11-toolkits/py-tkinter/files/setup.py | 40 | ||||
-rw-r--r-- | x11-toolkits/py-tkinter/files/setup.py.in | 24 |
4 files changed, 59 insertions, 52 deletions
diff --git a/x11-toolkits/py-tkinter/Makefile b/x11-toolkits/py-tkinter/Makefile index ed3539dc384b..904493a8ddbb 100644 --- a/x11-toolkits/py-tkinter/Makefile +++ b/x11-toolkits/py-tkinter/Makefile @@ -1,34 +1,46 @@ PORTNAME= tkinter DISTVERSION= ${PYTHON_DISTVERSION} -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= x11-toolkits python MASTER_SITES= PYTHON/ftp/python/${DISTVERSION} PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= Python-${DISTVERSION} +DIST_SUBDIR= python MAINTAINER= python@FreeBSD.org COMMENT= Python bindings to the Tk widget set (Python ${PYTHON_VER}) LICENSE= PSFL +LICENSE_FILE= ${WRKDIR}/Python-${DISTVERSION}/LICENSE -PORTSCOUT= ignore:1 +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} -USES= compiler:c11 python tar:xz tk -USE_PYTHON= distutils autoplist allflavors +USES= compiler:c11 python tar:xz tk:86 +USE_PYTHON= allflavors autoplist pep517 -DIST_SUBDIR= python DISTINFO_FILE= ${PORTSDIR}/lang/python${PYTHON_SUFFIX}/distinfo WRKSRC_SUBDIR= Modules -PYDISTUTILS_INSTALLARGS+= --install-lib ${PYTHON_LIBDIR}/lib-dynload +SUB_LIST+= DISTVERSION=${DISTVERSION} \ + TK_VER=${TK_VER} +SUB_FILES= pyproject.toml \ + setup.py +PLIST_FILES= ${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;}/lib-dynload/_tkinter${PYTHON_EXT_SUFFIX}.so -.include <bsd.port.pre.mk> +PORTSCOUT= ignore:1 -post-extract: - @${SED} -e "s|%%TK_VER%%|${TK_VER}|" ${FILESDIR}/setup.py > ${WRKSRC}/setup.py +pre-configure: + @${MV} ${WRKDIR}/pyproject.toml ${WRKSRC} + @${MV} ${WRKDIR}/setup.py ${WRKSRC} post-install: -# ${STRIP_CMD} ${STAGEDIR}${PYTHON_LIBDIR}/lib-dynload/_tkinter.cpython-${PYTHON_SUFFIX}.so - ${STRIP_CMD} ${STAGEDIR}${PYTHON_LIBDIR}/lib-dynload/_tkinter*.so + @${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/_tkinter${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/_tkinter${PYTHON_EXT_SUFFIX}.so) + +do-test: + @${PYTHON_CMD} -c 'import tkinter' # minimal smoke test -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff --git a/x11-toolkits/py-tkinter/files/pyproject.toml.in b/x11-toolkits/py-tkinter/files/pyproject.toml.in new file mode 100644 index 000000000000..80772b4b3ff2 --- /dev/null +++ b/x11-toolkits/py-tkinter/files/pyproject.toml.in @@ -0,0 +1,11 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "tkinter" +version = "%%DISTVERSION%%" +description = "Tk Extension to Python" + +[tool.setuptools] +packages = [] diff --git a/x11-toolkits/py-tkinter/files/setup.py b/x11-toolkits/py-tkinter/files/setup.py deleted file mode 100644 index bcf53d093857..000000000000 --- a/x11-toolkits/py-tkinter/files/setup.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# To use: -# python setup.py install -# - -import os, string - -try: - import distutils - from distutils import sysconfig - from distutils.command.install import install - from distutils.core import setup, Extension -except: - raise SystemExit("Distutils problem") - -install.sub_commands = [x for x in install.sub_commands if 'egg' not in x[0]] - -tkversion = "%%TK_VER%%" -prefix = sysconfig.PREFIX -# Python 1.5 doesn't have os.getenv()? -x11base = os.environ['LOCALBASE'] or '/usr/X11R6' -inc_dirs = [prefix + "/include", - prefix + "/include/tcl" + tkversion, - prefix + "/include/tk" + tkversion, - x11base + "/include"] -lib_dirs = [prefix + "/lib", x11base + "/lib"] -# use string.replace() for the benefit of Python 1.5 users -libs = ["tcl" + tkversion.replace(".", ""), - "tk" + tkversion.replace(".", ""), - "X11"] - -setup(name = "Tkinter", - description = "Tk Extension to Python", - - ext_modules = [Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], - define_macros=[('WITH_APPINIT', 1)], - include_dirs = inc_dirs, - libraries = libs, - library_dirs = lib_dirs)] - ) diff --git a/x11-toolkits/py-tkinter/files/setup.py.in b/x11-toolkits/py-tkinter/files/setup.py.in new file mode 100644 index 000000000000..493bf949a682 --- /dev/null +++ b/x11-toolkits/py-tkinter/files/setup.py.in @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +import sys +import sysconfig +from setuptools import setup, Extension + +tkversion = "%%TK_VER%%" +prefix = sysconfig.get_config_var('prefix') +x11base = sys.prefix or '/usr/X11R6' +inc_dirs = [prefix + "/include", + prefix + "/include/tcl" + tkversion, + prefix + "/include/tk" + tkversion, + x11base + "/include"] +lib_dirs = [prefix + "/lib", x11base + "/lib"] +libs = ["tcl" + tkversion.replace(".", ""), + "tk" + tkversion.replace(".", ""), + "X11"] + +setup(ext_modules = [Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], + define_macros=[('WITH_APPINIT', 1)], + include_dirs = inc_dirs, + libraries = libs, + library_dirs = lib_dirs)] + ) |