[Bug 271673] lang/python312: New port, update to 3.12.8

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 05 Apr 2025 16:44:06 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271673

--- Comment #60 from Charlie Li <vishwin@freebsd.org> ---
(In reply to Baptiste Daroussin from comment #58)
From a technical standpoint, it may be possible to add a new CPython version to
the tree without adjusting python.mk. From a political standpoint, it is not.
The case of landing new CPython without the corresponding python.mk bits
results in complaints over false advertising of supported Python 3.12+ pkg(8)s
on every mailing list and random PRs, some of which may include patches to
enable 3.12+ prematurely. That's more disorganised than containing everything
here in this PR.

Generally I post my stuff on phab, sometimes as PR attachments depending on
maintainer habit/preference, only when ready for public testing and feedback.
In this case everything relevant has been publicly shared.

As a compromise since I found more tree-wide changes that need to happen before
latest upstream setuptools can land (bug 270358 comment 78), I will offer this:
convert the existing setuptools (without update) to USE_PYTHON=pep517 so that
it stops using the standard library baseutils removed in Python 3.12 and later,
then this, 3.13 and associated python.mk changes can land one after the other
pretty much simultaneously.

(In reply to p5B2EA84B3 from comment #57)
site-packages under ${PREFIX}/${LOCALBASE} is the exclusive domain of pkg(8),
ie externally-managed by pkg(8), so pip is never to be used there. PEP-668
[0][1] allows enforcing this restriction and will come independent of this.
Many non-Python programs in our ports tree have Python dependencies so it is a
bad idea to mix package management systems in the same hierarchy.

[0] https://peps.python.org/pep-0668/
[1]
https://packaging.python.org/en/latest/specifications/externally-managed-environments/#externally-managed-environments

-- 
You are receiving this mail because:
You are the assignee for the bug.