<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/383d6f4d2ffa60c2ea3256759cc43a226f0bcd1b">https://github.com/macports/macports-ports/commit/383d6f4d2ffa60c2ea3256759cc43a226f0bcd1b</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 383d6f4d2ff python310-devel: new port
</span>383d6f4d2ff is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 383d6f4d2ffa60c2ea3256759cc43a226f0bcd1b
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Oct 21 20:50:18 2020 +1100

<span style='display:block; white-space:pre;color:#404040;'>    python310-devel: new port
</span>---
 lang/python310-devel/Portfile                      | 216 +++++++++++++++++++++
 lang/python310-devel/files/builtin_bswap16.diff    |  51 +++++
 lang/python310-devel/files/patch-Lib-cgi.py.diff   |  18 ++
 .../files/patch-Lib-ctypes-macholib-dyld.py.diff   |  11 ++
 .../files/patch-configure-xcode4bug.diff           |  33 ++++
 lang/python310-devel/files/patch-configure.diff    |  11 ++
 lang/python310-devel/files/patch-libedit.diff      | 176 +++++++++++++++++
 .../files/patch-no-copyfile-on-Tiger.diff          |  78 ++++++++
 lang/python310-devel/files/patch-setup.py.diff     |  40 ++++
 .../files/patch-threadid-older-systems.diff        |  22 +++
 lang/python310-devel/files/pyconfig.ed             |   2 +
 lang/python310-devel/files/pyconfig.h-universal.ed |  71 +++++++
 lang/python310-devel/files/python-python310        |  13 ++
 lang/python310-devel/files/python3-python310       |  10 +
 14 files changed, 752 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/Portfile b/lang/python310-devel/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..883abf2d9e8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,216 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- 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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup select 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                python310-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Remember to keep py310-tkinter and py310-gdbm's versions sync'd with this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             3.10.0a1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set branch          [join [lrange [split ${version} .] 0 1] .]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          lang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             PSF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {jmr @jmroot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         An interpreted, object-oriented programming language
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    Python is an interpreted, interactive, object-oriented \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    programming language.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://www.python.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#master_sites        ${homepage}ftp/python/${version}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        ${homepage}ftp/python/3.10.0/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname            Python-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_xz              yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           md5 dc251f90f89b628c1bad4b50f9253029 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160 5a1e628dc4dc50ac7a6393a9f1669cb7fcf6f453 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256 db739461233fc1c0c15ccf4e35455bedcc7524a086935e11404df9c05352a960
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          patch-setup.py.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-Lib-cgi.py.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-configure.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-Lib-ctypes-macholib-dyld.py.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-libedit.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-configure-xcode4bug.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    builtin_bswap16.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} < 10} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # work around no copyfile and/or pthread_threadid_np on older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append  patch-no-copyfile-on-Tiger.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       patch-threadid-older-systems.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build       port:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib         port:bzip2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:expat \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:gettext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libedit \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libffi \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:ncurses \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:lib/libssl.dylib:openssl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:sqlite3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_run         port:python_select \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:python3_select
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# blacklist llvm-gcc-4.2 compiler known to produce bad code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append *llvm-gcc-4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# ensurepip arg may be removed later, now conflicts with pip and setuptools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# packages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args      --enable-framework=${frameworks_dir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --enable-ipv6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --enable-loadable-sqlite-extensions \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-computed-gotos \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-ensurepip=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-system-expat \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-system-ffi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.ccache    no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@@PREFIX@@|${prefix}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      ${worksrcpath}/Lib/cgi.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      ${worksrcpath}/Lib/ctypes/macholib/dyld.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|/setup.py|/setup.py --no-user-cfg|" ${worksrcpath}/Makefile.pre.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # replace /Applications with ${applications_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@@APPLICATIONS_DIR@@|${applications_dir}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.target        all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.target         test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot.target     frameworkinstall maninstall
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pythonNoDot python[string map {. {}} $branch]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+select.entries      [list python python-$pythonNoDot $pythonNoDot] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    [list python3 python3-$pythonNoDot $pythonNoDot]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set framewpath  ${frameworks_dir}/Python.framework
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set framewdir   ${framewpath}/Versions/${branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set confdir     config-${branch}-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # poll() misbehaves on 10.8 and older
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # See https://trac.macports.org/ticket/18376
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} <= 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.ed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-build {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set buildlibdir [lindex [glob -directory ${worksrcpath}/build lib.*-*-*-${branch}] 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # preserve mtime of sysconfig data file to avoid rebuilding things after changing it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set oldmtime [file mtime ${buildlibdir}/_sysconfigdata__darwin_darwin.py]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Without this, LINKFORSHARED is set to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # (this becomes Python.framework/Versions/3.10/Python) which doesn't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # work for dependents that incorrectly use this variable to find out
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # how to link against python (see ticket #15099); instead we mirror
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # the behavior of `python-config --ldflags` here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system -W ${buildlibdir} "awk -F : \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            \"/'LINKFORSHARED'/ {printf \\\"%s: '-L${framewdir}/lib/python${branch}/${confdir}\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -lpython${branch} -ldl -framework CoreFoundation',\\n\\\", \\\$1; getline; next} {print}\"\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            _sysconfigdata__darwin_darwin.py > _sysconfigdata__darwin_darwin.py.new"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file rename -force ${buildlibdir}/_sysconfigdata__darwin_darwin.py.new \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${buildlibdir}/_sysconfigdata__darwin_darwin.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # remove -arch flags from the config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -E {s|-arch [a-z0-9_]+||g} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${buildlibdir}/_sysconfigdata__darwin_darwin.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # also remove gettext overlinking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|-lintl||" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${buildlibdir}/_sysconfigdata__darwin_darwin.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file mtime ${buildlibdir}/_sysconfigdata__darwin_darwin.py $oldmtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach dir { Headers Resources Python Versions/Current } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file delete ${destroot}${framewpath}/${dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ln -s ${framewdir}/share/man/man1/python${branch}.1 ${destroot}${prefix}/share/man/man1/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ln -s ${framewdir}/lib/pkgconfig/python-${branch}-embed.pc ${destroot}${prefix}/lib/pkgconfig/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Also make the sysconfig changes in the Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace {s|^\(LINKFORSHARED=\).*$|\1 -L$(LIBPL) -lpython$(VERSION)$(ABIFLAGS) $(LIBS) $(SYSLIBS)|} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -E {s|-arch [a-z0-9_]+||g} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|-lintl||" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach unversioned {2to3 idle3 pydoc3 python3 python3-config} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        delete ${destroot}${prefix}/bin/${unversioned}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To make this the default Python or Python 3 (i.e., the version run by\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+the 'python' or 'python3' commands), run one or both of:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    sudo port select --set python $pythonNoDot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    sudo port select --set python3 $pythonNoDot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant universal {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set universal_arch_flags {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set arch_run_32bit {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach arch ${universal_archs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend universal_arch_flags -arch ${arch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${arch} eq "i386" || ${arch} eq "ppc"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend arch_run_32bit -${arch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          "s|UNIVERSAL_ARCH_FLAGS=\".*\"|UNIVERSAL_ARCH_FLAGS=\"${universal_arch_flags}\"|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${arch_run_32bit} ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              "s|ARCH_RUN_32BIT=\".*\"|ARCH_RUN_32BIT=\"arch ${arch_run_32bit}\"|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.sdkroot} ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --enable-universalsdk=${configure.sdkroot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --enable-universalsdk=/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.h-universal.ed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach unversioned {python3-32} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            delete ${destroot}${prefix}/bin/${unversioned}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant optimizations description {Compile with LTO and PGO. Build time greatly increased} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --enable-optimizations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.url       ${homepage}downloads/source/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#livecheck.regex     Python (${branch}\[.0-9\]+) -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex     Python (${branch}\[.0-9abrc\]+) -
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/builtin_bswap16.diff b/lang/python310-devel/files/builtin_bswap16.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f839bed9a52
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/builtin_bswap16.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,51 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/python/cpython/pull/21943
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Include/internal/pycore_bitutils.h.orig        2020-09-17 07:23:13.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Include/internal/pycore_bitutils.h     2020-09-21 00:26:56.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,11 +15,14 @@ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  error "this header requires Py_BUILD_CORE define"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if ((defined(__GNUC__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8))) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     || (defined(__clang__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         && (__clang_major__ >= 4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             || (__clang_major__ == 3 && __clang_minor__ >= 2))))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// Don't break compilers that don't know about __has_builtin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __has_builtin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define __has_builtin(x) 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// No check for clang here, __has_builtin is used instead
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__GNUC__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /* __builtin_bswap16() is available since GCC 4.8 and clang 3.2,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       __builtin_bswap32() is available since GCC 4.3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       __builtin_bswap64() is available since GCC 4.3. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,7 +37,7 @@ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static inline uint16_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _Py_bswap16(uint16_t word)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef _PY_HAVE_BUILTIN_BSWAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(_PY_HAVE_BUILTIN_BSWAP) || __has_builtin(__builtin_bswap16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return __builtin_bswap16(word);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Py_BUILD_ASSERT(sizeof(word) == sizeof(unsigned short));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,7 +52,7 @@ _Py_bswap16(uint16_t word)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static inline uint32_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _Py_bswap32(uint32_t word)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef _PY_HAVE_BUILTIN_BSWAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(_PY_HAVE_BUILTIN_BSWAP) || __has_builtin(__builtin_bswap32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return __builtin_bswap32(word);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Py_BUILD_ASSERT(sizeof(word) == sizeof(unsigned long));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,7 +69,7 @@ _Py_bswap32(uint32_t word)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static inline uint64_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _Py_bswap64(uint64_t word)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef _PY_HAVE_BUILTIN_BSWAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(_PY_HAVE_BUILTIN_BSWAP) || __has_builtin(__builtin_bswap64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return __builtin_bswap64(word);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return _byteswap_uint64(word);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/patch-Lib-cgi.py.diff b/lang/python310-devel/files/patch-Lib-cgi.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..014c21f2d31
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/patch-Lib-cgi.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Lib/cgi.py.orig        2006-08-10 19:41:07.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Lib/cgi.py     2007-08-21 15:36:54.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,13 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#! /usr/local/bin/python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#! @@PREFIX@@/bin/python3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# NOTE: the above "/usr/local/bin/python" is NOT a mistake.  It is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# intentionally NOT "/usr/bin/env python".  On many systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# (e.g. Solaris), /usr/local/bin is not in $PATH as passed to CGI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# scripts, and /usr/local/bin is the default directory where Python is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# installed, so /usr/bin/env would be unable to find python.  Granted,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# binary installations by Linux vendors often install Python in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# /usr/bin.  So let those vendors patch cgi.py to match their choice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# of installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# NOTE: /usr/local/bin/python patched for MacPorts installation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """Support module for CGI (Common Gateway Interface) scripts.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/patch-Lib-ctypes-macholib-dyld.py.diff b/lang/python310-devel/files/patch-Lib-ctypes-macholib-dyld.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4c6d118d687
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/patch-Lib-ctypes-macholib-dyld.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Lib/ctypes/macholib/dyld.py.orig       2019-10-15 00:34:47.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Lib/ctypes/macholib/dyld.py    2019-11-08 19:28:42.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,7 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFAULT_LIBRARY_FALLBACK = [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     os.path.expanduser("~/lib"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "/usr/local/lib",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "@@PREFIX@@/lib",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "/lib",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "/usr/lib",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ]
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/patch-configure-xcode4bug.diff b/lang/python310-devel/files/patch-configure-xcode4bug.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..5d43c56cad2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/patch-configure-xcode4bug.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://trac.macports.org/ticket/49272
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://bugs.python.org/issue24844
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Compiling python fails in Xcode 4 (clang < 3.3) where existence of 'atomic'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+is detected by configure, but it is not fully functional.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.orig 2019-11-08 19:37:57.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure      2019-11-08 19:52:06.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16802,6 +16802,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     volatile int val = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int main() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       __atomic_load_n(&val, __ATOMIC_SEQ_CST);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* https://bugs.python.org/issue24844 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      #define VERSION_CHECK(cc_major, cc_minor, req_major, req_minor) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ((cc_major) > (req_major) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          (cc_major) == (req_major) && (cc_minor) >= (req_minor))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      #if defined(__clang__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          #if defined(__apple_build_version__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              // either one test or the other should work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              // #if __apple_build_version__ < 5000000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              #if !VERSION_CHECK(__clang_major__, __clang_minor__, 5, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  #error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          // not sure if this is 3.3 or 3.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          #elif !VERSION_CHECK(__clang_major__, __clang_minor__, 3, 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              #error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/patch-configure.diff b/lang/python310-devel/files/patch-configure.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..87dd75a5e76
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.orig 2019-10-15 00:34:47.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure      2019-11-08 14:00:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3192,6 +3192,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          FRAMEWORKINSTALLAPPSPREFIX="@@APPLICATIONS_DIR@@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           # Add files for Mac specific code to the list of output
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/patch-libedit.diff b/lang/python310-devel/files/patch-libedit.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..01d07ed52ca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/patch-libedit.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,176 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.orig 2019-11-08 14:00:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure      2019-11-08 19:37:57.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15283,9 +15283,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo_n "checking how to link readline libs... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for py_libtermcap in "" tinfo ncursesw ncurses curses termcap; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test -z "$py_libtermcap"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    READLINE_LIBS="-lreadline"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    READLINE_LIBS="-ledit"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    READLINE_LIBS="-lreadline -l$py_libtermcap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    READLINE_LIBS="-ledit -l$py_libtermcap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   LIBS="$READLINE_LIBS $LIBS_no_readline"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15331,7 +15331,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # check for readline 2.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <readline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <editline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ac_fn_c_try_cpp "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   have_readline=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15344,7 +15344,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <readline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <editline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15357,7 +15357,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <readline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <editline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15371,13 +15371,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # check for readline 4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -lreadline" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-$as_echo_n "checking for rl_pre_input_hook in -lreadline... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -ledit" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for rl_pre_input_hook in -ledit... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ${ac_cv_lib_readline_rl_pre_input_hook+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LIBS="-lreadline $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-ledit $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15415,13 +15415,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # also in 4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -lreadline" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-$as_echo_n "checking for rl_completion_display_matches_hook in -lreadline... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -ledit" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for rl_completion_display_matches_hook in -ledit... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ${ac_cv_lib_readline_rl_completion_display_matches_hook+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LIBS="-lreadline $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-ledit $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15459,13 +15459,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # also in 4.0, but not in editline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -lreadline" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-$as_echo_n "checking for rl_resize_terminal in -lreadline... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -ledit" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for rl_resize_terminal in -ledit... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ${ac_cv_lib_readline_rl_resize_terminal+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LIBS="-lreadline $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-ledit $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15503,13 +15503,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # check for readline 4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-$as_echo_n "checking for rl_completion_matches in -lreadline... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -ledit" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for rl_completion_matches in -ledit... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ${ac_cv_lib_readline_rl_completion_matches+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LIBS="-lreadline $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-ledit $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15549,7 +15549,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # also in readline 4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <readline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <editline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ac_fn_c_try_cpp "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   have_readline=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15562,7 +15562,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <readline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <editline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15575,13 +15575,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -lreadline" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-$as_echo_n "checking for append_history in -lreadline... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -ledit" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for append_history in -ledit... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ${ac_cv_lib_readline_append_history+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LIBS="-lreadline $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-ledit $READLINE_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.py.orig  2019-11-08 19:39:18.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.py       2019-11-08 19:41:43.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -874,7 +874,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def detect_readline_curses(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # readline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        do_readline = self.compiler.find_library_file(self.lib_dirs, 'readline')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        do_readline = self.compiler.find_library_file(self.lib_dirs, 'edit')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         readline_termcap_library = ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         curses_library = ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Cannot use os.popen here in py3k.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -944,7 +944,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 readline_extra_link_args = ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            readline_libs = ['readline']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            readline_libs = ['edit']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if readline_termcap_library:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 pass # Issue 7384: Already linked against curses or tinfo.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             elif curses_library:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Modules/readline.c.orig        2019-10-15 00:34:47.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Modules/readline.c     2019-11-08 19:47:42.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,8 +28,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* GNU readline definitions */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HAVE_CONFIG_H /* Else readline/chardefs.h includes strings.h */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <readline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <readline/history.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <editline/readline.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef HAVE_RL_COMPLETION_MATCHES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define completion_matches(x, y) \
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/patch-no-copyfile-on-Tiger.diff b/lang/python310-devel/files/patch-no-copyfile-on-Tiger.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..cbbfae0c16e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/patch-no-copyfile-on-Tiger.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,78 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+posix.copyfile does not exist on Tiger. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Python 3.8's posix._fcopyfile implementation unconditionally uses <copyfile.h>, 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+which only exists on Leopard ane newer. This patch removes posix._fcopyfile 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+on Tiger - this is okay because the rest of the stdlib uses posix._fcopyfile 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+only conditionally after checking that the function exists 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(non-Apple systems don't have posix._fcopyfile either).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+thanks to @dgelessus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/macports/macports-ports/pull/5987
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git Lib/test/test_shutil.py Lib/test/test_shutil.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e56b337..fdc53e3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Lib/test/test_shutil.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Lib/test/test_shutil.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2451,7 +2451,7 @@ class TestZeroCopySendfile(_ZeroCopyFileTest, unittest.TestCase):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             shutil._USE_CP_SENDFILE = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@unittest.skipIf(not MACOS, 'macOS only')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@unittest.skipIf(not MACOS or not hasattr(posix, "_fcopyfile"), 'macOS with posix._fcopyfile only')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class TestZeroCopyMACOS(_ZeroCopyFileTest, unittest.TestCase):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PATCHPOINT = "posix._fcopyfile"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git Modules/clinic/posixmodule.c.h Modules/clinic/posixmodule.c.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 41baa45..3965876 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Modules/clinic/posixmodule.c.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Modules/clinic/posixmodule.c.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5505,7 +5505,7 @@ exit:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* defined(HAVE_SENDFILE) && !defined(__APPLE__) && !(defined(__FreeBSD__) || defined(__DragonFly__)) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PyDoc_STRVAR(os__fcopyfile__doc__,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "_fcopyfile($module, in_fd, out_fd, flags, /)\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git Modules/posixmodule.c Modules/posixmodule.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 01e8bcb..ff7fb30 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Modules/posixmodule.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Modules/posixmodule.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,6 +8,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test macro, e.g. '_MSC_VER'. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     * Step 1 of support for weak-linking a number of symbols existing on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     * OSX 10.4 and later, see the comment in the #ifdef __APPLE__ block
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -109,7 +110,7 @@ corresponding Unix manual entries for more information on calls.");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <sys/sendfile.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <copyfile.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9484,7 +9485,7 @@ done:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* HAVE_SENDFILE */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*[clinic input]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os._fcopyfile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14671,7 +14672,7 @@ all_ins(PyObject *m)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (PyModule_AddIntConstant(m, "_COPYFILE_DATA", COPYFILE_DATA)) return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/patch-setup.py.diff b/lang/python310-devel/files/patch-setup.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..766de26aac4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/patch-setup.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.py.orig  2019-10-15 00:34:47.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.py       2019-11-08 13:48:58.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,7 +24,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TEST_EXTENSIONS = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This global variable is used to hold the list of modules to be disabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-DISABLED_MODULE_LIST = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DISABLED_MODULE_LIST = ['_tkinter', '_gdbm']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def get_platform():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -648,9 +648,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Ensure that /usr/local is always used, but the local build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # directories (i.e. '.' and 'Include') must be first.  See issue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # 10520.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if not CROSS_COMPILING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # only change this for cross builds for 3.3, issues on Mageia
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if CROSS_COMPILING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             self.add_cross_compiling_paths()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1851,8 +1848,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Rather than complicate the code below, detecting and building
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # AquaTk is a separate method. Only one Tkinter will be built on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Darwin - either AquaTk, if it is found, or X11 based Tk.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (MACOS and self.detect_tkinter_darwin()):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        self.announce("INFO: Not using Tcl/Tk", 2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Assume we haven't found any of the libraries or include files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # The versions with dots are used on Unix, and the versions without
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2045,7 +2042,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # OS X 10.5 comes with libffi.dylib; the include files are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # in /usr/include/ffi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            ffi_inc_dirs.append('/usr/include/ffi')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if not ffi_inc or ffi_inc[0] == '':
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/patch-threadid-older-systems.diff b/lang/python310-devel/files/patch-threadid-older-systems.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f68c2db51f6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/patch-threadid-older-systems.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git Python/thread_pthread.h Python/thread_pthread.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e6910b3..ff9bb1f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Python/thread_pthread.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Python/thread_pthread.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -331,7 +331,17 @@ PyThread_get_thread_native_id(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PyThread_init_thread();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     uint64_t native_id;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    native_id = pthread_mach_thread_np(pthread_self());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif MAC_OS_X_VERSION_MIN_REQUIRED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (&pthread_threadid_np != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        (void) pthread_threadid_np(NULL, &native_id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        native_id = pthread_mach_thread_np(pthread_self());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (void) pthread_threadid_np(NULL, &native_id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__linux__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pid_t native_id;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     native_id = syscall(SYS_gettid);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/pyconfig.ed b/lang/python310-devel/files/pyconfig.ed
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..671d0d56037
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/pyconfig.ed
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,2 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+g,.*\(HAVE_POLL[_A-Z]*\).*,s,,/* #undef \1 */,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+w
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/pyconfig.h-universal.ed b/lang/python310-devel/files/pyconfig.h-universal.ed
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e1c28309f2c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/pyconfig.h-universal.ed
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,71 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/DOUBLE_IS_BIG_ENDIAN_IEEE754/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __BIG_ENDIAN__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/DOUBLE_IS_LITTLE_ENDIAN_IEEE754/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __LITTLE_ENDIAN__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* #undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/HAVE_LARGEFILE_SUPPORT/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* #undef HAVE_LARGEFILE_SUPPORT */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define HAVE_LARGEFILE_SUPPORT 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/SIZEOF_LONG/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_LONG 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_LONG 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/SIZEOF_PTHREAD_T/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_PTHREAD_T 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_PTHREAD_T 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/SIZEOF_SIZE_T/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_SIZE_T 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_SIZE_T 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/SIZEOF_TIME_T/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_TIME_T 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_TIME_T 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/SIZEOF_UINTPTR_T/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_UINTPTR_T 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_UINTPTR_T 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/SIZEOF_VOID_P/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_VOID_P 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF_VOID_P 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/SIZEOF__BOOL/c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined(__LP64__) || !defined(__POWERPC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF__BOOL 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define SIZEOF__BOOL 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+w
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/python-python310 b/lang/python310-devel/files/python-python310
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..27bf416ad8a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/python-python310
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/python3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/python3.10-config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/idle3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/pydoc3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/2to3-3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+share/man/man1/python3.10.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${frameworks_dir}/Python.framework/Versions/3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${frameworks_dir}/Python.framework/Versions/3.10/Headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${frameworks_dir}/Python.framework/Versions/3.10/Resources
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${frameworks_dir}/Python.framework/Versions/3.10/Python
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python310-devel/files/python3-python310 b/lang/python310-devel/files/python3-python310
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4f5e8cfeffa
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python310-devel/files/python3-python310
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/python3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/python3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/python3.10-config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/python3.10-config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/idle3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/pydoc3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/2to3-3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+share/man/man1/python3.10.1
</span></pre><pre style='margin:0'>

</pre>