summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-10-27 03:58:59 +0100
committerSam James <sam@gentoo.org>2023-10-27 03:58:59 +0100
commit4a5e328e8c98dcbc76a55f1797169a5c1b2b5ecc (patch)
tree7944c5920aa6d3d3980c46d0aad2f058c5f89c4b /media-libs/opencolorio
parentRevert "media-libs/osl -> media-libs/OpenShadingLanguage: rename" (diff)
downloadgentoo-4a5e328e8c98dcbc76a55f1797169a5c1b2b5ecc.tar.gz
gentoo-4a5e328e8c98dcbc76a55f1797169a5c1b2b5ecc.tar.bz2
gentoo-4a5e328e8c98dcbc76a55f1797169a5c1b2b5ecc.zip
Revert "media-libs/opencolorio -> media-libs/OpenColorIO: rename"
This reverts commit 9e8279a45bf09e9d583ec88efa266c47afdb3237. Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-libs/opencolorio')
-rw-r--r--media-libs/opencolorio/Manifest3
-rw-r--r--media-libs/opencolorio/files/opencolorio-2.1.1-gcc12.patch14
-rw-r--r--media-libs/opencolorio/files/opencolorio-2.1.2-musl-strtol.patch27
-rw-r--r--media-libs/opencolorio/files/opencolorio-2.2.1-adjust-python-installation.patch17
-rw-r--r--media-libs/opencolorio/files/opencolorio-2.2.1-support-minizip-ng-4.patch92
-rw-r--r--media-libs/opencolorio/files/opencolorio-2.3.0-support-yaml-cpp-0.8.0.patch21
-rw-r--r--media-libs/opencolorio/metadata.xml23
-rw-r--r--media-libs/opencolorio/opencolorio-2.1.3.ebuild103
-rw-r--r--media-libs/opencolorio/opencolorio-2.2.1.ebuild131
-rw-r--r--media-libs/opencolorio/opencolorio-2.3.0.ebuild131
10 files changed, 562 insertions, 0 deletions
diff --git a/media-libs/opencolorio/Manifest b/media-libs/opencolorio/Manifest
new file mode 100644
index 000000000000..fbe8b3a98232
--- /dev/null
+++ b/media-libs/opencolorio/Manifest
@@ -0,0 +1,3 @@
+DIST opencolorio-2.1.3.tar.gz 11024701 BLAKE2B bcd1eb6a74260f451e49ef40e729bfc4c354ab255d96c261fbf865c586f285fe876ed54b05276f3b6b25ece4fd261672fe1dd519041ffad77d7c78efc8cf161d SHA512 b26fcfa3ea12ab6e4b019a13ce79ebcfd215c674acb348f2d9f85f749b2a5beccd395ed1cc9954e4b3cb83a160b24a8d7d81994ac1d9ea8cfe074b81d6b8a061
+DIST opencolorio-2.2.1.tar.gz 11336775 BLAKE2B b463d6a0a7e7fec0a890fa8a0cd06ed269f925c5986dfb82eb53728a09d884c89e6c4dfe112706ce27351d4440909ff9680387028d1dc887e7d866b30c39c54f SHA512 d5f3a4b5bd661af7336c015d07e0feccb286464a08239a3c259a97217001161e7571f5137475fc2f4d1b9af6381bbfa03c0b60f41de282f114307961b8d84fc9
+DIST opencolorio-2.3.0.tar.gz 11406998 BLAKE2B 0e62e43de076a712f68b68b91c9908bc9050316e3500e0924fafb08a3356ce361953f49dfd1eb022eeada11e499653833a48a22a4ba593504617c1c61b16d488 SHA512 cdf20ca6c85b1d70244d8532d010344f1cf85be6a116d831e83ea04d7c47a961049691e6a241e9a7f632d864df57a4bccb68084e27187ec8a05f1fdf344824d7
diff --git a/media-libs/opencolorio/files/opencolorio-2.1.1-gcc12.patch b/media-libs/opencolorio/files/opencolorio-2.1.1-gcc12.patch
new file mode 100644
index 000000000000..0bf00862e51b
--- /dev/null
+++ b/media-libs/opencolorio/files/opencolorio-2.1.1-gcc12.patch
@@ -0,0 +1,14 @@
+https://src.fedoraproject.org/rpms/OpenColorIO/raw/rawhide/f/OCIO-strlen.patch
+https://github.com/AcademySoftwareFoundation/OpenColorIO/commit/4fa94918c2cf572dcaf61ca07016f3b5c231c14c
+https://bugs.gentoo.org/841479
+--- a/src/OpenColorIO/FileRules.cpp
++++ b/src/OpenColorIO/FileRules.cpp
+@@ -3,6 +3,7 @@
+
+ #include <algorithm>
+ #include <cctype>
++#include <cstring>
+ #include <map>
+ #include <regex>
+ #include <sstream>
+
diff --git a/media-libs/opencolorio/files/opencolorio-2.1.2-musl-strtol.patch b/media-libs/opencolorio/files/opencolorio-2.1.2-musl-strtol.patch
new file mode 100644
index 000000000000..87059614ff03
--- /dev/null
+++ b/media-libs/opencolorio/files/opencolorio-2.1.2-musl-strtol.patch
@@ -0,0 +1,27 @@
+# Fix strtol_l missing on musl. On musl libc use strtol
+# Taken from Alpine Linux, please refer:
+# https://git.alpinelinux.org/aports/tree/community/opencolorio/0002-fix-strtol.patch?id=dd7ba461824ab0618f0493cbb450b221fdc2513c
+# Please refer: https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1624
+--- a/src/utils/NumberUtils.h
++++ b/src/utils/NumberUtils.h
+@@ -68,7 +68,7 @@ really_inline from_chars_result from_chars(const char *first, const char *last,
+ tempval = ::strtod_l(first, &endptr, loc.local);
+ #endif
+
+- if (errno != 0)
++ if (errno != 0 && errno != EINVAL)
+ {
+ return {first + (endptr - first), std::errc::result_out_of_range};
+ }
+@@ -139,8 +139,10 @@ really_inline from_chars_result from_chars(const char *first, const char *last,
+ long int
+ #ifdef _WIN32
+ tempval = _strtol_l(first, &endptr, 0, loc.local);
+-#else
++#elif defined(__GLIBC__)
+ tempval = ::strtol_l(first, &endptr, 0, loc.local);
++#else
++ tempval = ::strtol(first, &endptr, 0);
+ #endif
+
+ if (errno != 0)
diff --git a/media-libs/opencolorio/files/opencolorio-2.2.1-adjust-python-installation.patch b/media-libs/opencolorio/files/opencolorio-2.2.1-adjust-python-installation.patch
new file mode 100644
index 000000000000..6f023310eb8d
--- /dev/null
+++ b/media-libs/opencolorio/files/opencolorio-2.2.1-adjust-python-installation.patch
@@ -0,0 +1,17 @@
+From 5ca483b67404a9ba2230f2f03ff3255eceb3d2bc Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <waebbl-gentoo@posteo.net>
+Date: Sun, 19 Feb 2023 23:14:44 +0100
+Subject: [PATCH] [Gentoo-specific] adjust python installation
+
+Signed-off-by: Bernd Waibel <waebbl-gentoo@posteo.net>
+--- a/src/bindings/python/CMakeLists.txt
++++ b/src/bindings/python/CMakeLists.txt
+@@ -230,7 +230,7 @@ target_compile_definitions(PyOpenColorIO
+ if(WIN32)
+ set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/site-packages")
+ else()
+- set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages")
++ set(_Python_VARIANT_PATH "${CMAKE_INSTALL_PREFIX}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages")
+ endif()
+
+ # Create an internal global variable to access it in another scope but not publicly visible
diff --git a/media-libs/opencolorio/files/opencolorio-2.2.1-support-minizip-ng-4.patch b/media-libs/opencolorio/files/opencolorio-2.2.1-support-minizip-ng-4.patch
new file mode 100644
index 000000000000..8ee4ceaf9970
--- /dev/null
+++ b/media-libs/opencolorio/files/opencolorio-2.2.1-support-minizip-ng-4.patch
@@ -0,0 +1,92 @@
+# From https://github.com/AcademySoftwareFoundation/OpenColorIO/pull/1806
+From d15ccddd4d20d66749577d7444de861112f6864c Mon Sep 17 00:00:00 2001
+From: Brad Smith <brad@comstyle.com>
+Date: Thu, 29 Jun 2023 09:57:28 -0400
+Subject: [PATCH] Add support for minizip-ng 4 API
+
+Signed-off-by: Brad Smith <brad@comstyle.com>
+---
+ src/OpenColorIO/OCIOZArchive.cpp | 22 +++++++++++++++++++++-
+ src/apps/ocioarchive/main.cpp | 4 ++++
+ 2 files changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/src/OpenColorIO/OCIOZArchive.cpp b/src/OpenColorIO/OCIOZArchive.cpp
+index 85fc7bb76..24d836e95 100644
+--- a/src/OpenColorIO/OCIOZArchive.cpp
++++ b/src/OpenColorIO/OCIOZArchive.cpp
+@@ -225,7 +225,11 @@ void archiveConfig(std::ostream & ostream, const Config & config, const char * c
+ std::string configStr = ss.str();
+
+ // Write zip to memory stream.
++#if MZ_VERSION_BUILD >= 040000
++ write_mem_stream = mz_stream_mem_create();
++#else
+ mz_stream_mem_create(&write_mem_stream);
++#endif
+ mz_stream_mem_set_grow_size(write_mem_stream, 128 * 1024);
+ mz_stream_open(write_mem_stream, NULL, MZ_OPEN_MODE_CREATE);
+
+@@ -237,7 +241,11 @@ void archiveConfig(std::ostream & ostream, const Config & config, const char * c
+ options.compress_level = ArchiveCompressionLevels::BEST;
+
+ // Create the writer handle.
++#if MZ_VERSION_BUILD >= 040000
++ archiver = mz_zip_writer_create();
++#else
+ mz_zip_writer_create(&archiver);
++#endif
+
+ // Archive options.
+ // Compression method
+@@ -332,7 +340,11 @@ void ExtractOCIOZArchive(const char * archivePath, const char * destination)
+ std::string outputDestination = pystring::os::path::normpath(destination);
+
+ // Create zip reader.
++#if MZ_VERSION_BUILD >= 040000
++ extracter = mz_zip_reader_create();
++#else
+ mz_zip_reader_create(&extracter);
++#endif
+
+ MinizipNgHandlerGuard extracterGuard(extracter, false, false);
+
+@@ -450,7 +462,11 @@ std::vector<uint8_t> getFileStringFromArchiveFile(const std::string & filepath,
+ std::vector<uint8_t> buffer;
+
+ // Create the reader object.
++#if MZ_VERSION_BUILD >= 040000
++ reader = mz_zip_reader_create();
++#else
+ mz_zip_reader_create(&reader);
++#endif
+
+ MinizipNgHandlerGuard extracterGuard(reader, false, true);
+
+@@ -510,7 +526,11 @@ void getEntriesMappingFromArchiveFile(const std::string & archivePath,
+ void *reader = NULL;
+
+ // Create the reader object.
++#if MZ_VERSION_BUILD >= 040000
++ reader = mz_zip_reader_create();
++#else
+ mz_zip_reader_create(&reader);
++#endif
+
+ MinizipNgHandlerGuard extracterGuard(reader, false, false);
+
+diff --git a/src/apps/ocioarchive/main.cpp b/src/apps/ocioarchive/main.cpp
+index 190cadee5..68054a6da 100644
+--- a/src/apps/ocioarchive/main.cpp
++++ b/src/apps/ocioarchive/main.cpp
+@@ -235,7 +235,11 @@ int main(int argc, const char **argv)
+ }
+
+ std::string path = args[0];
++#if MZ_VERSION_BUILD >= 040000
++ reader = mz_zip_reader_create();
++#else
+ mz_zip_reader_create(&reader);
++#endif
+ struct tm tmu_date;
+
+ err = mz_zip_reader_open_file(reader, path.c_str());
diff --git a/media-libs/opencolorio/files/opencolorio-2.3.0-support-yaml-cpp-0.8.0.patch b/media-libs/opencolorio/files/opencolorio-2.3.0-support-yaml-cpp-0.8.0.patch
new file mode 100644
index 000000000000..924ed2092881
--- /dev/null
+++ b/media-libs/opencolorio/files/opencolorio-2.3.0-support-yaml-cpp-0.8.0.patch
@@ -0,0 +1,21 @@
+From: Bernd Feige <Bernd.Feige@gmx.net>
+https://bugs.gentoo.org/914716#c12
+
+Index: OpenColorIO-2.3.0/share/cmake/modules/Findyaml-cpp.cmake
+===================================================================
+--- OpenColorIO-2.3.0.orig/share/cmake/modules/Findyaml-cpp.cmake
++++ OpenColorIO-2.3.0/share/cmake/modules/Findyaml-cpp.cmake
+@@ -50,7 +50,12 @@ if(NOT OCIO_INSTALL_EXT_PACKAGES STREQUA
+ endif()
+
+ if(yaml-cpp_FOUND)
+- get_target_property(yaml-cpp_LIBRARY yaml-cpp LOCATION)
++ if(TARGET yaml-cpp::yaml-cpp)
++ # yaml-cpp >= 0.8
++ get_target_property(yaml-cpp::yaml-cpp_LIBRARY yaml-cpp::yaml-cpp LOCATION)
++ else()
++ get_target_property(yaml-cpp_LIBRARY yaml-cpp LOCATION)
++ endif()
+ else()
+
+ # As yaml-cpp-config.cmake search fails, search an installed library
diff --git a/media-libs/opencolorio/metadata.xml b/media-libs/opencolorio/metadata.xml
new file mode 100644
index 000000000000..13813a4b0e7b
--- /dev/null
+++ b/media-libs/opencolorio/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>negril.nx+gentoo@gmail.com</email>
+ <name>Paul Zander</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ OpenColorIO (OCIO) is a complete color management solution geared
+ towards motion picture production with an emphasis on visual effects
+ and computer animation.
+ </longdescription>
+ <use>
+ <flag name="apps">Build the OCIO command line apps</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">AcademySoftwareFoundation/OpenColorIO</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/media-libs/opencolorio/opencolorio-2.1.3.ebuild b/media-libs/opencolorio/opencolorio-2.1.3.ebuild
new file mode 100644
index 000000000000..ca3439486480
--- /dev/null
+++ b/media-libs/opencolorio/opencolorio-2.1.3.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit cmake flag-o-matic python-single-r1
+
+DESCRIPTION="Color management framework for visual effects and animation"
+HOMEPAGE="https://opencolorio.org https://github.com/AcademySoftwareFoundation/OpenColorIO"
+SRC_URI="https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/OpenColorIO-${PV}"
+
+LICENSE="BSD"
+# TODO: drop .1 on next SONAME bump (2.1 -> 2.2?) as we needed to nudge it
+# to force rebuild of consumers due to changing to openexr 3 changing API.
+SLOT="0/$(ver_cut 1-2).1"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv"
+IUSE="cpu_flags_x86_sse2 doc opengl python static-libs test"
+REQUIRED_USE="
+ doc? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+# Restricting tests, bugs #439790 and #447908
+RESTRICT="test"
+
+# Works with older OIIO but need to force a version w/ OpenEXR 3
+RDEPEND="
+ dev-cpp/pystring
+ dev-python/pybind11
+ <dev-cpp/yaml-cpp-0.8.0:=
+ >=dev-libs/imath-3.1.4-r2:=
+ dev-libs/tinyxml
+ opengl? (
+ media-libs/lcms:2
+ >=media-libs/OpenImageIO-2.3.12.0-r3:=
+ media-libs/glew:=
+ media-libs/freeglut
+ virtual/opengl
+ )
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ $(python_gen_cond_dep '
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/testresources[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.1.1-gcc12.patch
+ "${FILESDIR}"/${PN}-2.1.2-musl-strtol.patch
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed -i -e "s|LIBRARY DESTINATION lib|LIBRARY DESTINATION $(get_libdir)|g" {,src/bindings/python/,src/OpenColorIO/,src/libutils/oiiohelpers/,src/libutils/oglapphelpers/}CMakeLists.txt || die
+ sed -i -e "s|ARCHIVE DESTINATION lib|ARCHIVE DESTINATION $(get_libdir)|g" {,src/bindings/python/,src/OpenColorIO/,src/libutils/oiiohelpers/,src/libutils/oglapphelpers/}CMakeLists.txt || die
+
+ # Avoid automagic test dependency on OSL, bug #833933
+ # Can cause problems during e.g. OpenEXR unsplitting migration
+ cmake_run_in tests cmake_comment_add_subdirectory osl
+}
+
+src_configure() {
+ # Missing features:
+ # - Truelight and Nuke are not in portage for now, so their support are disabled
+ # - Java bindings was not tested, so disabled
+ # Notes:
+ # - OpenImageIO is required for building ociodisplay and ocioconvert (USE opengl)
+ # - OpenGL, GLUT and GLEW is required for building ociodisplay (USE opengl)
+ local mycmakeargs=(
+ -DOCIO_USE_OPENEXR_HALF=OFF
+ -DOCIO_BUILD_STATIC=$(usex static-libs)
+ -DOCIO_BUILD_DOCS=$(usex doc)
+ -DOCIO_BUILD_APPS=$(usex opengl)
+ -DOCIO_BUILD_PYTHON=$(usex python)
+ -DOCIO_PYTHON_VERSION="${EPYTHON/python/}"
+ -DOCIO_BUILD_JAVA=OFF
+ -DOCIO_USE_SSE=$(usex cpu_flags_x86_sse2)
+ -DOCIO_BUILD_TESTS=$(usex test)
+ -DOCIO_BUILD_GPU_TESTS=$(usex test)
+ -DOCIO_BUILD_FROZEN_DOCS=$(usex doc)
+ -DOCIO_INSTALL_EXT_PACKAGES=NONE
+ )
+
+ # We need this to work around asserts that can trigger even in proper use cases.
+ # See https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1235
+ append-flags -DNDEBUG
+
+ cmake_src_configure
+}
diff --git a/media-libs/opencolorio/opencolorio-2.2.1.ebuild b/media-libs/opencolorio/opencolorio-2.2.1.ebuild
new file mode 100644
index 000000000000..b18e4c59f212
--- /dev/null
+++ b/media-libs/opencolorio/opencolorio-2.2.1.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit cmake python-single-r1 virtualx
+
+DESCRIPTION="A color management framework for visual effects and animation"
+HOMEPAGE="https://opencolorio.org https://github.com/AcademySoftwareFoundation/OpenColorIO"
+SRC_URI="https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/OpenColorIO-${PV}"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2)"
+# minizip-ng: ~arm ~arm64 ~ppc64 ~riscv
+# osl: ~riscv
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="apps cpu_flags_x86_sse2 doc opengl python static-libs test"
+# TODO: drop opengl? It does nothing without building either the apps or the testsuite
+REQUIRED_USE="
+ apps? ( opengl )
+ doc? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? ( opengl )
+"
+
+RDEPEND="
+ dev-cpp/pystring
+ <dev-cpp/yaml-cpp-0.8.0:=
+ dev-libs/expat
+ >=dev-libs/imath-3.1.5:=
+ sys-libs/minizip-ng
+ sys-libs/zlib
+ apps? (
+ media-libs/lcms:2
+ >=media-libs/openexr-3.1.5:=
+ )
+ opengl? (
+ media-libs/freeglut
+ media-libs/glew:=
+ media-libs/libglvnd
+ )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')
+ )
+"
+DEPEND="${RDEPEND}"
+# TODO: OSL tests would need OIIO, leading to a circular dependency. If OIIO
+# isn't found this test will be skipped (automagic if found?)
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen
+ $(python_gen_cond_dep '
+ dev-python/breathe[${PYTHON_USEDEP}]
+ dev-python/recommonmark[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-press-theme[${PYTHON_USEDEP}]
+ dev-python/sphinx-tabs[${PYTHON_USEDEP}]
+ dev-python/testresources[${PYTHON_USEDEP}]
+ ')
+ )
+ opengl? (
+ media-libs/freeglut
+ media-libs/glew:=
+ media-libs/libglvnd
+ )
+"
+# test? (
+# >=media-libs/OpenImageIO-2.2.14
+# >=media-libs/osl-1.11
+# )
+# "
+
+# Restricting tests, bugs #439790 and #447908
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.2.1-adjust-python-installation.patch"
+ "${FILESDIR}/${PN}-2.2.1-support-minizip-ng-4.patch"
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ # Avoid automagic test dependency on OSL, bug #833933
+ # Can cause problems during e.g. OpenEXR unsplitting migration
+ cmake_run_in tests cmake_comment_add_subdirectory osl
+}
+
+src_configure() {
+ # Missing features:
+ # - Truelight and Nuke are not in portage for now, so their support are disabled
+ # - Java bindings was not tested, so disabled
+ # Notes:
+ # - OpenImageIO or OpenEXR (default) is required for building ociodisplay and
+ # ocioconvert (USE opengl)
+ # - OpenGL, GLUT and GLEW is required for building ociodisplay (USE opengl)
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=$(usex !static-libs)
+ -DOCIO_BUILD_APPS=$(usex apps)
+ -DOCIO_BUILD_DOCS=$(usex doc)
+ -DOCIO_BUILD_FROZEN_DOCS=$(usex doc)
+ -DOCIO_BUILD_GPU_TESTS=$(usex test)
+ -DOCIO_BUILD_JAVA=OFF
+ -DOCIO_BUILD_PYTHON=$(usex python)
+ -DOCIO_BUILD_TESTS=$(usex test)
+ -DOCIO_INSTALL_EXT_PACKAGES=NONE
+ -DOCIO_USE_OIIO_CMAKE_CONFIG=ON
+ -DOCIO_USE_SSE=$(usex cpu_flags_x86_sse2)
+ )
+ use python && mycmakeargs+=(
+ -DOCIO_PYTHON_VERSION="${EPYTHON/python/}"
+ -DPython_EXECUTABLE="${PYTHON}"
+ -DPYTHON_VARIANT_PATH=$(python_get_sitedir)
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ virtx cmake_src_test
+}
diff --git a/media-libs/opencolorio/opencolorio-2.3.0.ebuild b/media-libs/opencolorio/opencolorio-2.3.0.ebuild
new file mode 100644
index 000000000000..c6af877ca4f3
--- /dev/null
+++ b/media-libs/opencolorio/opencolorio-2.3.0.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit cmake python-single-r1 virtualx
+
+DESCRIPTION="A color management framework for visual effects and animation"
+HOMEPAGE="https://opencolorio.org https://github.com/AcademySoftwareFoundation/OpenColorIO"
+SRC_URI="https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/OpenColorIO-${PV}"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2)"
+# minizip-ng: ~arm ~arm64 ~ppc64 ~riscv
+# osl: ~riscv
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="apps cpu_flags_x86_sse2 doc opengl python static-libs test"
+# TODO: drop opengl? It does nothing without building either the apps or the testsuite
+REQUIRED_USE="
+ apps? ( opengl )
+ doc? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? ( opengl )
+"
+
+RDEPEND="
+ dev-cpp/pystring
+ >=dev-cpp/yaml-cpp-0.7.0:=
+ dev-libs/expat
+ >=dev-libs/imath-3.1.5:=
+ sys-libs/minizip-ng
+ sys-libs/zlib
+ apps? (
+ media-libs/lcms:2
+ >=media-libs/openexr-3.1.5:=
+ )
+ opengl? (
+ media-libs/freeglut
+ media-libs/glew:=
+ media-libs/libglvnd
+ )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')
+ )
+"
+DEPEND="${RDEPEND}"
+# TODO: OSL tests would need OIIO, leading to a circular dependency. If OIIO
+# isn't found this test will be skipped (automagic if found?)
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen
+ $(python_gen_cond_dep '
+ dev-python/breathe[${PYTHON_USEDEP}]
+ dev-python/recommonmark[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-press-theme[${PYTHON_USEDEP}]
+ dev-python/sphinx-tabs[${PYTHON_USEDEP}]
+ dev-python/testresources[${PYTHON_USEDEP}]
+ ')
+ )
+ opengl? (
+ media-libs/freeglut
+ media-libs/glew:=
+ media-libs/libglvnd
+ )
+"
+# test? (
+# >=media-libs/OpenImageIO-2.2.14
+# >=media-libs/osl-1.11
+# )
+# "
+
+# Restricting tests, bugs #439790 and #447908
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.2.1-adjust-python-installation.patch"
+ "${FILESDIR}/${PN}-2.3.0-support-yaml-cpp-0.8.0.patch"
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ # Avoid automagic test dependency on OSL, bug #833933
+ # Can cause problems during e.g. OpenEXR unsplitting migration
+ cmake_run_in tests cmake_comment_add_subdirectory osl
+}
+
+src_configure() {
+ # Missing features:
+ # - Truelight and Nuke are not in portage for now, so their support are disabled
+ # - Java bindings was not tested, so disabled
+ # Notes:
+ # - OpenImageIO or OpenEXR (default) is required for building ociodisplay and
+ # ocioconvert (USE opengl)
+ # - OpenGL, GLUT and GLEW is required for building ociodisplay (USE opengl)
+ local mycmakeargs=(
+ "-DBUILD_SHARED_LIBS=$(usex !static-libs)"
+ "-DOCIO_BUILD_APPS=$(usex apps)"
+ "-DOCIO_BUILD_DOCS=$(usex doc)"
+ "-DOCIO_BUILD_FROZEN_DOCS=$(usex doc)"
+ "-DOCIO_BUILD_GPU_TESTS=$(usex test)"
+ "-DOCIO_BUILD_JAVA=OFF"
+ "-DOCIO_BUILD_PYTHON=$(usex python)"
+ "-DOCIO_BUILD_TESTS=$(usex test)"
+ "-DOCIO_INSTALL_EXT_PACKAGES=NONE"
+ "-DOCIO_USE_OIIO_CMAKE_CONFIG=ON"
+ "-DOCIO_USE_SSE=$(usex cpu_flags_x86_sse2)"
+ )
+ use python && mycmakeargs+=(
+ "-DOCIO_PYTHON_VERSION=${EPYTHON/python/}"
+ "-DPython_EXECUTABLE=${PYTHON}"
+ "-DPYTHON_VARIANT_PATH=$(python_get_sitedir)"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ virtx cmake_src_test
+}