<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/8889f0ae59f049c16a78b0b222eb7a052f792c38">https://github.com/macports/macports-ports/commit/8889f0ae59f049c16a78b0b222eb7a052f792c38</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 8889f0ae59f opencolorio: support tests, fix big-endian
</span>8889f0ae59f is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 8889f0ae59f049c16a78b0b222eb7a052f792c38
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Fri Aug 4 22:35:58 2023 +0800

<span style='display:block; white-space:pre;color:#404040;'>    opencolorio: support tests, fix big-endian
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes: https://trac.macports.org/ticket/67904
</span>---
 graphics/opencolorio/Portfile                      | 38 +++++++++++++++++-
 .../opencolorio/files/patch-fix-endianness.diff    | 45 ++++++++++++++++++++++
 2 files changed, 81 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencolorio/Portfile b/graphics/opencolorio/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 931ba0044f1..da0f81d9233 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/opencolorio/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencolorio/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -49,6 +49,8 @@ if {${os.platform} eq "darwin" && ${os.major} < 20} {
</span> 
     patchfiles-append   patch-yaml-cpp-0.7.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-fix-endianness.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     patchfiles-append   patch-CMakeLists.txt.diff
 
     livecheck.type      none
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,8 +62,20 @@ configure.cxxflags-append \
</span>     -std=c++11
 
 # see https://github.com/imageworks/OpenColorIO/issues/563
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    -Wno-error=self-assign-field
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/ticket/67904
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -Wno-error=self-assign-field
</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;'>+# src/core/ExponentOps.cpp: error: 'OpenColorIO::v1::{anonymous}::ExponentOp::~ExponentOp()'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# defined but not used [-Werror=unused-function]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# pyglue/PyAllocationTransform.cpp: error: cast between incompatible function types from 'PyObject* (*)(PyObject*)' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# {aka '_object* (*)(_object*)'} to 'PyCFunction' {aka '_object* (*)(_object*, _object*)'} [-Werror=cast-function-type]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -Wno-unused-function -Wno-cast-function-type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 configure.cxxflags-append \
     -Wno-deprecated-declarations
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -83,6 +97,12 @@ configure.args-append \
</span>     -DUSE_EXTERNAL_TINYXML=ON \
     -DUSE_EXTERNAL_LCMS=ON
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${configure.build_arch} in [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # This option is ON by default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DOCIO_USE_SSE=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # OpenColorIO intentially installs Python module in lib
 # see https://github.com/imageworks/OpenColorIO/blob/15e96c1f579d3640947a5fcb5ec831383cc3956e/src/pyglue/CMakeLists.txt#L85
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -222,3 +242,17 @@ if {![variant_isset x11] && ![variant_isset quartz]} {
</span>     configure.args-append \
         -DOCIO_BUILD_APPS=OFF
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Notice that on PowerPC tests will report a failure, however if you look into the actual output,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# almost all tests pass (with the fix for endianness above). What still fails is a result of OpenColorIO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# being incapable of properly handling rounding: FAILED: osvec[i] == PROFILE_OUTvec[i]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# values were 'luma: [0.212599993, 0.715200007, 0.0722000003]' and 'luma: [0.2126, 0.7152, 0.0722]'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant tests description "Enable testing" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.pre_args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DOCIO_BUILD_TESTS=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.run    yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencolorio/files/patch-fix-endianness.diff b/graphics/opencolorio/files/patch-fix-endianness.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..de1695c284f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencolorio/files/patch-fix-endianness.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/core/Platform.h    2019-03-28 13:12:57.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/core/Platform.h    2023-08-04 22:13:55.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -122,7 +122,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // TODO: Add proper endian detection using architecture / compiler mojo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //       In the meantime, hardcode to x86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define OCIO_LITTLE_ENDIAN 1  // This is correct on x86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define OCIO_BIG_ENDIAN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define OCIO_LITTLE_ENDIAN // This is correct on x86
</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;'>+      * Mutex classes
</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;'>+--- src/core/FileFormatIridasLook.cpp      2019-03-28 13:12:57.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/core/FileFormatIridasLook.cpp      2023-08-04 22:15:26.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,20 +132,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             unsigned char * fvalbytes = reinterpret_cast<unsigned char *>(&fval);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if OCIO_LITTLE_ENDIAN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(OCIO_LITTLE_ENDIAN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // Since incoming values are little endian, and we're on little endian
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // preserve the byte order
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fvalbytes[0] = (unsigned char) (asciinums[1] | (asciinums[0] << 4));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fvalbytes[1] = (unsigned char) (asciinums[3] | (asciinums[2] << 4));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fvalbytes[2] = (unsigned char) (asciinums[5] | (asciinums[4] << 4));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fvalbytes[3] = (unsigned char) (asciinums[7] | (asciinums[6] << 4));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(OCIO_BIG_ENDIAN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // Since incoming values are little endian, and we're on big endian
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // flip the byte order
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fvalbytes[3] = (unsigned char) (asciinums[1] | (asciinums[0] << 4));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fvalbytes[2] = (unsigned char) (asciinums[3] | (asciinums[2] << 4));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fvalbytes[1] = (unsigned char) (asciinums[5] | (asciinums[4] << 4));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fvalbytes[0] = (unsigned char) (asciinums[7] | (asciinums[6] << 4));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #error "Endianness is unknown."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span></pre><pre style='margin:0'>

</pre>