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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/7da358db764df2913c58385f3857e248191cc460">https://github.com/macports/macports-ports/commit/7da358db764df2913c58385f3857e248191cc460</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 7da358d  python38: fix build on < 10.6
</span>7da358d is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 7da358db764df2913c58385f3857e248191cc460
</span>Author: kencu <ken.cunningham.webuse@gmail.com>
AuthorDate: Wed Apr 15 07:01:11 2020 -0700

<span style='display:block; white-space:pre;color:#404040;'>    python38: fix build on < 10.6
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    work around no copyfile on < 10.5
</span><span style='display:block; white-space:pre;color:#404040;'>    work around no pthread_threadid_np on < 10.6
</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/60342
</span><span style='display:block; white-space:pre;color:#404040;'>    closes: https://trac.macports.org/ticket/59772
</span><span style='display:block; white-space:pre;color:#404040;'>    closes: https://trac.macports.org/ticket/59827
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Thanks to @dgelessus as well for valuable input
</span><span style='display:block; white-space:pre;color:#404040;'>    There is a comprehensive patch upstream being considered
</span><span style='display:block; white-space:pre;color:#404040;'>    for a future python release.
</span>---
 lang/python38/Portfile                             |  6 ++
 .../python38/files/patch-no-copyfile-on-Tiger.diff | 72 ++++++++++++++++++++++
 .../files/patch-threadid-older-systems.diff        | 23 +++++++
 3 files changed, 101 insertions(+)

<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 f5559a8..282a879 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;'>@@ -39,6 +39,12 @@ patchfiles          patch-setup.py.diff \
</span>                     patch-configure-xcode4bug.diff \
                     patch-_osx_support.py.diff
 
<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> depends_build       port:pkgconfig
 depends_lib         port:bzip2 \
                     port:expat \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/python38/files/patch-no-copyfile-on-Tiger.diff b/lang/python38/files/patch-no-copyfile-on-Tiger.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..5f313db
</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-no-copyfile-on-Tiger.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,72 @@
</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;'>+--- Lib/test/test_shutil.py.orig
</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;'>+@@ -2393,7 +2393,7 @@
</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;'>+--- Modules/clinic/posixmodule.c.h.orig
</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;'>+@@ -4975,7 +4975,7 @@ exit:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return return_value;
</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;'>+ 
</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, infd, outfd, flags, /)\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./Modules/posixmodule.c.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./Modules/posixmodule.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,6 +11,7 @@
</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;'>+ #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 @@
</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;'>+@@ -9266,7 +9267,7 @@
</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;'>+@@ -14368,7 +14369,7 @@
</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/python38/files/patch-threadid-older-systems.diff b/lang/python38/files/patch-threadid-older-systems.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..5475f01
</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-threadid-older-systems.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Python/thread_pthread.h.orig   2020-03-07 12:42:06.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Python/thread_pthread.h        2020-03-07 12:48:22.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -325,9 +325,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!initialized)
</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;'>+-    (void) pthread_threadid_np(NULL, &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) {
</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></pre><pre style='margin:0'>

</pre>