<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/80005357d19b47d05d6857f3d6f289b9060d7a28">https://github.com/macports/macports-ports/commit/80005357d19b47d05d6857f3d6f289b9060d7a28</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 80005357d19b47d05d6857f3d6f289b9060d7a28
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Oct 26 03:09:24 2022 +1100

<span style='display:block; white-space:pre;color:#404040;'>    python311: stable release replacing python311-devel
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Defaulting python.pep517 to yes for py311 module ports, to prepare for
</span><span style='display:block; white-space:pre;color:#404040;'>    the future removal of distutils from the stdlib and 'setup.py install'
</span><span style='display:block; white-space:pre;color:#404040;'>    support from setuptools. Added py311 subports for py-build,
</span><span style='display:block; white-space:pre;color:#404040;'>    py-installer, and dependencies.
</span>---
 _resources/port1.0/group/python-1.0.tcl            |   3 +-
 lang/python311-devel/Portfile                      | 252 +--------------------
 lang/{python311-devel => python311}/Portfile       |  19 +-
 .../files/patch-Lib-cgi.py.diff                    |   0
 .../files/patch-Lib-ctypes-macholib-dyld.py.diff   |   0
 .../files/patch-configure-xcode4bug.diff           |   0
 .../files/patch-configure.diff                     |   0
 .../files/patch-no-copyfile-on-Tiger.diff          |   0
 .../files/patch-setup.py.diff                      |   0
 .../files/patch-threadid-older-systems.diff        |   0
 .../files/pyconfig.ed                              |   0
 .../files/pyconfig.h-universal.ed                  |   0
 .../files/python-python311                         |   0
 .../files/python3-python311                        |   0
 .../files/static_assert.patch                      |   0
 .../files/sysconfig.py.patch                       |   0
 python/py-build/Portfile                           |   2 +-
 python/py-gdbm/Portfile                            |  12 +-
 python/py-installer/Portfile                       |   2 +-
 python/py-packaging/Portfile                       |   2 +-
 python/py-parsing/Portfile                         |   2 +-
 python/py-pep517/Portfile                          |   2 +-
 python/py-setuptools/Portfile                      |   2 +-
 python/py-tkinter/Portfile                         |  11 +-
 python/py-tomli/Portfile                           |   2 +-
 python/py-wheel/Portfile                           |   3 +-
 26 files changed, 44 insertions(+), 270 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 9f3f2c26692..71d4a30eb86 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;'>@@ -121,6 +121,7 @@ proc python_set_versions {option action args} {
</span> 
             # set up py-foo as a stub port
             supported_archs noarch
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            platforms       any
</span>             global python.version
             unset python.version
             patch {}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -303,7 +304,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   no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default python.pep517   {[expr {[info exists python.version] && ${python.version} >= 311}]}
</span> default python.pep517_backend   setuptools
 
 default python.test_framework   pytest
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/Portfile b/lang/python311-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 82d3c3c6d81..99ab714a43b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python311-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python311-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,259 +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                python311-devel
<span style='display:block; white-space:pre;background:#e0ffe0;'>+replaced_by         python311
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Remember to keep py311-tkinter and py311-gdbm's versions sync'd with this
</span> version             3.11.0rc2
<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.11.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 27ccc3ff3fdcf7f1ab178066e41e9dd5 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160 192737536b967ed0f51699e8045519856a328e91 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256 25b35cc7d82c5ad34d867b179a1c1695d129be5ed14a21e46b6b7f2350a8b490
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          patch-setup.py.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    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;'>-                    patch-configure-xcode4bug.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sysconfig.py.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    static_assert.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;'>-# llvm-gcc-4.2 is known to produce bad code compiling python
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist-append *llvm-gcc-4.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# ensurepip arg may be removed later, now conflicts with pip and setuptools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# packages
</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-system-ffi
</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;'>-                    SETUPTOOLS_USE_DISTUTILS=stdlib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.env           SETUPTOOLS_USE_DISTUTILS=stdlib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot.env        SETUPTOOLS_USE_DISTUTILS=stdlib
</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;'>-    reinplace "s|/setup.py|/setup.py --no-user-cfg|" ${worksrcpath}/Makefile.pre.in
</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.11/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;'>-        default_variants +lto
</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 2023-10-26
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/Portfile b/lang/python311/Portfile
</span>similarity index 93%
copy from lang/python311-devel/Portfile
copy to lang/python311/Portfile
<span style='display:block; white-space:pre;color:#808080;'>index 82d3c3c6d81..4e75b7c302b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python311-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python311/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                python311-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                python311
</span> 
 # Remember to keep py311-tkinter and py311-gdbm's versions sync'd with this
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             3.11.0rc2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             3.11.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.11.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 27ccc3ff3fdcf7f1ab178066e41e9dd5 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160 192737536b967ed0f51699e8045519856a328e91 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256 25b35cc7d82c5ad34d867b179a1c1695d129be5ed14a21e46b6b7f2350a8b490
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           md5 fe92acfa0db9b9f5044958edb451d463 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160 6426a3139fab28b22aec91ff0d7822dc535fb548 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256 a57dc82d77358617ba65b9841cee1e3b441f386c3789ddc0676eca077f2951c3
</span> 
 patchfiles          patch-setup.py.diff \
                     patch-Lib-cgi.py.diff \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,8 +54,7 @@ depends_lib         port:bzip2 \
</span> depends_run         port:python_select \
                     port:python3_select
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# llvm-gcc-4.2 is known to produce bad code compiling python
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist-append *llvm-gcc-4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.c_standard 2011
</span> 
 # ensurepip arg may be removed later, now conflicts with pip and setuptools
 # packages
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -255,5 +253,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/python311-devel/files/patch-Lib-cgi.py.diff b/lang/python311/files/patch-Lib-cgi.py.diff
</span>similarity index 100%
rename from lang/python311-devel/files/patch-Lib-cgi.py.diff
rename to lang/python311/files/patch-Lib-cgi.py.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/patch-Lib-ctypes-macholib-dyld.py.diff b/lang/python311/files/patch-Lib-ctypes-macholib-dyld.py.diff
</span>similarity index 100%
rename from lang/python311-devel/files/patch-Lib-ctypes-macholib-dyld.py.diff
rename to lang/python311/files/patch-Lib-ctypes-macholib-dyld.py.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/patch-configure-xcode4bug.diff b/lang/python311/files/patch-configure-xcode4bug.diff
</span>similarity index 100%
rename from lang/python311-devel/files/patch-configure-xcode4bug.diff
rename to lang/python311/files/patch-configure-xcode4bug.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/patch-configure.diff b/lang/python311/files/patch-configure.diff
</span>similarity index 100%
rename from lang/python311-devel/files/patch-configure.diff
rename to lang/python311/files/patch-configure.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/patch-no-copyfile-on-Tiger.diff b/lang/python311/files/patch-no-copyfile-on-Tiger.diff
</span>similarity index 100%
rename from lang/python311-devel/files/patch-no-copyfile-on-Tiger.diff
rename to lang/python311/files/patch-no-copyfile-on-Tiger.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/patch-setup.py.diff b/lang/python311/files/patch-setup.py.diff
</span>similarity index 100%
rename from lang/python311-devel/files/patch-setup.py.diff
rename to lang/python311/files/patch-setup.py.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/patch-threadid-older-systems.diff b/lang/python311/files/patch-threadid-older-systems.diff
</span>similarity index 100%
rename from lang/python311-devel/files/patch-threadid-older-systems.diff
rename to lang/python311/files/patch-threadid-older-systems.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/pyconfig.ed b/lang/python311/files/pyconfig.ed
</span>similarity index 100%
rename from lang/python311-devel/files/pyconfig.ed
rename to lang/python311/files/pyconfig.ed
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/pyconfig.h-universal.ed b/lang/python311/files/pyconfig.h-universal.ed
</span>similarity index 100%
rename from lang/python311-devel/files/pyconfig.h-universal.ed
rename to lang/python311/files/pyconfig.h-universal.ed
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/python-python311 b/lang/python311/files/python-python311
</span>similarity index 100%
rename from lang/python311-devel/files/python-python311
rename to lang/python311/files/python-python311
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/python3-python311 b/lang/python311/files/python3-python311
</span>similarity index 100%
rename from lang/python311-devel/files/python3-python311
rename to lang/python311/files/python3-python311
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/static_assert.patch b/lang/python311/files/static_assert.patch
</span>similarity index 100%
rename from lang/python311-devel/files/static_assert.patch
rename to lang/python311/files/static_assert.patch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python311-devel/files/sysconfig.py.patch b/lang/python311/files/sysconfig.py.patch
</span>similarity index 100%
rename from lang/python311-devel/files/sysconfig.py.patch
rename to lang/python311/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 9629abebf6a..effc0b2e180 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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     36 37 38 39 310 311
</span> 
 maintainers         {danchr @danchr} openmaintainer
 
<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 95e870602be..d08d968fd9a 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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 26 27 32 33 34 35 36 37 38 39 310 311
</span> 
 subport py26-gdbm {
     maintainers     {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -132,6 +132,16 @@ subport py310-gdbm {
</span>                     sha256 6a30ecde59c47048013eb5a658c9b5dec277203d2793667f578df7671f7f03f3
     livecheck.regex {Python (3\.10\.[0-9]+)}
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport py311-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.11.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 fe92acfa0db9b9f5044958edb451d463 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160 6426a3139fab28b22aec91ff0d7822dc535fb548 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256 a57dc82d77358617ba65b9841cee1e3b441f386c3789ddc0676eca077f2951c3
</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 2d4a39800ad..c6906aa9915 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 bf17db5e6b58c4cfa33642f5348d3814 \
</span>                     rmd160 db75459d63bc5f60b97029867b8d410911cd25d0 \
                     sha256 f970995ec2bb815e2fdaf7977b26b2091e1e386f0f42eafd5ac811953dc5d445
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     37 38 39 310
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     37 38 39 310 311
</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 6ab6ca84f8b..880becab110 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;'>@@ -23,7 +23,7 @@ checksums           md5 e713c1939f294fd729af4a7be40dd141 \
</span>                     sha256 dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
                     size   84848
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     27 35 36 37 38 39 310
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     27 35 36 37 38 39 310 311
</span> 
 if {$subport ne $name} {
     depends_build-append    port:py${python.version}-setuptools
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-parsing/Portfile b/python/py-parsing/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 875c0d543df..5251fcbe642 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-parsing/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-parsing/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,7 +29,7 @@ checksums           rmd160  c450c72db367849469516a28bcbf208cdb2e3d27 \
</span>                     sha256  2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \
                     size    1999906
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     27 35 36 37 38 39 310
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     27 35 36 37 38 39 310 311
</span> 
 if {${name} ne ${subport}} {
     if {${python.version} <= 35} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pep517/Portfile b/python/py-pep517/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 59fe345030e..343c8418a77 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-pep517/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pep517/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,7 +20,7 @@ checksums           md5 7fd08b11215256601a8a4940c1ba3d34 \
</span>                     rmd160 b52f92cb3a3d6d8ae6892f8df4c144eb2c698e49 \
                     sha256 ae69927c5c172be1add9203726d4b84cf3ebad1edcd5f71fcdc746e66e829f59
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     36 37 38 39 310
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     36 37 38 39 310 311
</span> 
 if {$subport ne $name} {
     python.pep517   yes
<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 d6530971a9d..8d3f8bc35d0 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 df168c0f1c5d5b47a5b62daa693fa4ab \
</span>                     rmd160 eb024965500a4fba32481a039b79d0f565f60f17 \
                     sha256 3050e338e5871e70c72983072fe34f6032ae1cdeeeb67338199c2f74e083a80e
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     26 27 33 34 35 36 37 38 39 310
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     26 27 33 34 35 36 37 38 39 310 311
</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 f1e7c7a2f0a..0217e11b523 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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 26 27 32 33 34 35 36 37 38 39 310 311
</span> 
 set extract_files [list Modules/_tkinter.c Modules/tkappinit.c]
 set module_name tkinter
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -122,6 +122,15 @@ subport py310-tkinter {
</span>                 rmd160 e798facc3419b78c1eb980a2e63a9ec5e9cc586b \
                 sha256 6a30ecde59c47048013eb5a658c9b5dec277203d2793667f578df7671f7f03f3
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport py311-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.11.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 fe92acfa0db9b9f5044958edb451d463 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                rmd160 6426a3139fab28b22aec91ff0d7822dc535fb548 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                sha256 a57dc82d77358617ba65b9841cee1e3b441f386c3789ddc0676eca077f2951c3
</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;color:#808080;'>diff --git a/python/py-tomli/Portfile b/python/py-tomli/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 0b10d812099..69a21029f64 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-tomli/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-tomli/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,7 +19,7 @@ checksums           rmd160 08391b8bdece5ba4b13e0e67e0bb3f0a3de9cc55 \
</span>                     sha256 de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f \
                     size 15164
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     36 37 38 39 310
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     36 37 38 39 310 311
</span> 
 if {${name} ne ${subport}} {
     if {${python.version} == 36} {
<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 c278f143f9b..8c42e71c224 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;'>@@ -19,9 +19,10 @@ checksums           rmd160  2ed79468f3a3bf572d588bf58a1b2b95ee728ce5 \
</span>                     size    65700
 
 supported_archs     noarch
<span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           {darwin any}
</span> 
 # 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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     27 34 35 36 37 38 39 310 311
</span> 
 if {${name} ne ${subport}} {
     depends_build-append \
</pre><pre style='margin:0'>

</pre>