Index | Thread | Search

From:
Daniel Dickman <didickman@gmail.com>
Subject:
Re: py3.14
To:
ports <ports@openbsd.org>, Theo Buehler <tb@openbsd.org>, Kurt Mosiejczuk <kurt@cranky.work>, Landry Breuil <landry@rhaalovely.net>
Date:
Mon, 27 Apr 2026 16:56:23 -0400

Download raw body.

Thread
  • Stuart Henderson:

    py3.14

    • Landry Breuil:

      py3.14

    • Daniel Dickman:

      py3.14

      • Stuart Henderson:

        py3.14

        • Stuart Henderson:

          py3.14

Makes sense to me on timing for the update and I'm fine with the update 
itself and also the updates of ports I maintain.

I'm only wondering if it might make sense to have something like the below 
so that SUBST_VARS replaces python3.13 with a variable?

That might make diffs of the packaging list changes easier to review when 
we do major version updates?

Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/python/Makefile.inc,v
diff -u -p -u -r1.171 Makefile.inc
--- Makefile.inc	15 Jan 2026 11:53:46 -0000	1.171
+++ Makefile.inc	27 Apr 2026 20:50:11 -0000
@@ -11,7 +11,8 @@ COMMENT-tests =	Python test suite
 COMMENT-tkinter = Python interface to the Tk graphical toolkit
 COMMENT-tools =	extra tools for Python
 
-VERSION =	${FULL_VERSION:R}
+VERSION =		${FULL_VERSION:R}
+PYTHON_VERSION =	python${VERSION}
 
 DISTNAME =	Python-${FULL_VERSION}
 PKGNAME-main =	python-${FULL_VERSION}
@@ -92,11 +93,11 @@ LIB_DEPENDS-bsddb +=	databases/db/v4,no_
 .else
 LIB_DEPENDS-bsddb +=	databases/db/v4
 .endif
-WANTLIB-bsddb =		lib/db4/db>=4 pthread python${VERSION}
+WANTLIB-bsddb =		lib/db4/db>=4 pthread ${PYTHON_VERSION}
 
 LIB_DEPENDS-gdbm =	databases/gdbm \
 			lang/python/${V_SUBDIR},-main
-WANTLIB-gdbm =		gdbm>=3 pthread python${VERSION}
+WANTLIB-gdbm =		gdbm>=3 pthread ${PYTHON_VERSION}
 
 RUN_DEPENDS-idle =	lang/python/${V_SUBDIR},-tkinter \
 			${RUN_DEPENDS}
@@ -112,7 +113,7 @@ MODTK_VERSION =		8.6
 
 LIB_DEPENDS-tkinter =	lang/python/${V_SUBDIR},-main \
 			${MODTK_LIB_DEPENDS}
-WANTLIB-tkinter =	pthread python${VERSION} \
+WANTLIB-tkinter =	pthread ${PYTHON_VERSION} \
 			${MODTK_WANTLIB}
 
 CONFIGURE_STYLE =	autoconf
@@ -150,7 +151,7 @@ MAKE_FLAGS +=	CFLAGS_NODIST='-I${LOCALBA
 FAKE_FLAGS +=	RANLIB=:
 
 PY_PLATFORM =	openbsd${OSMAJOR}
-SUBST_VARS +=	FULL_VERSION VERSION_SPEC PY_PLATFORM
+SUBST_VARS +=	PYTHON_VERSION VERSION FULL_VERSION VERSION_SPEC PY_PLATFORM
 
 # Python itself is clean, but some dlopen()'d extensions e.g. QtWebKit
 # require W|X mappings and/or don't have the required landing pads for
@@ -182,7 +183,7 @@ ADJ_FILES += ${WRKSRC}/Tools/scripts/2to
 
 post-build:
 	perl -pi -e \
-		's@#! */usr/bin/(env +)?python@#!${PREFIX}/bin/python${VERSION}@' \
+		's@#! */usr/bin/(env +)?python@#!${PREFIX}/bin/${PYTHON_VERSION}@' \
 		${ADJ_FILES}
 
 post-install:
@@ -194,22 +195,22 @@ post-install:
 	${INSTALL_SCRIPT} ${WRKSRC}/idle ${PREFIX}/bin/idle${VERSION}
 	cd ${PREFIX}/bin && ln -sf idle${VERSION} idle${VERSION:R}
 	mv ${PREFIX}/bin/pydoc ${PREFIX}/bin/pydoc2
-	@cd ${WRKSRC}; tar -cf - Tools | (cd ${PREFIX}/lib/python${VERSION}; \
+	@cd ${WRKSRC}; tar -cf - Tools | (cd ${PREFIX}/lib/${PYTHON_VERSION}; \
 		tar -xf -)
 	${INSTALL_SCRIPT} ${WRKSRC}/Tools/scripts/2to3 \
-		${PREFIX}/bin/python${VERSION}-2to3
+		${PREFIX}/bin/${PYTHON_VERSION}-2to3
 .else
 	rm -f ${PREFIX}/bin/pip3 # in devel/py-pip
 .endif
 	if [ -e ${FILESDIR}/EXTERNALLY-MANAGED ]; then \
 		${INSTALL_DATA} ${FILESDIR}/EXTERNALLY-MANAGED \
-		${PREFIX}/lib/python${VERSION}/EXTERNALLY-MANAGED; fi # PEP-668
-	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/python${VERSION}
+		${PREFIX}/lib/${PYTHON_VERSION}/EXTERNALLY-MANAGED; fi # PEP-668
+	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/${PYTHON_VERSION}
 	${INSTALL_DATA} ${FILESDIR}/CHANGES.OpenBSD \
-		${PREFIX}/share/doc/python${VERSION}/CHANGES.OpenBSD
+		${PREFIX}/share/doc/${PYTHON_VERSION}/CHANGES.OpenBSD
 	${INSTALL_DATA_DIR} ${PREFIX}/share/gdb/auto-load/usr/local/bin
 	${INSTALL_SCRIPT} ${WRKSRC}/python-gdb.py \
-		${PREFIX}/share/gdb/auto-load/usr/local/bin/python${VERSION}-gdb.py
+		${PREFIX}/share/gdb/auto-load/usr/local/bin/${PYTHON_VERSION}-gdb.py
 	@for i in _hashlib _ssl; do \
 	    if ! [ -r ${PREFIX}/lib/python*/lib-dynload/$$i*.so ]; then echo; \
 		echo "*** check logs - $$i was not built!"; echo; exit 1; fi; done