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
This commit is contained in:
Charlie Li 2025-03-11 22:34:18 -04:00
parent b7e75ada7e
commit b4529dc744
No known key found for this signature in database
GPG key ID: 678F936058415CCA
4 changed files with 59 additions and 52 deletions

View file

@ -1,34 +1,46 @@
PORTNAME= tkinter PORTNAME= tkinter
DISTVERSION= ${PYTHON_DISTVERSION} DISTVERSION= ${PYTHON_DISTVERSION}
PORTREVISION= 9 PORTREVISION= 10
CATEGORIES= x11-toolkits python CATEGORIES= x11-toolkits python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION} MASTER_SITES= PYTHON/ftp/python/${DISTVERSION}
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= Python-${DISTVERSION} DISTNAME= Python-${DISTVERSION}
DIST_SUBDIR= python
MAINTAINER= python@FreeBSD.org MAINTAINER= python@FreeBSD.org
COMMENT= Python bindings to the Tk widget set (Python ${PYTHON_VER}) COMMENT= Python bindings to the Tk widget set (Python ${PYTHON_VER})
LICENSE= PSFL 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 USES= compiler:c11 python tar:xz tk:86
USE_PYTHON= distutils autoplist allflavors USE_PYTHON= allflavors autoplist pep517
DIST_SUBDIR= python
DISTINFO_FILE= ${PORTSDIR}/lang/python${PYTHON_SUFFIX}/distinfo DISTINFO_FILE= ${PORTSDIR}/lang/python${PYTHON_SUFFIX}/distinfo
WRKSRC_SUBDIR= Modules 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: pre-configure:
@${SED} -e "s|%%TK_VER%%|${TK_VER}|" ${FILESDIR}/setup.py > ${WRKSRC}/setup.py @${MV} ${WRKDIR}/pyproject.toml ${WRKSRC}
@${MV} ${WRKDIR}/setup.py ${WRKSRC}
post-install: post-install:
# ${STRIP_CMD} ${STAGEDIR}${PYTHON_LIBDIR}/lib-dynload/_tkinter.cpython-${PYTHON_SUFFIX}.so @${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/_tkinter${PYTHON_EXT_SUFFIX}.so
${STRIP_CMD} ${STAGEDIR}${PYTHON_LIBDIR}/lib-dynload/_tkinter*.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)
.include <bsd.port.post.mk> do-test:
@${PYTHON_CMD} -c 'import tkinter' # minimal smoke test
.include <bsd.port.mk>

View file

@ -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 = []

View file

@ -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)]
)

View file

@ -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)]
)