<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>