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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/cc9d6aaecedf726b724becac4b1cd8a390e54b64">https://github.com/macports/macports-ports/commit/cc9d6aaecedf726b724becac4b1cd8a390e54b64</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit cc9d6aaecedf726b724becac4b1cd8a390e54b64
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Sat Dec 3 23:04:22 2022 +0100

<span style='display:block; white-space:pre;color:#404040;'>    usd: default +python311
</span>---
 graphics/usd/Portfile                              | 19 ++++++--
 .../usd/files/patch-python3.11-compatibility.diff  | 50 ++++++++++++++++++++++
 2 files changed, 65 insertions(+), 4 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/usd/Portfile b/graphics/usd/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 95c6f619d95..16768164390 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/usd/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/usd/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,7 +34,7 @@ checksums           rmd160  8ec6dda307f9804ce4b3a562c3df2dbd14a64390 \
</span>                     sha256  ad167b438401848fdd4133f4470a6288ccf37949b4ccc9abf52b50438380ec59 \
                     size    24800580
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set py_ver          3.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver          3.11
</span> set py_ver_nodot    [string map {. {}} ${py_ver}]
 set py_ver_major    [lindex [split $py_ver .] 0]
 set py_ver_minor    [lindex [split $py_ver .] 1]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,9 +50,17 @@ conflicts           spidermonkey
</span> depends_lib-append  port:tbb
 
 compiler.cxx_standard 2014
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# USD fails to compile for Clang older than 8.1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# (Note: Clang 8.1.0 == clang-802 in Xcode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist-append {clang < 802}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# enforce to using the same compiler that is used for MaterialX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm_version    14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# pin the used version for LLVM before 10.13 to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# which is forced by used version of osl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} < 18} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set llvm_version    11
</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;'>+compiler.blacklist-append clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.fallback macports-clang-${llvm_version}
</span> 
 # This patch adds modifications that allow Blender to use USD. The patch
 # file 'patch-add-blender-mods.diff' was extracted from the file in
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,6 +77,9 @@ patchfiles-append   patch-add-blender-mods.diff
</span> # conforms with MacPorts' mtree layout: ${prefix}/share/usd/plugins
 patchfiles-append   patch-plugins-output-paths.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# A trivial patch to fix support Python 3.11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-python3.11-compatibility.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-patch {
     # USD puts its CMake package config files in the wrong place
     reinplace {s|cmake/||} ${worksrcpath}/pxr/pxrConfig.cmake.in
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/usd/files/patch-python3.11-compatibility.diff b/graphics/usd/files/patch-python3.11-compatibility.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..973504d1896
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/usd/files/patch-python3.11-compatibility.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/PixarAnimationStudios/USD/pull/1928
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pxr/base/tf/pyTracing.cpp pxr/base/tf/pyTracing.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 62262d7d75..4b201744fa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pxr/base/tf/pyTracing.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pxr/base/tf/pyTracing.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,8 +35,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <tbb/spin_mutex.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// This is from python, needed for PyFrameObject.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// These are from python, needed for PyFrameObject.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <frameobject.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <patchlevel.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <list>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mutex>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -105,16 +106,29 @@ static void _SetTraceFnEnabled(bool enable) {
</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;'>++#if PY_VERSION_HEX < 0x030900B1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// Define PyFrame_GetCode() on Python 3.8 and older:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// https://docs.python.org/3.11/whatsnew/3.11.html#id6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static inline PyCodeObject* PyFrame_GetCode(PyFrameObject *frame)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Py_INCREF(frame->f_code);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return frame->f_code;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int _TracePythonFn(PyObject *, PyFrameObject *frame,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           int what, PyObject *arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Build up a trace info struct.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TfPyTraceInfo info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    PyCodeObject * code = PyFrame_GetCode(frame);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     info.arg = arg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    info.funcName = TfPyString_AsString(frame->f_code->co_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    info.fileName = TfPyString_AsString(frame->f_code->co_filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    info.funcLine = frame->f_code->co_firstlineno;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    info.funcName = TfPyString_AsString(code->co_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    info.fileName = TfPyString_AsString(code->co_filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    info.funcLine = code->co_firstlineno;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     info.what = what;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Py_DECREF(code);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _InvokeTraceFns(info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>