<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/3173d46b9a29bc9d79ddb6970e7f083ebe3f79c0">https://github.com/macports/macports-ports/commit/3173d46b9a29bc9d79ddb6970e7f083ebe3f79c0</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 3173d46b9a2 python312: stable release replacing python312-devel
</span>3173d46b9a2 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 3173d46b9a29bc9d79ddb6970e7f083ebe3f79c0
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Oct 3 05:22:40 2023 +1100

<span style='display:block; white-space:pre;color:#404040;'>    python312: stable release replacing python312-devel
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Also added py312 subports to dependencies needed for pep517 build of
</span><span style='display:block; white-space:pre;color:#404040;'>    py312-gdbm and py312-tkinter, and defaulting to pep517 for all versions
</span><span style='display:block; white-space:pre;color:#404040;'>    supported by py-installer.
</span>---
 _resources/port1.0/group/python-1.0.tcl            |   2 +-
 lang/python312-devel/Portfile                      | 247 +--------------------
 lang/{python312-devel => python312}/Portfile       |  16 +-
 .../files/configure-disable-libb2.patch            |   0
 .../files/configure-disable-libuuid.patch          |   0
 .../files/configure-disable-tkinter.patch          |   0
 .../files/libedit-types.patch                      |   0
 .../files/patch-Lib-cgi.py.diff                    |   0
 .../files/patch-Lib-ctypes-macholib-dyld.py.diff   |   0
 .../files/patch-configure.diff                     |   0
 .../files/patch-no-copyfile-on-Tiger.diff          |   0
 .../files/patch-threadid-older-systems.diff        |   0
 .../files/pyconfig.ed                              |   0
 .../files/pyconfig.h-universal.ed                  |   0
 .../files/python-python312                         |   0
 .../files/python3-python312                        |   0
 .../files/sysconfig.py.patch                       |   0
 python/py-build/Portfile                           |   2 +-
 python/py-flit_core/Portfile                       |   2 +-
 python/py-gdbm/Portfile                            |  12 +-
 python/py-installer/Portfile                       |   2 +-
 python/py-packaging/Portfile                       |   2 +-
 python/py-pyproject_hooks/Portfile                 |   2 +-
 python/py-setuptools/Portfile                      |   2 +-
 python/py-tkinter/Portfile                         |  12 +-
 python/py-tkinter/files/setup-pep517.py            |   2 +-
 python/py-wheel/Portfile                           |   2 +-
 27 files changed, 42 insertions(+), 263 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/python-1.0.tcl b/_resources/port1.0/group/python-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 96922e2da87..c539c7ca9a2 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/python-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/python-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -348,7 +348,7 @@ default destroot.cmd    {[python_get_defaults destroot_cmd]}
</span> default destroot.destdir {[python_get_defaults destroot_destdir]}
 default destroot.target {[python_get_defaults destroot_target]}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default python.pep517   {[expr {[info exists python.version] && ${python.version} >= 311}]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default python.pep517   {[expr {[info exists python.version] && ${python.version} >= 37}]}
</span> default python.pep517_backend   setuptools
 
 default python.test_framework   pytest
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/Portfile b/lang/python312-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 85706dff9c5..0c42ce39930 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python312-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python312-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,254 +1,15 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
 
 PortSystem 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup select 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup obsolete 1.0
</span> 
 name                python312-devel
<span style='display:block; white-space:pre;background:#e0ffe0;'>+replaced_by         python312
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Remember to keep py312-tkinter and py312-gdbm's versions sync'd with this
</span> version             3.12.0rc3
<span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set branch          [join [lrange [split ${version} .] 0 1] .]
</span> categories          lang
 license             PSF
<span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers         {jmr @jmroot}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-description         An interpreted, object-oriented programming language
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description    Python is an interpreted, interactive, object-oriented \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    programming language.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage            https://www.python.org/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#master_sites        ${homepage}ftp/python/${version}/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites        ${homepage}ftp/python/3.12.0/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distname            Python-${version}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_xz              yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           md5 cead7d4428e88e8de9219731c21edb74 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160 6f2d65a4398557b3532b3294cd38097c62f309b6 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256 96397e891e98802b1d399dee3ceaeb9bcf0aa2566c8a7b1cce4d0196c277506a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          patch-Lib-cgi.py.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-configure.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-Lib-ctypes-macholib-dyld.py.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sysconfig.py.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    configure-disable-libb2.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    configure-disable-libuuid.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    configure-disable-tkinter.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    libedit-types.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} <= 10} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # work around no copyfile and/or pthread_threadid_np on older systems
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append  patch-no-copyfile-on-Tiger.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                       patch-threadid-older-systems.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build       port:pkgconfig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib         port:bzip2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:expat \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:gettext-runtime \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:libedit \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:libffi \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:ncurses \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    path:lib/libssl.dylib:openssl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:sqlite3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:xz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:zlib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run         port:python_select \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:python3_select
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.c_standard 2011
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args      --enable-framework=${frameworks_dir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --enable-ipv6 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --enable-loadable-sqlite-extensions \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --with-computed-gotos \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --with-ensurepip=no \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --with-readline=editline \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --with-system-expat \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --with-dbmliborder=ndbm:bdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.ccache    no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# pkg-config removes -I flags for paths in CPATH, which confuses python.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.env       PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace "s|@@PREFIX@@|${prefix}|g" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      ${worksrcpath}/Lib/cgi.py \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      ${worksrcpath}/Lib/ctypes/macholib/dyld.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # replace /Applications with ${applications_dir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace "s|@@APPLICATIONS_DIR@@|${applications_dir}|" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.target        all
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-test.run            yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-test.target         test
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot.target     frameworkinstall maninstall
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pythonNoDot python[string map {. {}} $branch]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.entries      [list python python-$pythonNoDot $pythonNoDot] \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    [list python3 python3-$pythonNoDot $pythonNoDot]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set framewpath  ${frameworks_dir}/Python.framework
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set framewdir   ${framewpath}/Versions/${branch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set confdir     config-${branch}-darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-configure {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # poll() misbehaves on 10.8 and older
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # See https://trac.macports.org/ticket/18376
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} <= 12} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.ed"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach dir { Headers Resources Python Versions/Current } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            file delete ${destroot}${framewpath}/${dir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ln -s ${framewdir}/share/man/man1/python${branch}.1 ${destroot}${prefix}/share/man/man1/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ln -s ${framewdir}/lib/pkgconfig/python-${branch}-embed.pc ${destroot}${prefix}/lib/pkgconfig/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set libdir ${destroot}${framewdir}/lib/python${branch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Without this, LINKFORSHARED is set to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # (this becomes Python.framework/Versions/3.12/Python) which doesn't
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # work for dependents that incorrectly use this variable to find out
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # how to link against python (see ticket #15099); instead we mirror
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # the behavior of `python-config --ldflags` here.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set lfs_pattern {^([[:space:]]*'LINKFORSHARED':).*}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set lfs_replacement "\\1 '-L${framewdir}/lib/python${branch}/${confdir} -lpython${branch} -ldl -framework CoreFoundation',"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -E s|${lfs_pattern}|${lfs_replacement}| \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${libdir}/_sysconfigdata__darwin_darwin.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # remove -arch flags from the config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -E {s|-arch [a-z0-9_]+||g} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${libdir}/_sysconfigdata__darwin_darwin.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # also remove gettext overlinking
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace "s|-lintl||" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${libdir}/_sysconfigdata__darwin_darwin.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # recompile the modified file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set python_for_build python.exe
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # executable differs depending on filesystem case sensitivity
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {![file exists ${worksrcpath}/${python_for_build}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set python_for_build python
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -m compileall -d [shellescape ${framewdir}/lib/python${branch}] -o 0 -o 1 -o 2 [shellescape ${libdir}/_sysconfigdata__darwin_darwin.py]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Also make the sysconfig changes in the Makefile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace {s|^\(LINKFORSHARED=\).*$|\1 -L$(LIBPL) -lpython$(VERSION)$(ABIFLAGS) $(LIBS) $(SYSLIBS)|} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${libdir}/${confdir}/Makefile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -E {s|-arch [a-z0-9_]+||g} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           ${libdir}/${confdir}/Makefile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace "s|-lintl||" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           ${libdir}/${confdir}/Makefile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach unversioned {2to3 idle3 pydoc3 python3 python3-config} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        delete ${destroot}${prefix}/bin/${unversioned}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-notes "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-To make this the default Python or Python 3 (i.e., the version run by\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the 'python' or 'python3' commands), run one or both of:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    sudo port select --set python $pythonNoDot
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    sudo port select --set python3 $pythonNoDot
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant universal {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set universal_arch_flags {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set arch_run_32bit {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set lipo_32bit_flags {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set lipo_intel64_flags {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set any64 no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach arch ${configure.universal_archs} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend universal_arch_flags -arch ${arch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {${arch} in {i386 ppc}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                lappend arch_run_32bit -${arch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                lappend lipo_32bit_flags -extract ${arch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set any64 yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {$any64} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {$arch_run_32bit eq ""} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set arch_run_32bit true
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set lipo_32bit_flags ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set arch_run_32bit "/usr/bin/arch $arch_run_32bit"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                #lipo_32bit_flags already correct
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {"arm64" in ${configure.universal_archs} && "x86_64" in ${configure.universal_archs}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set lipo_intel64_flags "-extract x86_64"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set arch_run_32bit ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set lipo_32bit_flags ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "s|@@UNIVERSAL_ARCH_FLAGS@@|${universal_arch_flags}|" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "s|@@LIPO_32BIT_FLAGS@@|${lipo_32bit_flags}|" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "s|@@LIPO_INTEL64_FLAGS@@|${lipo_intel64_flags}|" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "s|@@ARCH_RUN_32BIT@@|${arch_run_32bit}|" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --enable-universalsdk=${configure.sysroot}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-configure {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.h-universal.ed"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach unversioned {python3-32 python3-intel64} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            delete ${destroot}${prefix}/bin/${unversioned}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant optimizations description {enable expensive, stable optimizations (including PGO)} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --enable-optimizations
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant lto description {enable Link-Time Optimization} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-lto
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Build failures on 10.9 and older
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${os.major} > 11} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} > 14 || !($universal_possible && [variant_isset universal])} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            default_variants +lto
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} > 13} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            default_variants-append +optimizations
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant dtrace description {enable DTrace support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-dtrace
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.url       ${homepage}downloads/source/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#livecheck.regex     Python (${branch}\[.0-9\]+) -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex     Python (${branch}\[.0-9abrc\]+) -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Can be removed after 2024-10-03
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/Portfile b/lang/python312/Portfile
</span>similarity index 94%
copy from lang/python312-devel/Portfile
copy to lang/python312/Portfile
<span style='display:block; white-space:pre;color:#808080;'>index 85706dff9c5..60a57792692 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python312-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python312/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,10 +3,10 @@
</span> PortSystem 1.0
 PortGroup select 1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-name                python312-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                python312
</span> 
 # Remember to keep py312-tkinter and py312-gdbm's versions sync'd with this
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             3.12.0rc3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             3.12.0
</span> 
 set branch          [join [lrange [split ${version} .] 0 1] .]
 categories          lang
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -18,14 +18,13 @@ long_description    Python is an interpreted, interactive, object-oriented \
</span>                     programming language.
 
 homepage            https://www.python.org/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#master_sites        ${homepage}ftp/python/${version}/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites        ${homepage}ftp/python/3.12.0/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        ${homepage}ftp/python/${version}/
</span> 
 distname            Python-${version}
 use_xz              yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           md5 cead7d4428e88e8de9219731c21edb74 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160 6f2d65a4398557b3532b3294cd38097c62f309b6 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256 96397e891e98802b1d399dee3ceaeb9bcf0aa2566c8a7b1cce4d0196c277506a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           md5 f6f4616584b23254d165f4db90c247d6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160 4133d0750115a0d99d6ebbfcf9f7e26822ed6221 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256 795c34f44df45a0e9b9710c8c71c15c671871524cd412ca14def212e8ccb155d
</span> 
 patchfiles          patch-Lib-cgi.py.diff \
                     patch-configure.diff \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -250,5 +249,4 @@ variant dtrace description {enable DTrace support} {
</span> 
 livecheck.type      regex
 livecheck.url       ${homepage}downloads/source/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#livecheck.regex     Python (${branch}\[.0-9\]+) -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex     Python (${branch}\[.0-9abrc\]+) -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex     Python (${branch}\[.0-9\]+) -
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/configure-disable-libb2.patch b/lang/python312/files/configure-disable-libb2.patch
</span>similarity index 100%
rename from lang/python312-devel/files/configure-disable-libb2.patch
rename to lang/python312/files/configure-disable-libb2.patch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/configure-disable-libuuid.patch b/lang/python312/files/configure-disable-libuuid.patch
</span>similarity index 100%
rename from lang/python312-devel/files/configure-disable-libuuid.patch
rename to lang/python312/files/configure-disable-libuuid.patch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/configure-disable-tkinter.patch b/lang/python312/files/configure-disable-tkinter.patch
</span>similarity index 100%
rename from lang/python312-devel/files/configure-disable-tkinter.patch
rename to lang/python312/files/configure-disable-tkinter.patch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/libedit-types.patch b/lang/python312/files/libedit-types.patch
</span>similarity index 100%
rename from lang/python312-devel/files/libedit-types.patch
rename to lang/python312/files/libedit-types.patch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/patch-Lib-cgi.py.diff b/lang/python312/files/patch-Lib-cgi.py.diff
</span>similarity index 100%
rename from lang/python312-devel/files/patch-Lib-cgi.py.diff
rename to lang/python312/files/patch-Lib-cgi.py.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/patch-Lib-ctypes-macholib-dyld.py.diff b/lang/python312/files/patch-Lib-ctypes-macholib-dyld.py.diff
</span>similarity index 100%
rename from lang/python312-devel/files/patch-Lib-ctypes-macholib-dyld.py.diff
rename to lang/python312/files/patch-Lib-ctypes-macholib-dyld.py.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/patch-configure.diff b/lang/python312/files/patch-configure.diff
</span>similarity index 100%
rename from lang/python312-devel/files/patch-configure.diff
rename to lang/python312/files/patch-configure.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/patch-no-copyfile-on-Tiger.diff b/lang/python312/files/patch-no-copyfile-on-Tiger.diff
</span>similarity index 100%
rename from lang/python312-devel/files/patch-no-copyfile-on-Tiger.diff
rename to lang/python312/files/patch-no-copyfile-on-Tiger.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/patch-threadid-older-systems.diff b/lang/python312/files/patch-threadid-older-systems.diff
</span>similarity index 100%
rename from lang/python312-devel/files/patch-threadid-older-systems.diff
rename to lang/python312/files/patch-threadid-older-systems.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/pyconfig.ed b/lang/python312/files/pyconfig.ed
</span>similarity index 100%
rename from lang/python312-devel/files/pyconfig.ed
rename to lang/python312/files/pyconfig.ed
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/pyconfig.h-universal.ed b/lang/python312/files/pyconfig.h-universal.ed
</span>similarity index 100%
rename from lang/python312-devel/files/pyconfig.h-universal.ed
rename to lang/python312/files/pyconfig.h-universal.ed
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/python-python312 b/lang/python312/files/python-python312
</span>similarity index 100%
rename from lang/python312-devel/files/python-python312
rename to lang/python312/files/python-python312
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/python3-python312 b/lang/python312/files/python3-python312
</span>similarity index 100%
rename from lang/python312-devel/files/python3-python312
rename to lang/python312/files/python3-python312
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python312-devel/files/sysconfig.py.patch b/lang/python312/files/sysconfig.py.patch
</span>similarity index 100%
rename from lang/python312-devel/files/sysconfig.py.patch
rename to lang/python312/files/sysconfig.py.patch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-build/Portfile b/python/py-build/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4d80de41439..6c5f179c706 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-build/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-build/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,7 +12,7 @@ license             MIT
</span> supported_archs     noarch
 platforms           {darwin any}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     36 37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     36 37 38 39 310 311 312
</span> 
 maintainers         {danchr @danchr} openmaintainer
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-flit_core/Portfile b/python/py-flit_core/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index fc424533153..83ffb4fa9de 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-flit_core/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-flit_core/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,7 +21,7 @@ checksums           md5 3bc52f1952b9a78361114147da63c35b \
</span>                     sha256 72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba \
                     size 41917
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     36 37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     36 37 38 39 310 311 312
</span> 
 python.pep517       yes
 python.pep517_backend   other
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-gdbm/Portfile b/python/py-gdbm/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 6894dffb9b8..484aa08f0f6 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-gdbm/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-gdbm/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14,7 +14,7 @@ long_description  {*}${description}
</span> 
 homepage               https://docs.python.org/2/library/gdbm.html
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions 26 27 32 33 34 35 36 37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 26 27 32 33 34 35 36 37 38 39 310 311 312
</span> 
 subport py26-gdbm {
     maintainers     {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -142,6 +142,16 @@ subport py311-gdbm {
</span>                     sha256 0fab78fa7f133f4f38210c6260d90d7c0d5c7198446419ce057ec7ac2e6f5f38
     livecheck.regex {Python (3\.11\.[0-9]+)}
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport py312-gdbm {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    maintainers     {jmr @jmroot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version         3.12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    homepage        https://docs.python.org/release/${version}/library/dbm.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums       md5 f6f4616584b23254d165f4db90c247d6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160 4133d0750115a0d99d6ebbfcf9f7e26822ed6221 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256 795c34f44df45a0e9b9710c8c71c15c671871524cd412ca14def212e8ccb155d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.regex {Python (3\.11\.[0-9]+)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 
 distname               Python-${version}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-installer/Portfile b/python/py-installer/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 0a75c32144e..d1d0e4791a8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-installer/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-installer/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,7 +23,7 @@ checksums           md5 d961d1105c9270049528b1167ed021bc \
</span>                     rmd160 ce7feaab4cab0fe465e6a5fe142bc32dcdd1e938 \
                     sha256 a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     37 38 39 310 311 312
</span> 
 if {$subport ne $name} {
     python.pep517   yes
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-packaging/Portfile b/python/py-packaging/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3e8fab9cb7d..ce167145809 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-packaging/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-packaging/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,7 +28,7 @@ checksums           md5 d54eeff8c7ca86980528f4132f258d54 \
</span>                     rmd160 03c80dfdca845d7967148b68429019159360c270 \
                     sha256 048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     27 35 36 37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     27 35 36 37 38 39 310 311 312
</span> 
 if {$subport ne $name} {
     set docfiles [list LICENSE LICENSE.APACHE LICENSE.BSD README.rst]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pyproject_hooks/Portfile b/python/py-pyproject_hooks/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index db2d420cc8c..ad820b3c8c4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-pyproject_hooks/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pyproject_hooks/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,7 +24,7 @@ checksums           md5 69b0b6de189bc04c3f9e304281765741 \
</span>                     rmd160 8b7d5a03fff4a408541ec47641fa1b4d8e67e656 \
                     sha256 f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     37 38 39 310 311 312
</span> python.pep517       yes
 
 if {$subport ne $name} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-setuptools/Portfile b/python/py-setuptools/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e728aae5d67..598991d5d61 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-setuptools/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-setuptools/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,7 +28,7 @@ checksums           md5 d967ca2ba7f46db887daee2d5c9bd6a2 \
</span>                     rmd160 bf736a936c4ae85b9dd546f39fd0c627c8c17675 \
                     sha256 4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     26 27 32 33 34 35 36 37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     26 27 32 33 34 35 36 37 38 39 310 311 312
</span> python.link_binaries no
 
 if {$subport ne $name} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-tkinter/Portfile b/python/py-tkinter/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 0b2572149da..f90d81efaf0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-tkinter/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-tkinter/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15,7 +15,7 @@ long_description \
</span> 
 homepage        https://docs.python.org/library/tkinter.html
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions 26 27 32 33 34 35 36 37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 26 27 32 33 34 35 36 37 38 39 310 311 312
</span> 
 set extract_files [list Modules/_tkinter.c Modules/tkappinit.c]
 set module_name tkinter
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -131,6 +131,15 @@ subport py311-tkinter {
</span>                 rmd160 bddcce2b2f737ba1df6d727eb0311a9a180dd8ce \
                 sha256 0fab78fa7f133f4f38210c6260d90d7c0d5c7198446419ce057ec7ac2e6f5f38
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport py312-tkinter {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    maintainers {jmr @jmroot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version     3.12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision    0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    homepage    https://docs.python.org/release/${version}/library/tkinter.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums   md5 f6f4616584b23254d165f4db90c247d6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                rmd160 4133d0750115a0d99d6ebbfcf9f7e26822ed6221 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                sha256 795c34f44df45a0e9b9710c8c71c15c671871524cd412ca14def212e8ccb155d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 master_sites    https://www.python.org/ftp/python/${version}/
 distname        Python-${version}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -180,6 +189,7 @@ if {${name} ne ${subport}} {
</span>         reinplace "s|__PREFIX__|${prefix}|" ${worksrcpath}/setup.py
         reinplace "s|__TK-VERSION__|8.6|" ${worksrcpath}/setup.py
         if {[file exists ${worksrcpath}/pyproject.toml]} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "s|__PYTHON_INCDIR__|${python.include}|" ${worksrcpath}/setup.py
</span>             reinplace "s|__MODULE_NAME__|${module_name}|" ${worksrcpath}/pyproject.toml
             reinplace "s|__VERSION__|${version}|" ${worksrcpath}/pyproject.toml
         } else {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-tkinter/files/setup-pep517.py b/python/py-tkinter/files/setup-pep517.py
</span><span style='display:block; white-space:pre;color:#808080;'>index 263ec469db1..7c41b3ba0c0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-tkinter/files/setup-pep517.py
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-tkinter/files/setup-pep517.py
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,7 +8,7 @@ setup(
</span>             name="_tkinter",
             sources=["_tkinter.c", "tkappinit.c"],
             define_macros=[("WITH_APPINIT", 1)],
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            include_dirs = ["__PREFIX__/include"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            include_dirs = ["__PYTHON_INCDIR__/internal", "__PREFIX__/include"],
</span>             libraries = ["tcl" + tkversion, "tk" + tkversion],
             library_dirs = ["__PREFIX__/lib"]
         )
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-wheel/Portfile b/python/py-wheel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 7a692ebb5bc..c2b3fc73495 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-wheel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-wheel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -22,7 +22,7 @@ supported_archs     noarch
</span> platforms           {darwin any}
 
 # leave the EOL PY34 subport here as it is an indirect dependency of py34-virtualenv
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     27 34 35 36 37 38 39 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     27 34 35 36 37 38 39 310 311 312
</span> 
 if {${name} ne ${subport}} {
     if {${python.version} == 34} {
</pre><pre style='margin:0'>

</pre>