<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/f7e2c9f5b472d4d849cb25dcbf0945e88f172909">https://github.com/macports/macports-ports/commit/f7e2c9f5b472d4d849cb25dcbf0945e88f172909</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit f7e2c9f5b472d4d849cb25dcbf0945e88f172909
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Tue Apr 25 19:09:45 2023 +0200

<span style='display:block; white-space:pre;color:#404040;'>    blender: update to 2.93.17; fix build with python3.11
</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/65060
</span>---
 graphics/blender/Portfile                          |  56 +++++--
 .../blender/files/patch-before-macOS10.12.diff     |  33 +++++
 graphics/blender/files/patch-before-macOS11.diff   |  42 ++++++
 graphics/blender/files/patch-boost17.diff          |  26 ++++
 .../blender/files/patch-macports-libs-creator.diff |  14 +-
 .../files/patch-macports-libs-platform_apple.diff  |  77 +++++-----
 .../blender/files/patch-manpage-for-apple.diff     |   4 +-
 graphics/blender/files/patch-openimageio24.diff    |  55 +++++++
 graphics/blender/files/patch-openvdb10.diff        | 114 ++++++++++++++
 graphics/blender/files/patch-pythin311.diff        | 165 +++++++++++++++++++++
 graphics/blender/files/patch-unix-or-apple.diff    |  27 ++--
 11 files changed, 544 insertions(+), 69 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/Portfile b/graphics/blender/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3eb664ac44c..15b70474841 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/blender/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,8 +7,8 @@ PortGroup           active_variants 1.1
</span> PortGroup           boost 1.0
 
 name                blender
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             2.91.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             2.93.17
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span> categories          graphics multimedia
 platforms           darwin
 license             GPL-2+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,9 +28,9 @@ long_description    Blender is a ${description}. It contains a set of \
</span> 
 master_sites        https://download.blender.org/source/
 use_xz              yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  f49173e5478d16c8a2b70df5fdb41bd0fed4ef01 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  185cbc4cd7f2f614a7594221d8237170ade7f389d16858cee22ad778c26fcc70 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    42057100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  7c7ddbe88702b3d7836e5a59374f3d7eaeeeec03 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  040e1381c8a37bb22e684b15ba4fecb78817fd13f1e4709d6d8c20800ac7cbfb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    43033860
</span> 
 minimum_xcodeversions-append {15 8.2 16 8.2}
 if {${os.platform} eq "darwin" && ${os.major} < 15} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,6 +48,11 @@ compiler.cxx_standard 2017
</span> # also not included in Xcode.)
 # (Reference: https://stackoverflow.com/questions/32959627/where-is-the-system-llvm-config-on-macos)
 compiler.blacklist-append clang {macports-clang-[5-8].0}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Blacklist macports-clang-16+ to prevent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#  error: no template named 'unary_function' in namespace 'std'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append {macports-clang-1[6-9]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Even though we need to blacklist Xcode Clang/LLVM, we still need to
 # make the rest of Xcode available to the build system. If we don't set
 # use_xcode to yes, then the build will fail, because Blender's CMake
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -56,8 +61,13 @@ compiler.blacklist-append clang {macports-clang-[5-8].0}
</span> use_xcode yes
 cmake.install_prefix ${applications_dir}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set py_ver          3.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# error: TARGET_OS_xxx not defined, evaluates to 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cppflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -Wno-undef-prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver          3.11
</span> set py_ver_nodot    [string map {. {}} ${py_ver}]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+require_active_variants [boost::depends_portname] python${py_ver_nodot}
</span> 
 depends_lib-append  port:python${py_ver_nodot} \
                     port:openal-soft \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -106,7 +116,24 @@ if { ${llvm_version} eq "" } {
</span> 
 patchfiles          patch-macports-libs-creator.diff \
                     patch-macports-libs-platform_apple.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-unix-or-apple.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-unix-or-apple.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-openvdb10.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-openimageio24.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-pythin311.diff
</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;'>+    if {${os.major} < 16} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # NSWindow.allowsAutomaticWindowTabbing is introduced at macOS 10.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-before-macOS10.12.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;'>+    if {${os.major} < 20} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Fix of locations at 11.4 introduced a crash before, revert it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-before-macOS11.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 post-patch {
     set platform_apple.cmake \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -275,9 +302,7 @@ list(APPEND USD_LIBRARIES\\
</span>     ] {
         reinplace $re ${platform_apple.cmake}
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {$py_ver > 3.7} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -E {s/(PYTHON_VERSION.)m/\1/} ${platform_apple.cmake}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     reinplace "s/@@llvm_version@@/$llvm_version/g" \
         ${worksrcpath}/source/creator/CMakeLists.txt
     reinplace -E {s/(llvm-config-)/\1mp-/} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -286,10 +311,12 @@ list(APPEND USD_LIBRARIES\\
</span>         ${worksrcpath}/build_files/cmake/Modules/FindLLVM.cmake
     reinplace -E "/find_program.LLVM_CONFIG llvm-config.$/s|(llvm-config)|\\1 HINTS ${prefix}/libexec/llvm-\${LLVM_VERSION}/bin|" \
         ${worksrcpath}/build_files/cmake/Modules/FindLLVM.cmake
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace -E "s|/opt/local/lib|${prefix}/libexec/llvm-\${LLVM_VERSION}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${worksrcpath}/build_files/cmake/Modules/FindClang.cmake
</span> 
     # Prevent Blender's CMake scripts from attempting to set the
     # MACOSX_DEPLOYMENT_TARGET. MacPorts base already sets this.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace {/if.CMAKE_OSX_DEPLOYMENT_TARGET/,$s/^/#/g} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace {/set.CMAKE_OSX_DEPLOYMENT_TARGET/,$s/^/#/g} \
</span>         ${platform_apple_xcode.cmake}
 
     if {${os.major} >= 18} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -331,6 +358,10 @@ if {${os.major} < 16} {
</span>     configure.objcxxflags-prepend   -isystem ${filespath}/old_appkit_compat
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# modern compiler and legacy CoreAudio.framework leads to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# error: non-defining declaration of enumeration with a fixed underlying type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cxxflags-append           -Wno-elaborated-enum-base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Use of the name LIBDIR in the Blender source is not a very good one,
 # since it doesn't actually point to the lib directory.
 #                         vvvvvv
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -372,6 +403,9 @@ configure.args-append   -DWITH_SYSTEM_GLEW=ON \
</span> # that dynamic builds are also possible
 configure.args-append   -DLLVM_STATIC=OFF
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# MacPorts hasn't got NanoVDB from Nvidia, disable it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   -DWITH_NANOVDB=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-destroot {
     # Make sure that an addons_contrib folder makes it into the final
     # distribution, even if it is empty.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-before-macOS10.12.diff b/graphics/blender/files/patch-before-macOS10.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..70399a13f69
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-before-macOS10.12.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;'>+Based on:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - https://github.com/blender/blender/commit/d09b874244c8ef7385aff136acdaae6aae67ea7e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - https://github.com/blender/blender/commit/cf9ea111bf48b500db59f800c49f88544873c4f7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intern/ghost/intern/GHOST_SystemCocoa.mm intern/ghost/intern/GHOST_SystemCocoa.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 31ce5649fdf..52c53b179e1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intern/ghost/intern/GHOST_SystemCocoa.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intern/ghost/intern/GHOST_SystemCocoa.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -641,11 +641,6 @@ GHOST_TSuccess GHOST_SystemCocoa::init()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         [NSApp setDelegate:appDelegate];
</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;'>+-      // AppKit provides automatic window tabbing. Blender is a single-tabbed application
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      // without a macOS tab bar, and should explicitly opt-out of this. This is also
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      // controlled by the macOS user default #NSWindowTabbingEnabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      NSWindow.allowsAutomaticWindowTabbing = NO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       [NSApp finishLaunching];
</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 intern/ghost/intern/GHOST_WindowCocoa.mm intern/ghost/intern/GHOST_WindowCocoa.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1776b0d5ce0..81e984e39d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intern/ghost/intern/GHOST_WindowCocoa.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intern/ghost/intern/GHOST_WindowCocoa.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -395,7 +395,7 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(GHOST_SystemCocoa *systemCocoa,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [m_window setAcceptsMouseMovedEvents:YES];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NSView *contentview = [m_window contentView];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  [contentview setAllowedTouchTypes:(NSTouchTypeMaskDirect | NSTouchTypeMaskIndirect)];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  [contentview setAcceptsTouchEvents:YES];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [m_window registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                               NSStringPboardType,
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-before-macOS11.diff b/graphics/blender/files/patch-before-macOS11.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..221b070aa27
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-before-macOS11.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,42 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on https://github.com/blender/blender/commit/8e237d83f2138fb94933f971a070a0552f1f506a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intern/locale/boost_locale_wrapper.cpp intern/locale/boost_locale_wrapper.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ede9377b38f..73433fe7c5e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intern/locale/boost_locale_wrapper.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intern/locale/boost_locale_wrapper.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -117,13 +117,6 @@ void bl_locale_set(const char *locale)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef LOCALE_INFO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Extra catch on `std::runtime_error` is needed for macOS/Clang as it seems that exceptions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // like `boost::locale::conv::conversion_error` (which inherit from `std::runtime_error`) are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // not caught by their ancestor `std::exception`. See
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // https://developer.blender.org/T88877#1177108 .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  catch (std::runtime_error const &e) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    std::cout << "bl_locale_set(" << locale << "): " << e.what() << " \n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   catch (std::exception const &e) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::cout << "bl_locale_set(" << locale << "): " << e.what() << " \n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intern/locale/osx_user_locale.mm intern/locale/osx_user_locale.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ce694b5fc1e..e2f65d39df9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intern/locale/osx_user_locale.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intern/locale/osx_user_locale.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14,17 +14,7 @@ const char *osx_user_locale()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   CFLocaleRef myCFLocale = CFLocaleCopyCurrent();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NSLocale *myNSLocale = (NSLocale *)myCFLocale;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [myNSLocale autorelease];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // This produces gettext-invalid locale in recent macOS versions (11.4),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // like `ko-Kore_KR` instead of `ko_KR`. See T88877.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // NSString *nsIdentifier = [myNSLocale localeIdentifier];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  const NSString *nsIdentifier = [myNSLocale languageCode];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  const NSString *const nsIdentifier_country = [myNSLocale countryCode];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if ([nsIdentifier length] != 0 && [nsIdentifier_country length] != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    nsIdentifier = [NSString stringWithFormat:@"%@_%@", nsIdentifier, nsIdentifier_country];
</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;'>++  NSString *nsIdentifier = [myNSLocale localeIdentifier];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   user_locale = ::strdup([nsIdentifier UTF8String]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [pool drain];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-boost17.diff b/graphics/blender/files/patch-boost17.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c1616edbe5a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-boost17.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git build_files/cmake/platform/platform_apple.cmake build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fe9dd6a58de..b9be828ab2a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -265,6 +265,11 @@ if(WITH_BOOST)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   find_package(Boost COMPONENTS ${_boost_FIND_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  foreach(COMPONENT ${_boost_FIND_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    list(APPEND Boost_LIBRARIES "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endforeach()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set(BOOST_LIBRARIES ${Boost_LIBRARIES})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set(BOOST_DEFINITIONS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -287,7 +292,8 @@ if(WITH_PUGIXML)
</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(WITH_OPENIMAGEIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  find_package(OpenImageIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  find_package(OpenImageIO REQUIRED CONFIG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set(OPENIMAGEIO_LIBRARIES "OpenImageIO::OpenImageIO")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list(APPEND OPENIMAGEIO_LIBRARIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${PNG_LIBRARIES}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${JPEG_LIBRARIES}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-macports-libs-creator.diff b/graphics/blender/files/patch-macports-libs-creator.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 6f8767d78c7..4bf31a0dd3c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/blender/files/patch-macports-libs-creator.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-macports-libs-creator.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- source/creator/CMakeLists.txt.orig     2020-11-25 03:31:32.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ source/creator/CMakeLists.txt  2021-03-16 01:45:49.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -79,6 +79,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/creator/CMakeLists.txt source/creator/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cb5fc538e69..e6241ad6790 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/creator/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/creator/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -79,6 +79,25 @@ if(WITH_TBB)
</span>    endif()
  endif()
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,7 +28,7 @@
</span>  
  if(WITH_PYTHON)
    blender_include_dirs(../blender/python)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -988,15 +1007,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1029,8 +1048,11 @@ elseif(APPLE)
</span>  
    if(WITH_OPENMP AND OPENMP_CUSTOM)
      install(
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -38,7 +40,9 @@
</span> +        ${CMAKE_BINARY_DIR}/bin/Blender.app/Contents/Resources/lib/libomp.dylib \
 +      )"
      )
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(WITH_PYTHON_MODULE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # Move the dylib in a Blender version folder to keep the corresponding OpenMP version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1050,8 +1072,11 @@ elseif(APPLE)
</span>  
    if(WITH_LLVM AND NOT LLVM_STATIC)
      install(
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-macports-libs-platform_apple.diff b/graphics/blender/files/patch-macports-libs-platform_apple.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 5188e0c8eda..4ae18a92070 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/blender/files/patch-macports-libs-platform_apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-macports-libs-platform_apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- build_files/cmake/platform/platform_apple.cmake.orig   2020-11-25 03:31:32.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ build_files/cmake/platform/platform_apple.cmake        2021-03-15 03:01:06.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -47,8 +47,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git build_files/cmake/platform/platform_apple.cmake build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fe9dd6a58de..c56606bca33 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -41,8 +41,12 @@ endfunction()
</span>  # ------------------------------------------------------------------------
  # Find system provided libraries.
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14,8 +16,8 @@
</span>  find_package(ZLIB REQUIRED)
  find_package(BZip2 REQUIRED)
  list(APPEND ZLIB_LIBRARIES ${BZIP2_LIBRARIES})
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -67,7 +71,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if(NOT JACK_FRAMEWORK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -63,7 +67,7 @@ if(WITH_JACK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     message(STATUS "JACK not found, disabling WITH_JACK")
</span>      set(WITH_JACK OFF)
    else()
 -    set(JACK_INCLUDE_DIRS ${JACK_FRAMEWORK}/headers)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,9 +25,9 @@
</span>    endif()
  endif()
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -83,13 +87,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,13 +88,6 @@ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS})
</span>  
 -# -------------------------------------------------------------------------
 -# Find precompiled libraries, and avoid system or user-installed ones.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,7 +39,7 @@
</span>  if(WITH_ALEMBIC)
    find_package(Alembic)
  endif()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -107,10 +104,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -109,10 +106,10 @@ endif()
</span>  
  if(WITH_CODEC_SNDFILE)
    find_package(SndFile)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -52,41 +54,36 @@
</span>    list(APPEND LIBSNDFILE_LIBRARIES
      ${_sndfile_FLAC_LIBRARY}
      ${_sndfile_OGG_LIBRARY}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -127,7 +124,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -129,7 +126,7 @@ endif()
</span>  
  if(WITH_PYTHON)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   # we use precompiled libraries for py 3.7 and up by default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  set(PYTHON_VERSION 3.7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # we use precompiled libraries for py 3.9 and up by default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set(PYTHON_VERSION 3.9)
</span> +  set(PYTHON_VERSION @@py_ver@@)
    if(NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
      # normally cached but not since we include them with blender
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -137,11 +134,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -139,7 +136,7 @@ if(WITH_PYTHON)
</span>      # set(PYTHON_LINKFLAGS "-u _PyMac_Error")  # won't  build with this enabled
    else()
      # module must be compiled against Python framework
 -    set(_py_framework "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}")
 +    set(_py_framework "${FRAMEWORK_SEARCH_PATHS}/Python.framework/Versions/${PYTHON_VERSION}")
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     set(PYTHON_INCLUDE_DIR "${_py_framework}/include/python${PYTHON_VERSION}m")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     set(PYTHON_EXECUTABLE "${_py_framework}/bin/python${PYTHON_VERSION}m")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    set(PYTHON_LIBPATH "${_py_framework}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}m")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set(PYTHON_LIBPATH "${_py_framework}/lib/python${PYTHON_VERSION}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     # set(PYTHON_LIBRARY python${PYTHON_VERSION})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     # set(PYTHON_LINKFLAGS "-u _PyMac_Error -framework Python")  # won't  build with this enabled
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -202,18 +199,18 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- list(APPEND PLATFORM_LINKLIBS c++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(PYTHON_INCLUDE_DIR "${_py_framework}/include/python${PYTHON_VERSION}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(PYTHON_EXECUTABLE "${_py_framework}/bin/python${PYTHON_VERSION}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -211,18 +208,18 @@ if(WITH_OPENIMAGEDENOISE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span>  
  if(WITH_JACK)
<span style='display:block; white-space:pre;background:#ffe0e0;'>--  set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F/Library/Frameworks -weak_framework jackmp")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F${FRAMEWORK_SEARCH_PATHS} -ljack")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  string(APPEND PLATFORM_LINKFLAGS " -F/Library/Frameworks -weak_framework jackmp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  string(APPEND PLATFORM_LINKFLAGS " -F${FRAMEWORK_SEARCH_PATHS} -ljack")
</span>  endif()
  
  if(WITH_PYTHON_MODULE OR WITH_PYTHON_FRAMEWORK)
    # force cmake to link right framework
<span style='display:block; white-space:pre;background:#ffe0e0;'>--  set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${FRAMEWORK_SEARCH_PATHS}/Python.framework/Versions/${PYTHON_VERSION}/Python")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  string(APPEND PLATFORM_LINKFLAGS " /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  string(APPEND PLATFORM_LINKFLAGS " ${FRAMEWORK_SEARCH_PATHS}/Python.framework/Versions/${PYTHON_VERSION}/Python")
</span>  endif()
  
  if(WITH_OPENCOLLADA)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -98,8 +95,8 @@
</span>    print_found_status("PCRE" "${PCRE_LIBRARIES}")
    print_found_status("XML2" "${XML2_LIBRARIES}")
  endif()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -225,14 +222,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework ForceFeedback")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -234,14 +231,14 @@ if(WITH_SDL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   string(APPEND PLATFORM_LINKFLAGS " -framework ForceFeedback")
</span>  endif()
  
 -set(PNG_ROOT ${LIBDIR}/png)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -116,7 +113,7 @@
</span>    find_package(TIFF)
    if(NOT TIFF_FOUND)
      message(WARNING "TIFF not found, disabling WITH_IMAGE_TIFF")
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -242,12 +239,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -251,12 +248,15 @@ endif()
</span>  
  if(WITH_BOOST)
    set(Boost_NO_BOOST_CMAKE ON)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -134,7 +131,7 @@
</span>    if(WITH_CYCLES_NETWORK)
      list(APPEND _boost_FIND_COMPONENTS serialization)
    endif()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -280,7 +280,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -297,7 +297,7 @@ if(WITH_OPENIMAGEIO)
</span>      ${ZLIB_LIBRARIES}
    )
    set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,7 +140,7 @@
</span>  endif()
  
  if(WITH_OPENCOLORIO)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -289,7 +289,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -311,7 +311,7 @@ endif()
</span>  
  if(WITH_OPENVDB)
    find_package(OpenVDB)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -152,7 +149,7 @@
</span>    print_found_status("Blosc" "${BLOSC_LIBRARIES}")
    list(APPEND OPENVDB_LIBRARIES ${BLOSC_LIBRARIES})
    set(OPENVDB_DEFINITIONS)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -308,20 +308,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -340,20 +340,12 @@ if(WITH_LLVM)
</span>  endif()
  
  if(WITH_CYCLES_OSL)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -165,7 +162,7 @@
</span> -  list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
 -  find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
 -  find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
<span style='display:block; white-space:pre;background:#ffe0e0;'>--  find_path(OSL_SHADER_DIR NAMES stdosl.h PATHS ${CYCLES_OSL}/shaders)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  find_path(OSL_SHADER_DIR NAMES stdosl.h PATHS ${CYCLES_OSL}/share/OSL/shaders)
</span> -
 -  if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER AND OSL_SHADER_DIR)
 -    set(OSL_FOUND TRUE)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -176,10 +173,10 @@
</span> +  endif()
 +  find_package(OSL)
 +  if(NOT OSL_FOUND)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     message(STATUS "OSL not found")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     message(WARNING "OSL not found, disabling WITH_CYCLES_OSL")
</span>      set(WITH_CYCLES_OSL OFF)
    endif()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -373,29 +365,29 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -402,29 +394,29 @@ endif()
</span>  if(WITH_OPENMP)
    if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0")
      # Use OpenMP from our precompiled libraries.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -189,13 +186,13 @@
</span>      set(OPENMP_FOUND ON)
 -    set(OpenMP_C_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'")
 -    set(OpenMP_CXX_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'")
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L'${LIBDIR}/openmp/lib' -lomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(OpenMP_LINKER_FLAGS "-L'${LIBDIR}/openmp/lib' -lomp")
</span> +    set(OpenMP_C_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/include/libomp'")
 +    set(OpenMP_CXX_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/include/libomp'")
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L'${LIBDIR}/lib/libomp' -lomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(OpenMP_LINKER_FLAGS "-L'${LIBDIR}/lib/libomp' -lomp")
</span>  
      # Copy libomp.dylib to allow executables like datatoc and tests to work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     # `@executable_path/../Resources/lib/` is a default dylib search path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # `@executable_path/../Resources/lib/` `LC_ID_DYLIB` is added by the deps builder.
</span>      # For single config generator datatoc, tests etc.
      execute_process(
        COMMAND mkdir -p ${CMAKE_BINARY_DIR}/Resources/lib
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -216,7 +213,7 @@
</span>      )
    endif()
  endif()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -416,8 +408,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -453,8 +445,20 @@ if(WITH_HARU)
</span>    endif()
  endif()
  
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-manpage-for-apple.diff b/graphics/blender/files/patch-manpage-for-apple.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index d601bb96249..ea5ecda805e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/blender/files/patch-manpage-for-apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-manpage-for-apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,8 +9,8 @@
</span> +      add_custom_target(
 +        blender_man_page ALL
 +        COMMAND ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1.py
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+                ${EXECUTABLE_OUTPUT_PATH}/Blender.app/Contents/MacOS/Blender
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                ${CMAKE_CURRENT_BINARY_DIR}/blender.1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                --blender ${EXECUTABLE_OUTPUT_PATH}/Blender.app/Contents/MacOS/Blender
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                --output ${CMAKE_CURRENT_BINARY_DIR}/blender.1)
</span> +      add_dependencies(blender_man_page blender)
 +
 +      # manpage only with 'blender' binary
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-openimageio24.diff b/graphics/blender/files/patch-openimageio24.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..64d16962626
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-openimageio24.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,55 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git build_files/cmake/platform/platform_apple.cmake build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fe9dd6a58de..31bc18fa212 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ build_files/cmake/platform/platform_apple.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -287,7 +287,8 @@ if(WITH_PUGIXML)
</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(WITH_OPENIMAGEIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  find_package(OpenImageIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  find_package(OpenImageIO REQUIRED CONFIG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set(OPENIMAGEIO_LIBRARIES "OpenImageIO::OpenImageIO")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list(APPEND OPENIMAGEIO_LIBRARIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${PNG_LIBRARIES}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${JPEG_LIBRARIES}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intern/cycles/cmake/macros.cmake intern/cycles/cmake/macros.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ff62b816e6c..f5101664c50 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intern/cycles/cmake/macros.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intern/cycles/cmake/macros.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -139,6 +139,9 @@ macro(cycles_target_link_libraries target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(WITH_OPENIMAGEDENOISE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     target_link_libraries(${target} ${OPENIMAGEDENOISE_LIBRARIES})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(WITH_OPENIMAGEIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    find_package(OpenImageIO REQUIRED CONFIG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   target_link_libraries(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${target}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${OPENIMAGEIO_LIBRARIES}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intern/cycles/kernel/osl/CMakeLists.txt intern/cycles/kernel/osl/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6cdc7367fbb..ab2adb9f105 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intern/cycles/kernel/osl/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intern/cycles/kernel/osl/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,6 +38,10 @@ set(HEADER_SRC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   osl_shader.h
</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(WITH_OPENIMAGEIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  find_package(OpenImageIO REQUIRED CONFIG)
</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;'>+ set(LIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cycles_render
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/imbuf/intern/oiio/CMakeLists.txt source/blender/imbuf/intern/oiio/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee5848dec36..a399ab380b8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/imbuf/intern/oiio/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/imbuf/intern/oiio/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -43,6 +43,7 @@ set(LIB
</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(WITH_OPENIMAGEIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  find_package(OpenImageIO REQUIRED CONFIG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list(APPEND INC_SYS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${OPENIMAGEIO_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${BOOST_INCLUDE_DIR}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-openvdb10.diff b/graphics/blender/files/patch-openvdb10.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..573f3faa2d2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-openvdb10.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,114 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - https://developer.blender.org/rBbdc537e0a7b4b62af049dd4d508d5b08a4fa8b3b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - https://developer.blender.org/rB05697470ab0dde6646be939ae57a95c9d4099e0b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intern/cycles/render/volume.cpp intern/cycles/render/volume.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 358ef71d501..a0a16d7c52f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intern/cycles/render/volume.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intern/cycles/render/volume.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -271,7 +271,8 @@ void VolumeMeshBuilder::add_grid(openvdb::GridBase::ConstPtr grid,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void VolumeMeshBuilder::add_padding(int pad_size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef WITH_OPENVDB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  openvdb::tools::dilateVoxels(topology_grid->tree(), pad_size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  openvdb::tools::dilateActiveValues(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      topology_grid->tree(), pad_size, openvdb::tools::NN_FACE, openvdb::tools::IGNORE_TILES);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   (void)pad_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/blenkernel/BKE_volume.h source/blender/blenkernel/BKE_volume.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cf755827a6c..5a96b70514e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/blenkernel/BKE_volume.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/blenkernel/BKE_volume.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -103,7 +103,6 @@ typedef enum VolumeGridType {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   VOLUME_GRID_INT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   VOLUME_GRID_INT64,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   VOLUME_GRID_MASK,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  VOLUME_GRID_STRING,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   VOLUME_GRID_VECTOR_FLOAT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   VOLUME_GRID_VECTOR_DOUBLE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   VOLUME_GRID_VECTOR_INT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -203,8 +202,6 @@ auto BKE_volume_grid_type_operation(const VolumeGridType grid_type, OpType &&op)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return op.template operator()<openvdb::Vec3IGrid>();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_VECTOR_DOUBLE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return op.template operator()<openvdb::Vec3dGrid>();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case VOLUME_GRID_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return op.template operator()<openvdb::StringGrid>();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_MASK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return op.template operator()<openvdb::MaskGrid>();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_POINTS:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/blenkernel/intern/volume.cc source/blender/blenkernel/intern/volume.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7b03839f659..6b745d0bb3e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/blenkernel/intern/volume.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/blenkernel/intern/volume.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1300,9 +1300,6 @@ VolumeGridType BKE_volume_grid_type_openvdb(const openvdb::GridBase &grid)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (grid.isType<openvdb::Vec3dGrid>()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return VOLUME_GRID_VECTOR_DOUBLE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (grid.isType<openvdb::StringGrid>()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return VOLUME_GRID_STRING;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (grid.isType<openvdb::MaskGrid>()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return VOLUME_GRID_MASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1338,7 +1335,6 @@ int BKE_volume_grid_channels(const VolumeGrid *grid)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_VECTOR_DOUBLE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_VECTOR_INT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return 3;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case VOLUME_GRID_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_POINTS:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_UNKNOWN:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1570,13 +1566,8 @@ struct CreateGridWithChangedResolutionOp {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   template<typename GridType> typename openvdb::GridBase::Ptr operator()()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if constexpr (std::is_same_v<GridType, openvdb::StringGrid>) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return {};
</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;'>+-      return create_grid_with_changed_resolution(static_cast<const GridType &>(grid),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                                 resolution_factor);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return create_grid_with_changed_resolution(static_cast<const GridType &>(grid),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                               resolution_factor);
</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;'>+diff --git source/blender/blenkernel/intern/volume_render.cc source/blender/blenkernel/intern/volume_render.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6dc497bb616..57c7773d7be 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/blenkernel/intern/volume_render.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/blenkernel/intern/volume_render.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,7 +77,6 @@ static void extract_dense_float_voxels(const VolumeGridType grid_type,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_VECTOR_INT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return extract_dense_voxels<openvdb::Vec3IGrid, openvdb::Vec3f>(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           grid, bbox, reinterpret_cast<openvdb::Vec3f *>(r_voxels));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case VOLUME_GRID_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_POINTS:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case VOLUME_GRID_UNKNOWN:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* Zero channels to copy. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/makesrna/intern/rna_volume.c source/blender/makesrna/intern/rna_volume.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 76db6f3e325..32c59d5f359 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/makesrna/intern/rna_volume.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/makesrna/intern/rna_volume.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -241,7 +241,6 @@ static void rna_def_volume_grid(BlenderRNA *brna)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {VOLUME_GRID_INT, "INT", 0, "Integer", "32-bit integer"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {VOLUME_GRID_INT64, "INT64", 0, "Integer 64-bit", "64-bit integer"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {VOLUME_GRID_MASK, "MASK", 0, "Mask", "No data, boolean mask of active voxels"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      {VOLUME_GRID_STRING, "STRING", 0, "String", "Text string"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {VOLUME_GRID_VECTOR_FLOAT, "VECTOR_FLOAT", 0, "Float Vector", "3D float vector"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {VOLUME_GRID_VECTOR_DOUBLE, "VECTOR_DOUBLE", 0, "Double Vector", "3D double vector"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {VOLUME_GRID_VECTOR_INT, "VECTOR_INT", 0, "Integer Vector", "3D integer vector"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/modifiers/intern/MOD_volume_displace.cc source/blender/modifiers/intern/MOD_volume_displace.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e7c4004853e..e74ea3656b3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/modifiers/intern/MOD_volume_displace.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/modifiers/intern/MOD_volume_displace.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -200,9 +200,8 @@ struct DisplaceGridOp {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   template<typename GridType> void operator()()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if constexpr (std::is_same_v<GridType, openvdb::points::PointDataGrid> ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  std::is_same_v<GridType, openvdb::StringGrid> ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   std::is_same_v<GridType, openvdb::MaskGrid>) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* We don't support displacing these grid types yet. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/files/patch-pythin311.diff b/graphics/blender/files/patch-pythin311.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..140207334f1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-pythin311.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,165 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on https://github.com/blender/blender/commit/780c0ea097444c3be60314dffd203c099720badb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/python/generic/py_capi_utils.c source/blender/python/generic/py_capi_utils.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 44293759672..2b2ca4acced 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/python/generic/py_capi_utils.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/python/generic/py_capi_utils.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -402,6 +402,7 @@ void PyC_StackSpit(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void PyC_FileAndNum(const char **r_filename, int *r_lineno)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PyFrameObject *frame;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PyCodeObject *code;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (r_filename) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *r_filename = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -410,13 +411,16 @@ void PyC_FileAndNum(const char **r_filename, int *r_lineno)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *r_lineno = -1;
</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 (!(frame = PyThreadState_GET()->frame)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!(frame = PyEval_GetFrame())) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!(code = PyFrame_GetCode(frame))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return;
</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;'>+   /* when executing a script */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (r_filename) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    *r_filename = PyUnicode_AsUTF8(frame->f_code->co_filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *r_filename = PyUnicode_AsUTF8(code->co_filename);
</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;'>+   /* when executing a module */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/python/intern/bpy_driver.c source/blender/python/intern/bpy_driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6c078e4228c..af5a04c60c6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/python/intern/bpy_driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/python/intern/bpy_driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -276,6 +276,56 @@ static void pydriver_error(ChannelDriver *driver)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  define OK_OP(op) [op] = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const char secure_opcodes[255] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  if PY_VERSION_HEX >= 0x030b0000 /* Python 3.11 & newer. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(CACHE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_TOP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(PUSH_NULL),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(NOP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(UNARY_POSITIVE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(UNARY_NEGATIVE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(UNARY_NOT),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(UNARY_INVERT),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(BINARY_SUBSCR),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(GET_LEN),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(RETURN_VALUE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(SWAP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(BUILD_TUPLE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(BUILD_LIST),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(BUILD_SET),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(BUILD_MAP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(COMPARE_OP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(JUMP_FORWARD),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(JUMP_IF_FALSE_OR_POP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(JUMP_IF_TRUE_OR_POP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_JUMP_FORWARD_IF_FALSE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_JUMP_FORWARD_IF_TRUE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(LOAD_GLOBAL),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(IS_OP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(BINARY_OP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(LOAD_FAST),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(STORE_FAST),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(DELETE_FAST),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_JUMP_FORWARD_IF_NOT_NONE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_JUMP_FORWARD_IF_NONE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(BUILD_SLICE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(LOAD_DEREF),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(STORE_DEREF),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(RESUME),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_JUMP_BACKWARD_IF_NOT_NONE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_JUMP_BACKWARD_IF_NONE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_JUMP_BACKWARD_IF_FALSE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(POP_JUMP_BACKWARD_IF_TRUE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* Special cases. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(LOAD_CONST), /* Ok because constants are accepted. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(LOAD_NAME),  /* Ok, because `PyCodeObject.names` is checked. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(CALL),       /* Ok, because we check its "name" before calling. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(KW_NAMES),   /* Ok, because it's used for calling functions with keyword arguments. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    OK_OP(PRECALL),    /* Ok, because it's used for calling. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  else /* Python 3.10 and older. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OK_OP(POP_TOP),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OK_OP(ROT_TWO),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OK_OP(ROT_THREE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -338,6 +388,8 @@ static const char secure_opcodes[255] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OK_OP(CALL_FUNCTION), /* ok, because we check its 'name' before calling */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OK_OP(CALL_FUNCTION_KW),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OK_OP(CALL_FUNCTION_EX),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  endif /* Python 3.10 and older. */
</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;'>+ #  undef OK_OP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -375,7 +427,15 @@ static bool bpy_driver_secure_bytecode_validate(PyObject *expr_code, PyObject *d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const _Py_CODEUNIT *codestr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Py_ssize_t code_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    PyBytes_AsStringAndSize(py_code->co_code, (char **)&codestr, &code_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    PyObject *co_code;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  if PY_VERSION_HEX >= 0x030b0000 /* Python 3.11 & newer. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    co_code = py_code->_co_code;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    co_code = py_code->co_code;
</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;'>++    PyBytes_AsStringAndSize(co_code, (char **)&codestr, &code_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     code_len /= sizeof(*codestr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for (Py_ssize_t i = 0; i < code_len; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/python/intern/bpy_interface.c source/blender/python/intern/bpy_interface.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5f31e0bb74d..c07ea42c872 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/python/intern/bpy_interface.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/python/intern/bpy_interface.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -589,16 +589,17 @@ void BPY_python_use_system_env(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void BPY_python_backtrace(FILE *fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fputs("\n# Python backtrace\n", fp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  PyThreadState *tstate = PyGILState_GetThisThreadState();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (tstate != NULL && tstate->frame != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    PyFrameObject *frame = tstate->frame;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    do {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      const int line = PyCode_Addr2Line(frame->f_code, frame->f_lasti);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      const char *filename = PyUnicode_AsUTF8(frame->f_code->co_filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      const char *funcname = PyUnicode_AsUTF8(frame->f_code->co_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      fprintf(fp, "  File \"%s\", line %d in %s\n", filename, line, funcname);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    } while ((frame = frame->f_back));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PyFrameObject *frame;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!(frame = PyEval_GetFrame())) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  do {
</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;'>++    const int line = PyFrame_GetLineNumber(frame);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const char *filepath = PyUnicode_AsUTF8(code->co_filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const char *funcname = PyUnicode_AsUTF8(code->co_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fprintf(fp, "  File \"%s\", line %d in %s\n", filepath, line, funcname);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } while ((frame = PyFrame_GetBack(frame)));
</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;'>+ void BPY_DECREF(void *pyob_ptr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git source/blender/python/intern/bpy_traceback.c source/blender/python/intern/bpy_traceback.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00b414e027e..019dc38488f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- source/blender/python/intern/bpy_traceback.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ source/blender/python/intern/bpy_traceback.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,7 +34,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const char *traceback_filepath(PyTracebackObject *tb, PyObject **coerce)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *coerce = PyUnicode_EncodeFSDefault(tb->tb_frame->f_code->co_filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PyCodeObject *code = PyFrame_GetCode(tb->tb_frame);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *coerce = PyUnicode_EncodeFSDefault(code->co_filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return PyBytes_AS_STRING(*coerce);
</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/graphics/blender/files/patch-unix-or-apple.diff b/graphics/blender/files/patch-unix-or-apple.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 6dff1d90114..45542677395 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/blender/files/patch-unix-or-apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/files/patch-unix-or-apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- CMakeLists.txt.orig    2020-11-25 03:31:32.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ CMakeLists.txt 2021-03-15 01:08:06.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -240,7 +240,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git CMakeLists.txt CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f315fa87236..3102d71c2fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -239,7 +239,7 @@ mark_as_advanced(WITH_SYSTEM_AUDASPACE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_and_warn_dependency(WITH_AUDASPACE WITH_SYSTEM_AUDASPACE OFF)
</span>  
  option(WITH_OPENMP        "Enable OpenMP (has to be supported by the compiler)" ON)
 -if(UNIX AND NOT APPLE)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,7 +11,7 @@
</span>    option(WITH_OPENMP_STATIC "Link OpenMP statically (only used by the release environment)" OFF)
    mark_as_advanced(WITH_OPENMP_STATIC)
  endif()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -252,7 +252,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -251,7 +251,7 @@ if(WITH_GHOST_X11)
</span>    option(WITH_X11_ALPHA     "Enable X11 transparent background"                     ON)
  endif()
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -18,7 +20,7 @@
</span>    option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
    option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system"           ON)
  else()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -262,7 +262,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -261,7 +261,7 @@ else()
</span>  endif()
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,20 +29,23 @@
</span>    option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF)
  endif()
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -301,18 +301,18 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- option(WITH_OPENAL        "Enable OpenAL Support (http://www.openal.org)" ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -305,13 +305,13 @@ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span>  if(NOT WIN32)
    option(WITH_JACK          "Enable JACK Support (http://www.jackaudio.org)" ON)
 -  if(UNIX AND NOT APPLE)
 +  if(UNIX OR APPLE)
      option(WITH_JACK_DYNLOAD  "Enable runtime dynamic JACK libraries loading" OFF)
    endif()
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set(WITH_JACK OFF)
</span>  endif()
 -if(UNIX AND NOT APPLE)
 +if(UNIX OR APPLE)
    option(WITH_SDL_DYNLOAD  "Enable runtime dynamic SDL libraries loading" OFF)
  endif()
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(UNIX AND NOT APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -329,7 +329,7 @@ endif()
</span>  # Compression
  option(WITH_LZO           "Enable fast LZO compression (used for pointcache)" ON)
  option(WITH_LZMA          "Enable best LZMA compression, (used for pointcache)" ON)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -49,7 +54,7 @@
</span>    option(WITH_SYSTEM_LZO    "Use the system LZO library" OFF)
  endif()
  option(WITH_DRACO         "Enable Draco mesh compression Python module (used for glTF)" ON)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -336,7 +336,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -353,7 +353,7 @@ if(WIN32)
</span>    option(WITH_INPUT_IME "Enable Input Method Editor (IME) for complex Asian character input" ON)
  endif()
  option(WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ON)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -58,7 +63,7 @@
</span>    option(WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON)
    option(WITH_STATIC_LIBS "Try to link with static libraries, as much as possible, to make blender more portable across distributions" OFF)
    if(WITH_STATIC_LIBS)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -454,7 +454,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -478,7 +478,7 @@ set(TEST_PYTHON_EXE "" CACHE PATH "Python executable to run unit tests")
</span>  mark_as_advanced(TEST_PYTHON_EXE)
  
  # Documentation
</pre><pre style='margin:0'>

</pre>