<pre style='margin:0'>
Mark Moll (mamoll) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/0eb49d903862e8faf21900985290f9c7e93b1263">https://github.com/macports/macports-ports/commit/0eb49d903862e8faf21900985290f9c7e93b1263</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 0eb49d9  python38: add missing patches, fix linking flags (#5968)
</span>0eb49d9 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 0eb49d903862e8faf21900985290f9c7e93b1263
</span>Author: Renee Otten <reneeotten@macports.org>
AuthorDate: Tue Dec 10 19:21:54 2019 -0500

<span style='display:block; white-space:pre;color:#404040;'>    python38: add missing patches, fix linking flags (#5968)
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * python38: add note to keep py38-gdbm and py38-tkinter versions in sync
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * python38: update patch-setup.py.diff
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * python38: refresh patches to apply cleanly
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    - patch-Lib-cgi.py.diff
</span><span style='display:block; white-space:pre;color:#404040;'>    - patch-configure.diff
</span><span style='display:block; white-space:pre;color:#404040;'>    - patch-Lib-ctypes-macholib-dyld.py.diff
</span><span style='display:block; white-space:pre;color:#404040;'>    - patch-libedit.diff
</span><span style='display:block; white-space:pre;color:#404040;'>    - patch-configure-xcode4bug.diff
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * python38: update python3-python38 select file
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * python38: add patch-_osx_support.py.diff
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    - handle -isysroot without a space
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * python38: use compiler.blacklist-append
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * python38: fix linking flags, rev bump to rebuild
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/59518
</span>---
 lang/python38/Portfile                             | 13 +--
 lang/python38/files/patch-Lib-cgi.py.diff          |  4 +-
 .../files/patch-Lib-ctypes-macholib-dyld.py.diff   |  6 +-
 lang/python38/files/patch-_osx_support.py.diff     | 94 ++++++++++++++++++++++
 lang/python38/files/patch-configure-xcode4bug.diff |  6 +-
 lang/python38/files/patch-configure.diff           | 16 ++--
 lang/python38/files/patch-libedit.diff             | 84 +++++++++----------
 lang/python38/files/patch-setup.py.diff            | 47 ++++++++---
 lang/python38/files/python3-python38               |  4 +-
 9 files changed, 199 insertions(+), 75 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python38/Portfile b/lang/python38/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 41f2087..0d6c46b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python38/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,9 +5,11 @@ PortGroup           select 1.0
</span> 
 name                python38
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Remember to keep py38-tkinter and py38-gdbm's versions sync'd with this
</span> version             3.8.0
 epoch               1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> set major           [lindex [split $version .] 0]
 set branch          [join [lrange [split ${version} .] 0 1] .]
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,7 +36,8 @@ patchfiles          patch-setup.py.diff \
</span>                     patch-configure.diff \
                     patch-Lib-ctypes-macholib-dyld.py.diff \
                     patch-libedit.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-configure-xcode4bug.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;'>+                    patch-_osx_support.py.diff
</span> 
 depends_build       port:pkgconfig
 depends_lib         port:bzip2 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,7 +54,7 @@ depends_run         port:python_select \
</span>                     port:python3_select
 
 # blacklist llvm-gcc-4.2 compiler known to produce bad code
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist  *llvm-gcc-4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append  *llvm-gcc-4.2
</span> 
 # ensurepip arg may be removed later, now conflicts with pip and setuptools
 # packages
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -108,7 +111,7 @@ platform darwin {
</span>         # the behavior of `python-config --ldflags` here.
         system -W ${buildlibdir} "awk -F : \
             \"/'LINKFORSHARED'/ {printf \\\"%s: '-L${framewdir}/lib/python${branch}/${confdir}\
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            -lpython${branch}m -ldl -framework CoreFoundation',\\n\\\", \\\$1; getline; next} {print}\"\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -lpython${branch} -ldl -framework CoreFoundation',\\n\\\", \\\$1; getline; next} {print}\"\
</span>             _sysconfigdata__darwin_darwin.py > _sysconfigdata__darwin_darwin.py.new"
         file rename -force ${buildlibdir}/_sysconfigdata__darwin_darwin.py.new \
             ${buildlibdir}/_sysconfigdata__darwin_darwin.py
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -129,7 +132,7 @@ platform darwin {
</span> 
         ln -s ${framewdir}/share/man/man1/python${branch}.1 ${destroot}${prefix}/share/man/man1/
         ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/python-${branch}m.pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ln -s ${framewdir}/lib/pkgconfig/python-${branch}-embed.pc ${destroot}${prefix}/lib/pkgconfig/
</span> 
         # Also make the sysconfig changes in the Makefile
         reinplace {s|^\(LINKFORSHARED=\).*$|\1 -L$(LIBPL) -lpython$(VERSION)$(ABIFLAGS) $(LIBS) $(SYSLIBS)|} \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python38/files/patch-Lib-cgi.py.diff b/lang/python38/files/patch-Lib-cgi.py.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index bbe276d..45bf409 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python38/files/patch-Lib-cgi.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/files/patch-Lib-cgi.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Lib/cgi.py.orig        2006-08-10 19:41:07.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Lib/cgi.py     2007-08-21 15:36:54.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Lib/cgi.py.orig        2019-12-10 08:28:12.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Lib/cgi.py     2019-12-10 08:29:06.000000000 -0500
</span> @@ -1,13 +1,6 @@
 -#! /usr/local/bin/python
 +#! @@PREFIX@@/bin/python3.8
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python38/files/patch-Lib-ctypes-macholib-dyld.py.diff b/lang/python38/files/patch-Lib-ctypes-macholib-dyld.py.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 31216d5..f663edb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python38/files/patch-Lib-ctypes-macholib-dyld.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/files/patch-Lib-ctypes-macholib-dyld.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Lib/ctypes/macholib/dyld.py.orig       2008-02-21 11:52:20.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Lib/ctypes/macholib/dyld.py    2009-10-11 02:42:21.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -26,7 +26,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Lib/ctypes/macholib/dyld.py.orig       2019-12-10 08:37:42.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Lib/ctypes/macholib/dyld.py    2019-12-10 08:38:10.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,7 +23,7 @@
</span>  
  DEFAULT_LIBRARY_FALLBACK = [
      os.path.expanduser("~/lib"),
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python38/files/patch-_osx_support.py.diff b/lang/python38/files/patch-_osx_support.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6c305d4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/files/patch-_osx_support.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,94 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Lib/_osx_support.py.orig       2019-12-10 09:52:01.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Lib/_osx_support.py    2019-12-10 09:52:18.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -211,7 +211,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if cv in _config_vars and cv not in os.environ:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             flags = _config_vars[cv]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             flags = re.sub(r'-arch\s+\w+\s', ' ', flags, flags=re.ASCII)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            flags = re.sub('-isysroot [^ \t]*', ' ', flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            flags = re.sub(r'-isysroot\s*\S+', ' ', flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             _save_modified_value(_config_vars, cv, flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return _config_vars
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -287,7 +287,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # to /usr and /System/Library by either a standalone CLT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # package or the CLT component within Xcode.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     cflags = _config_vars.get('CFLAGS', '')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    m = re.search(r'-isysroot\s+(\S+)', cflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    m = re.search(r'-isysroot\s*(\S+)', cflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if m is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         sdk = m.group(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if not os.path.exists(sdk):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -295,7 +295,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 # Do not alter a config var explicitly overridden by env var
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if cv in _config_vars and cv not in os.environ:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     flags = _config_vars[cv]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    flags = re.sub(r'-isysroot\s+\S+(?:\s|$)', ' ', flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    flags = re.sub(r'-isysroot\s*\S+(?:\s|$)', ' ', flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     _save_modified_value(_config_vars, cv, flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return _config_vars
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -320,7 +320,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         stripArch = stripSysroot = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         stripArch = '-arch' in cc_args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        stripSysroot = '-isysroot' in cc_args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        stripSysroot = any(arg for arg in cc_args if arg.find('-isysroot') == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if stripArch or 'ARCHFLAGS' in os.environ:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         while True:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -338,23 +338,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if stripSysroot:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         while True:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                index = compiler_so.index('-isysroot')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            indices = [i for i,x in enumerate(compiler_so) if x.find('-isysroot') == 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if not indices:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            index = indices[0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if compiler_so[index] == '-isysroot':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 # Strip this argument and the next one:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 del compiler_so[index:index+2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            except ValueError:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                # It's '-isysroot/some/path' in one arg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                del compiler_so[index:index+1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Check if the SDK that is used during compilation actually exists,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # the universal build requires the usage of a universal SDK and not all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # users have that installed by default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sysroot = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if '-isysroot' in cc_args:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        idx = cc_args.index('-isysroot')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        sysroot = cc_args[idx+1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    elif '-isysroot' in compiler_so:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        idx = compiler_so.index('-isysroot')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        sysroot = compiler_so[idx+1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    argvar = cc_args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    indices = [i for i,x in enumerate(cc_args) if x.find('-isysroot') == 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if not indices:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        argvar = compiler_so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        indices = [i for i,x in enumerate(compiler_so) if x.find('-isysroot') == 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for idx in indices:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if argvar[idx] == '-isysroot':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            sysroot = argvar[idx+1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            sysroot = argvar[idx][len('-isysroot'):]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sysroot and not os.path.isdir(sysroot):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         from distutils import log
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Lib/distutils/unixccompiler.py.orig    2019-12-10 09:52:16.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Lib/distutils/unixccompiler.py 2019-12-10 09:52:18.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -288,7 +288,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # vs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             #   /usr/lib/libedit.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             cflags = sysconfig.get_config_var('CFLAGS')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            m = re.search(r'-isysroot\s+(\S+)', cflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            m = re.search(r'-isysroot\s*(\S+)', cflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if m is None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 sysroot = '/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else:
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python38/files/patch-configure-xcode4bug.diff b/lang/python38/files/patch-configure-xcode4bug.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index b4a45d7..d3a763b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python38/files/patch-configure-xcode4bug.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/files/patch-configure-xcode4bug.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,9 +4,9 @@ https://bugs.python.org/issue24844
</span> Compiling python fails in Xcode 4 (clang < 3.3) where existence of 'atomic'
 is detected by configure, but it is not fully functional.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16361,6 +16363,24 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.orig 2019-10-14 09:34:47.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure      2019-12-10 09:38:56.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16800,6 +16800,24 @@
</span>      volatile int val = 1;
      int main() {
        __atomic_load_n(&val, __ATOMIC_SEQ_CST);
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python38/files/patch-configure.diff b/lang/python38/files/patch-configure.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index b6f8bb8..5a8d538 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python38/files/patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/files/patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +1,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure.orig 2012-08-13 17:08:58.000000000 +0300
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ configure      2012-08-13 17:11:07.000000000 +0300
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3145,6 +3145,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.orig 2019-12-10 08:33:01.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure      2019-12-10 08:33:20.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3188,7 +3188,7 @@
</span>                   ;;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                esac
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+               FRAMEWORKINSTALLAPPSPREFIX="@@APPLICATIONS_DIR@@"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  FRAMEWORKINSTALLAPPSPREFIX="/Applications"
</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;'>+           esac
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                # 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/python38/files/patch-libedit.diff b/lang/python38/files/patch-libedit.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 01fc48a..ba7cbab 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python38/files/patch-libedit.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/files/patch-libedit.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure.orig 2018-03-29 22:57:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ configure      2018-04-27 06:16:26.000000000 +1000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14944,9 +14944,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.orig 2019-12-10 09:25:20.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure      2019-12-10 09:30:07.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15281,9 +15281,9 @@
</span>  $as_echo_n "checking how to link readline libs... " >&6; }
  for py_libtermcap in "" tinfo ncursesw ncurses curses termcap; do
    if test -z "$py_libtermcap"; then
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,7 +12,7 @@
</span>    fi
    LIBS="$READLINE_LIBS $LIBS_no_readline"
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14992,7 +14992,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15329,7 +15329,7 @@
</span>  # check for readline 2.2
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,27 +21,27 @@
</span>  _ACEOF
  if ac_fn_c_try_cpp "$LINENO"; then :
    have_readline=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15005,7 +15005,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15342,7 +15342,7 @@
</span>  then
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <readline/readline.h>
 +#include <editline/readline.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  _ACEOF
  if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15018,7 +15018,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15355,7 +15355,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <readline/readline.h>
 +#include <editline/readline.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  _ACEOF
  if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15032,13 +15032,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15369,13 +15369,13 @@
</span>  fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  # check for readline 4.0
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -lreadline" >&5
 -$as_echo_n "checking for rl_pre_input_hook in -lreadline... " >&6; }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,10 +55,10 @@
</span> +LIBS="-ledit $READLINE_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15076,13 +15076,13 @@
</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:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15413,13 +15413,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  # also in 4.0
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -lreadline" >&5
 -$as_echo_n "checking for rl_completion_display_matches_hook in -lreadline... " >&6; }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -72,10 +72,10 @@
</span> +LIBS="-ledit $READLINE_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15120,13 +15120,13 @@
</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:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15457,13 +15457,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  # also in 4.0, but not in editline
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -lreadline" >&5
 -$as_echo_n "checking for rl_resize_terminal in -lreadline... " >&6; }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -89,10 +89,10 @@
</span> +LIBS="-ledit $READLINE_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15164,13 +15164,13 @@
</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:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15501,13 +15501,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  # check for readline 4.2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5
 -$as_echo_n "checking for rl_completion_matches in -lreadline... " >&6; }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -106,8 +106,8 @@
</span> +LIBS="-ledit $READLINE_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15210,7 +15210,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15547,7 +15547,7 @@
</span>  # also in readline 4.2
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -116,19 +116,19 @@
</span>  _ACEOF
  if ac_fn_c_try_cpp "$LINENO"; then :
    have_readline=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15223,7 +15223,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15560,7 +15560,7 @@
</span>  then
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <readline/readline.h>
 +#include <editline/readline.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  _ACEOF
  if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15236,13 +15236,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15573,13 +15573,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -lreadline" >&5
 -$as_echo_n "checking for append_history in -lreadline... " >&6; }
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -ledit" >&5
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -141,11 +141,11 @@
</span> +LIBS="-ledit $READLINE_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- setup.py.orig  2018-03-29 22:57:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ setup.py       2018-04-27 06:10:46.000000000 +1000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -872,7 +872,7 @@ class PyBuildExt(build_ext):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.py.orig  2019-10-14 09:34:47.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.py       2019-12-10 09:30:07.000000000 -0500
</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>      def detect_readline_curses(self):
          # readline
 -        do_readline = self.compiler.find_library_file(self.lib_dirs, 'readline')
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -153,24 +153,24 @@
</span>          readline_termcap_library = ""
          curses_library = ""
          # Cannot use os.popen here in py3k.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -938,7 +938,7 @@ class PyBuildExt(build_ext):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -944,7 +944,7 @@
</span>              else:
                  readline_extra_link_args = ()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> -            readline_libs = ['readline']
 +            readline_libs = ['edit']
              if readline_termcap_library:
                  pass # Issue 7384: Already linked against curses or tinfo.
              elif curses_library:
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- Modules/readline.c.orig     2013-10-23 21:51:09.000000000 +0300
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Modules/readline.c     2013-10-23 22:10:09.000000000 +0300
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -29,8 +29,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Modules/readline.c.orig        2019-12-10 09:32:40.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Modules/readline.c     2019-12-10 09:32:10.000000000 -0500
</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>  /* GNU readline definitions */
  #undef HAVE_CONFIG_H /* Else readline/chardefs.h includes strings.h */
 -#include <readline/readline.h>
 -#include <readline/history.h>
 +#include <editline/readline.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  #ifdef HAVE_RL_COMPLETION_MATCHES
  #define completion_matches(x, y) \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python38/files/patch-setup.py.diff b/lang/python38/files/patch-setup.py.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index ca4e45c..54e24f2 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python38/files/patch-setup.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/files/patch-setup.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,22 +1,49 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- setup.py.orig  2018-03-29 22:57:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ setup.py       2018-04-27 05:55:22.000000000 +1000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@@ -24,7 +24,7 @@ from distutils.spawn import find_executable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.py.orig  2019-12-10 08:22:20.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.py       2019-12-10 08:24:52.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,7 +24,7 @@
</span>  TEST_EXTENSIONS = True
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  # This global variable is used to hold the list of modules to be disabled.
 -DISABLED_MODULE_LIST = []
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+DISABLED_MODULE_LIST = ["_tkinter", "_gdbm"]
</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:#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>  def get_platform():
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1840,8 +1840,8 @@ class PyBuildExt(build_ext):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -146,7 +146,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return MACOS_SDK_ROOT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     cflags = sysconfig.get_config_var('CFLAGS')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    m = re.search(r'-isysroot\s+(\S+)', cflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    m = re.search(r'-isysroot\s*(\S+)', cflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if m is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         MACOS_SDK_ROOT = m.group(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</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>          # Rather than complicate the code below, detecting and building
          # AquaTk is a separate method. Only one Tkinter will be built on
          # Darwin - either AquaTk, if it is found, or X11 based Tk.
 -        if (MACOS and self.detect_tkinter_darwin()):
 -            return True
 +        self.announce("INFO: Not using Tcl/Tk", 2)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>          # Assume we haven't found any of the libraries or include files
          # The versions with dots are used on Unix, and the versions without
<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/python38/files/python3-python38 b/lang/python38/files/python3-python38
</span><span style='display:block; white-space:pre;color:#808080;'>index 902a5af..ad25a58 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/python38/files/python3-python38
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/python38/files/python3-python38
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,8 +1,8 @@
</span> bin/python3.8
<span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/python3.8
</span> -
 bin/python3.8-config
<span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/python3.8-config
</span> bin/idle3.8
 bin/pydoc3.8
 bin/2to3-3.8
</pre><pre style='margin:0'>

</pre>