From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1565888-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 4D926158089
	for <garchives@archives.gentoo.org>; Fri, 27 Oct 2023 02:34:56 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 10A132BC0AA;
	Fri, 27 Oct 2023 02:34:50 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id D6D9A2BC0AA
	for <gentoo-commits@lists.gentoo.org>; Fri, 27 Oct 2023 02:34:49 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 86248335C8E
	for <gentoo-commits@lists.gentoo.org>; Fri, 27 Oct 2023 02:34:48 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 51C7C12D5
	for <gentoo-commits@lists.gentoo.org>; Fri, 27 Oct 2023 02:34:46 +0000 (UTC)
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org>
Message-ID: <1698373911.1258d420a685e57b965f17690269248fc6b447aa.sam@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/OpenImageIO/
X-VCS-Repository: repo/gentoo
X-VCS-Files: media-libs/OpenImageIO/Manifest media-libs/OpenImageIO/OpenImageIO-2.4.14.0.ebuild media-libs/OpenImageIO/OpenImageIO-2.4.15.0.ebuild media-libs/OpenImageIO/OpenImageIO-2.4.16.0.ebuild media-libs/OpenImageIO/OpenImageIO-2.5.4.0.ebuild
X-VCS-Directories: media-libs/OpenImageIO/
X-VCS-Committer: sam
X-VCS-Committer-Name: Sam James
X-VCS-Revision: 1258d420a685e57b965f17690269248fc6b447aa
X-VCS-Branch: master
Date: Fri, 27 Oct 2023 02:34:46 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 8a30cd7f-eea7-46ad-bc27-4d984f8e11c5
X-Archives-Hash: 900704c39bee7bf57b45e99ba760b77d

commit:     1258d420a685e57b965f17690269248fc6b447aa
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Wed Oct 11 15:01:20 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct 27 02:31:51 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1258d420

media-libs/OpenImageIO: add 2.4.14.0, 2.4.15.0, 2.4.16.0 & 2.5.4.0

* Migrate to USE=gui per QA policy (PG0802,
https://projects.gentoo.org/qa/policy-guide/use-flags.html#pg0802)

* Default to qt5 with USE=gui for now.

Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-libs/OpenImageIO/Manifest                    |   4 +
 media-libs/OpenImageIO/OpenImageIO-2.4.14.0.ebuild | 205 +++++++++++++++++++++
 media-libs/OpenImageIO/OpenImageIO-2.4.15.0.ebuild | 205 +++++++++++++++++++++
 media-libs/OpenImageIO/OpenImageIO-2.4.16.0.ebuild | 205 +++++++++++++++++++++
 media-libs/OpenImageIO/OpenImageIO-2.5.4.0.ebuild  | 205 +++++++++++++++++++++
 5 files changed, 824 insertions(+)

diff --git a/media-libs/OpenImageIO/Manifest b/media-libs/OpenImageIO/Manifest
index 1a670ec1834f..06f97d6d969f 100644
--- a/media-libs/OpenImageIO/Manifest
+++ b/media-libs/OpenImageIO/Manifest
@@ -1,6 +1,10 @@
 DIST OpenImageIO-2.4.12.0.tar.gz 32157951 BLAKE2B dd7dd7b641266a7c575eafbc258ffc4b298236043960ae6ef878f46cd3ec3342f3be5b9a14459724578abc6390318666e43e8835ef6b2f25bc05a52002c7096f SHA512 5a0b9e6b634326be051dac46d2145149e9ff3e33d60d05728420d156431d6aa85186706b5f5b66ab820f4cd97f68d049a76e2da13f99e457135360f56fb5a257
 DIST OpenImageIO-2.4.13.0.tar.gz 32162857 BLAKE2B 43d6c16fb9dfba2e01ea6a7b68e8c72ec0c11be0d42d96e476a79b7972bcf61f2ac377009493e8fa9367001cc788a1453f8c0f1cf061a204f9da4b9f713d5554 SHA512 9e887c7039995ce7c41556e09a7eed940863260a522ecf7d9bec300189026ed507da560620dfa4a619deeb679be7adf42fe3a7020ff3094df777c7934c771227
+DIST OpenImageIO-2.4.14.0.tar.gz 47890469 BLAKE2B 53865ab493a586a1e4fdc6f81a90f7ae3847556a09a9c19ade48cbe5d8e3f807d864a2409a468613b1a55c128d5f5e119f1f2a70fc44b1a5293c99c3431cc69f SHA512 6b87c805907a2f7c98f40e987fb6ebf769f8519f5d8a8b7393bed62a41cee1118bb32d2bc4d23fd464973e237077d08771ff85f72073caa57799d71bd098038f
+DIST OpenImageIO-2.4.15.0.tar.gz 47894262 BLAKE2B 82afc48b3d9affb987d94c57d91fe93b27c78350d02fc7605ce3995e5f37724495bbc0d2f85fa8efb86113ef48d0aec15cfdb9bad8547315542ed125e5f71349 SHA512 dc1f805d6dc85170784d2b2860bfd488fdebb92cb12254d5c0d4df9483e55f298f6fbf74aca0c52162583300327de99bd92f73c2a2b7f5611f61bbfef5ca22a5
+DIST OpenImageIO-2.4.16.0.tar.gz 47894563 BLAKE2B 02788bb7ccc9bbcb84a44df0c86252545f89cf8dcd1b84443f185f43e60c9eb701e9c5e781c946dec797ec888c5ebdd5efb3f1d95b684c71cbb7271bf6f0da9e SHA512 f9835d6b5e938bdba462a64eb9cc3b89f27ea36b6b59f7143a9c0b2794f095ca68fbd26bdd7322b2b260e9ded5cc6a91f86ad11f292ad8163a1dfe55b9a3446c
 DIST OpenImageIO-2.4.6.0.tar.gz 10356052 BLAKE2B e5e660d8c2aee62cecaf520f9bc6bc65e243bd90a88b1a233f95fa3b4bb24390dbc80a922c313672c4d70a0de58bc7573d49ecfda35bde1ae95ecaeeccea90cb SHA512 cb16d767cde35852c9c3618f4eb22f81bc5ba52bce5354a0e819fe16dbd6941fb3847060e8efeb9e367121d8d6421042c82230751c1ea1d9f078bad6df044de6
+DIST OpenImageIO-2.5.4.0.tar.gz 48107518 BLAKE2B 38ba0f01976cfbe0f81c04fe8e64ff9c5ab530204d45a7b566882a7ec31c378c61a9b6bc62d6453c51e7ed33cd514a758b5d8224a646e568c9abd6274ebc6b0c SHA512 db9576bbc0b77da19db957710e86d8979e9987e91ff6246b513197fa98545904a7d34873cc2ba3ee60deed0a00a757dafb8dfa604f1e52097a1848aef43427cd
 DIST OpenImageIO-oexr-test-image-df16e765fee28a947244657cae3251959ae63c00.tar.gz 252131865 BLAKE2B f5f2477897f84148574cdd02b673c7bdff49d8f45026375095bb6f184230466e2e60020be7583e5a5aa0aa9c971e7251979d3eeb2ee620d47342b1e4435427e0 SHA512 e89c2935496c5fec2ebe1175e9b9bd3aecb23374ec3947057195ee6d31a883c1a67c4dc754bf0a5b68859093b5e169b70ffabd4736cf67f9e3dc09f3299fc54f
 DIST OpenImageIO-oexr-test-image-f17e353fbfcde3406fe02675f4d92aeae422a560.tar.gz 252226183 BLAKE2B b94fb08515e18821e5b88c10031ca53675c56f96397e00b4e186d8dfb9f8557bc935ff102d61835590dca6deeef90dba03b81fd76a7958ab4d0592c042c2130a SHA512 26b9b2cda9d48554b8a53f06bc20301f8ff77dc5e1d7caf9ec45aaaefd8578d3d4d4b2e0a1d1b0f697805fdc0c5d4bae4948cea21821df3006ac0f8b9020f85f
 DIST OpenImageIO-oiio-test-image-245e50edede2792205080eadc1dedce33ff5c1e4.tar.gz 137900826 BLAKE2B e89fd990b5e3ef23a853fc554066804c2a092b74a7ee54e3f1654bf419904ca094fef2703cd2f29d90c6d2bc5b8c8808cf9e66eb858c6d8495fdb7941f5029d7 SHA512 6568d4171c7dbd12d86099fd3dc35bfe2cbd46af84e58884900c5cea6ccea0139eabdb6d2194217ab3cffac56a81d37db4fbae57eb2a05f7916c27fe75a51ee6

diff --git a/media-libs/OpenImageIO/OpenImageIO-2.4.14.0.ebuild b/media-libs/OpenImageIO/OpenImageIO-2.4.14.0.ebuild
new file mode 100644
index 000000000000..b0a20f341536
--- /dev/null
+++ b/media-libs/OpenImageIO/OpenImageIO-2.4.14.0.ebuild
@@ -0,0 +1,205 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+TEST_OIIO_IMAGE_COMMIT="aae37a54e31c0e719edcec852994d052ecf6541e"
+TEST_OEXR_IMAGE_COMMIT="df16e765fee28a947244657cae3251959ae63c00"
+inherit cmake flag-o-matic font python-single-r1
+
+DESCRIPTION="A library for reading and writing images"
+HOMEPAGE="https://sites.google.com/site/openimageio/ https://github.com/OpenImageIO"
+SRC_URI="
+	https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/v${PV}.tar.gz -> ${P}.tar.gz
+	test? (
+		https://github.com/AcademySoftwareFoundation/OpenImageIO-images/archive/${TEST_OIIO_IMAGE_COMMIT}.tar.gz -> ${PN}-oiio-test-image-${TEST_OIIO_IMAGE_COMMIT}.tar.gz
+		https://github.com/AcademySoftwareFoundation/openexr-images/archive/${TEST_OEXR_IMAGE_COMMIT}.tar.gz -> ${PN}-oexr-test-image-${TEST_OEXR_IMAGE_COMMIT}.tar.gz
+	)
+"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
+
+X86_CPU_FEATURES=(
+	aes:aes sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2
+	avx:avx avx2:avx2 avx512f:avx512f f16c:f16c
+)
+CPU_FEATURES=( "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}" )
+
+IUSE="dicom doc ffmpeg gif gui jpeg jpeg2k opencv openvdb ptex python qt6 raw test +tools +truetype ${CPU_FEATURES[*]%:*}"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) gui? ( tools )"
+
+# Not quite working yet
+RESTRICT="!test? ( test )" # test"
+
+BDEPEND="
+	doc? (
+		app-doc/doxygen
+		dev-texlive/texlive-bibtexextra
+		dev-texlive/texlive-fontsextra
+		dev-texlive/texlive-fontutils
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexextra
+	)
+"
+RDEPEND="
+	dev-libs/boost:=
+	dev-cpp/robin-map
+	dev-libs/libfmt:=
+	dev-libs/pugixml:=
+	>=media-libs/libheif-1.13.0:=
+	jpeg? ( media-libs/libjpeg-turbo:= )
+	media-libs/libpng:0=
+	>=media-libs/libwebp-0.2.1:=
+	>=dev-libs/Imath-3.1.2-r4:=
+	>=media-libs/OpenColorIO-2.1.1-r4:=
+	>=media-libs/openexr-3:0=
+	media-libs/tiff:=
+	sys-libs/zlib:=
+	dicom? ( sci-libs/dcmtk )
+	ffmpeg? ( media-video/ffmpeg:= )
+	gif? ( media-libs/giflib:0= )
+	jpeg2k? ( >=media-libs/openjpeg-2.0:2= )
+	opencv? ( media-libs/opencv:= )
+	openvdb? (
+		dev-cpp/tbb:=
+		media-gfx/openvdb:=
+	)
+	ptex? ( media-libs/ptex:= )
+	python? (
+		${PYTHON_DEPS}
+		$(python_gen_cond_dep '
+			dev-libs/boost:=[python,${PYTHON_USEDEP}]
+			dev-python/numpy[${PYTHON_USEDEP}]
+			dev-python/pybind11[${PYTHON_USEDEP}]
+		')
+	)
+	gui? (
+		media-libs/libglvnd
+		!qt6? (
+			dev-qt/qtcore:5
+			dev-qt/qtgui:5
+			dev-qt/qtopengl:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? (
+			dev-qt/qtbase:6[gui,widgets,opengl]
+		)
+	)
+	raw? ( media-libs/libraw:= )
+	truetype? ( media-libs/freetype:2= )
+"
+DEPEND="
+	${RDEPEND}
+"
+
+DOCS=(
+	CHANGES.md
+	CREDITS.md
+	README.md
+)
+
+pkg_setup() {
+	use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+	cmake_comment_add_subdirectory src/fonts
+
+	if use test ; then
+		mkdir -p "${BUILD_DIR}"/testsuite || die
+		mv "${WORKDIR}/${PN}-images-${TEST_OIIO_IMAGE_COMMIT}" "${BUILD_DIR}"/testsuite/oiio-images || die
+		mv "${WORKDIR}/openexr-images-${TEST_OEXR_IMAGE_COMMIT}" "${BUILD_DIR}"/testsuite/openexr-images || die
+	fi
+}
+
+src_configure() {
+	# Build with SIMD support
+	local cpufeature
+	local mysimd=()
+	for cpufeature in "${CPU_FEATURES[@]}"; do
+		use "${cpufeature%:*}" && mysimd+=("${cpufeature#*:}")
+	done
+
+	# If no CPU SIMDs were used, completely disable them
+	[[ -z ${mysimd[*]} ]] && mysimd=("0")
+
+	# This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
+	# Even if there are no SIMD features selected, it seems like the code will turn on NEON support if it is available.
+	use arm64 && append-flags -flax-vector-conversions
+
+	local mycmakeargs=(
+		"-DVERBOSE=ON"
+		"-DOIIO_BUILD_TOOLS=$(usex tools)"
+		"-DBUILD_TESTING=$(usex test)"
+		"-DOIIO_BUILD_TESTS=$(usex test)"
+		"-DOIIO_DOWNLOAD_MISSING_TESTDATA=OFF"
+		"-DINSTALL_FONTS=OFF"
+		"-DBUILD_DOCS=$(usex doc)"
+		"-DINSTALL_DOCS=$(usex doc)"
+		"-DSTOP_ON_WARNING=OFF"
+		"-DUSE_CCACHE=OFF"
+		"-DUSE_DCMTK=$(usex dicom)"
+		"-DUSE_EXTERNAL_PUGIXML=ON"
+		"-DUSE_JPEGTURBO=ON"
+		"-DUSE_NUKE=OFF" # not in Gentoo
+		"-DUSE_FFMPEG=$(usex ffmpeg)"
+		"-DUSE_GIF=$(usex gif)"
+		"-DUSE_OPENJPEG=$(usex jpeg2k)"
+		"-DUSE_OPENCV=$(usex opencv)"
+		"-DUSE_OPENVDB=$(usex openvdb)"
+		"-DUSE_PTEX=$(usex ptex)"
+		"-DUSE_PYTHON=$(usex python)"
+		"-DUSE_LIBRAW=$(usex raw)"
+		"-DUSE_FREETYPE=$(usex truetype)"
+		"-DUSE_SIMD=$(local IFS=','; echo "${mysimd[*]}")"
+	)
+
+	if use gui; then
+		mycmakeargs+=( -DENABLE_IV=ON -DUSE_OPENGL=ON -DUSE_QT=ON )
+		if use qt6; then
+			mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=ON )
+		else
+			mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON )
+		fi
+	else
+		mycmakeargs+=( -DENABLE_IV=OFF -DUSE_QT=OFF )
+	fi
+
+	if use python; then
+		mycmakeargs+=(
+			"-DPYTHON_VERSION=${EPYTHON#python}"
+			"-DPYTHON_SITE_DIR=$(python_get_sitedir)"
+		)
+	fi
+
+	cmake_src_configure
+}
+
+src_test() {
+	# TODO: investigate failures
+	local myctestargs=(
+		-E "(oiiotool|maketx|oiiotool-maketx|texture-crop|texture-crop.batch|texture-half|texture-half.batch|texture-uint16|texture-uint16.batch|texture-interp-bilinear|texture-interp-bilinear.batch|texture-interp-closest|texture-interp-closest.batch|texture-levels-stochaniso|texture-levels-stochaniso.batch|texture-levels-stochmip|texture-levels-stochmip.batch|texture-mip-onelevel|texture-mip-onelevel.batch|texture-mip-stochastictrilinear|texture-mip-stochastictrilinear.batch|texture-mip-stochasticaniso|texture-mip-stochasticaniso.batch|texture-uint8|texture-uint8.batch|texture-skinny|texture-skinny.batch|texture-icwrite|texture-icwrite.batch|jpeg2000-broken|openexr-damaged|openvdb-broken|texture-texture3d-broken|texture-texture3d-broken.batch|psd|ptex-broken|raw-broken|targa|tiff-depths|zfile|unit_simd|cineon|dds|openvdb.batch-broken|texture-texture3d.batch-broken|cmake-consumer|texture-udim|texture-udim2|texture-udim.batch|texture-udim2.batch)"
+	)
+
+	cmake_src_test
+}
+
+src_install() {
+	cmake_src_install
+	# can't use font_src_install
+	# it does directory hierarchy recreation
+	FONT_S=(
+		"${S}/src/fonts/Droid_Sans"
+		"${S}/src/fonts/Droid_Sans_Mono"
+		"${S}/src/fonts/Droid_Serif"
+	)
+	insinto "${FONTDIR}"
+	for dir in "${FONT_S[@]}"; do
+		doins "${dir}"/*.ttf
+	done
+}

diff --git a/media-libs/OpenImageIO/OpenImageIO-2.4.15.0.ebuild b/media-libs/OpenImageIO/OpenImageIO-2.4.15.0.ebuild
new file mode 100644
index 000000000000..b0a20f341536
--- /dev/null
+++ b/media-libs/OpenImageIO/OpenImageIO-2.4.15.0.ebuild
@@ -0,0 +1,205 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+TEST_OIIO_IMAGE_COMMIT="aae37a54e31c0e719edcec852994d052ecf6541e"
+TEST_OEXR_IMAGE_COMMIT="df16e765fee28a947244657cae3251959ae63c00"
+inherit cmake flag-o-matic font python-single-r1
+
+DESCRIPTION="A library for reading and writing images"
+HOMEPAGE="https://sites.google.com/site/openimageio/ https://github.com/OpenImageIO"
+SRC_URI="
+	https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/v${PV}.tar.gz -> ${P}.tar.gz
+	test? (
+		https://github.com/AcademySoftwareFoundation/OpenImageIO-images/archive/${TEST_OIIO_IMAGE_COMMIT}.tar.gz -> ${PN}-oiio-test-image-${TEST_OIIO_IMAGE_COMMIT}.tar.gz
+		https://github.com/AcademySoftwareFoundation/openexr-images/archive/${TEST_OEXR_IMAGE_COMMIT}.tar.gz -> ${PN}-oexr-test-image-${TEST_OEXR_IMAGE_COMMIT}.tar.gz
+	)
+"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
+
+X86_CPU_FEATURES=(
+	aes:aes sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2
+	avx:avx avx2:avx2 avx512f:avx512f f16c:f16c
+)
+CPU_FEATURES=( "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}" )
+
+IUSE="dicom doc ffmpeg gif gui jpeg jpeg2k opencv openvdb ptex python qt6 raw test +tools +truetype ${CPU_FEATURES[*]%:*}"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) gui? ( tools )"
+
+# Not quite working yet
+RESTRICT="!test? ( test )" # test"
+
+BDEPEND="
+	doc? (
+		app-doc/doxygen
+		dev-texlive/texlive-bibtexextra
+		dev-texlive/texlive-fontsextra
+		dev-texlive/texlive-fontutils
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexextra
+	)
+"
+RDEPEND="
+	dev-libs/boost:=
+	dev-cpp/robin-map
+	dev-libs/libfmt:=
+	dev-libs/pugixml:=
+	>=media-libs/libheif-1.13.0:=
+	jpeg? ( media-libs/libjpeg-turbo:= )
+	media-libs/libpng:0=
+	>=media-libs/libwebp-0.2.1:=
+	>=dev-libs/Imath-3.1.2-r4:=
+	>=media-libs/OpenColorIO-2.1.1-r4:=
+	>=media-libs/openexr-3:0=
+	media-libs/tiff:=
+	sys-libs/zlib:=
+	dicom? ( sci-libs/dcmtk )
+	ffmpeg? ( media-video/ffmpeg:= )
+	gif? ( media-libs/giflib:0= )
+	jpeg2k? ( >=media-libs/openjpeg-2.0:2= )
+	opencv? ( media-libs/opencv:= )
+	openvdb? (
+		dev-cpp/tbb:=
+		media-gfx/openvdb:=
+	)
+	ptex? ( media-libs/ptex:= )
+	python? (
+		${PYTHON_DEPS}
+		$(python_gen_cond_dep '
+			dev-libs/boost:=[python,${PYTHON_USEDEP}]
+			dev-python/numpy[${PYTHON_USEDEP}]
+			dev-python/pybind11[${PYTHON_USEDEP}]
+		')
+	)
+	gui? (
+		media-libs/libglvnd
+		!qt6? (
+			dev-qt/qtcore:5
+			dev-qt/qtgui:5
+			dev-qt/qtopengl:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? (
+			dev-qt/qtbase:6[gui,widgets,opengl]
+		)
+	)
+	raw? ( media-libs/libraw:= )
+	truetype? ( media-libs/freetype:2= )
+"
+DEPEND="
+	${RDEPEND}
+"
+
+DOCS=(
+	CHANGES.md
+	CREDITS.md
+	README.md
+)
+
+pkg_setup() {
+	use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+	cmake_comment_add_subdirectory src/fonts
+
+	if use test ; then
+		mkdir -p "${BUILD_DIR}"/testsuite || die
+		mv "${WORKDIR}/${PN}-images-${TEST_OIIO_IMAGE_COMMIT}" "${BUILD_DIR}"/testsuite/oiio-images || die
+		mv "${WORKDIR}/openexr-images-${TEST_OEXR_IMAGE_COMMIT}" "${BUILD_DIR}"/testsuite/openexr-images || die
+	fi
+}
+
+src_configure() {
+	# Build with SIMD support
+	local cpufeature
+	local mysimd=()
+	for cpufeature in "${CPU_FEATURES[@]}"; do
+		use "${cpufeature%:*}" && mysimd+=("${cpufeature#*:}")
+	done
+
+	# If no CPU SIMDs were used, completely disable them
+	[[ -z ${mysimd[*]} ]] && mysimd=("0")
+
+	# This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
+	# Even if there are no SIMD features selected, it seems like the code will turn on NEON support if it is available.
+	use arm64 && append-flags -flax-vector-conversions
+
+	local mycmakeargs=(
+		"-DVERBOSE=ON"
+		"-DOIIO_BUILD_TOOLS=$(usex tools)"
+		"-DBUILD_TESTING=$(usex test)"
+		"-DOIIO_BUILD_TESTS=$(usex test)"
+		"-DOIIO_DOWNLOAD_MISSING_TESTDATA=OFF"
+		"-DINSTALL_FONTS=OFF"
+		"-DBUILD_DOCS=$(usex doc)"
+		"-DINSTALL_DOCS=$(usex doc)"
+		"-DSTOP_ON_WARNING=OFF"
+		"-DUSE_CCACHE=OFF"
+		"-DUSE_DCMTK=$(usex dicom)"
+		"-DUSE_EXTERNAL_PUGIXML=ON"
+		"-DUSE_JPEGTURBO=ON"
+		"-DUSE_NUKE=OFF" # not in Gentoo
+		"-DUSE_FFMPEG=$(usex ffmpeg)"
+		"-DUSE_GIF=$(usex gif)"
+		"-DUSE_OPENJPEG=$(usex jpeg2k)"
+		"-DUSE_OPENCV=$(usex opencv)"
+		"-DUSE_OPENVDB=$(usex openvdb)"
+		"-DUSE_PTEX=$(usex ptex)"
+		"-DUSE_PYTHON=$(usex python)"
+		"-DUSE_LIBRAW=$(usex raw)"
+		"-DUSE_FREETYPE=$(usex truetype)"
+		"-DUSE_SIMD=$(local IFS=','; echo "${mysimd[*]}")"
+	)
+
+	if use gui; then
+		mycmakeargs+=( -DENABLE_IV=ON -DUSE_OPENGL=ON -DUSE_QT=ON )
+		if use qt6; then
+			mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=ON )
+		else
+			mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON )
+		fi
+	else
+		mycmakeargs+=( -DENABLE_IV=OFF -DUSE_QT=OFF )
+	fi
+
+	if use python; then
+		mycmakeargs+=(
+			"-DPYTHON_VERSION=${EPYTHON#python}"
+			"-DPYTHON_SITE_DIR=$(python_get_sitedir)"
+		)
+	fi
+
+	cmake_src_configure
+}
+
+src_test() {
+	# TODO: investigate failures
+	local myctestargs=(
+		-E "(oiiotool|maketx|oiiotool-maketx|texture-crop|texture-crop.batch|texture-half|texture-half.batch|texture-uint16|texture-uint16.batch|texture-interp-bilinear|texture-interp-bilinear.batch|texture-interp-closest|texture-interp-closest.batch|texture-levels-stochaniso|texture-levels-stochaniso.batch|texture-levels-stochmip|texture-levels-stochmip.batch|texture-mip-onelevel|texture-mip-onelevel.batch|texture-mip-stochastictrilinear|texture-mip-stochastictrilinear.batch|texture-mip-stochasticaniso|texture-mip-stochasticaniso.batch|texture-uint8|texture-uint8.batch|texture-skinny|texture-skinny.batch|texture-icwrite|texture-icwrite.batch|jpeg2000-broken|openexr-damaged|openvdb-broken|texture-texture3d-broken|texture-texture3d-broken.batch|psd|ptex-broken|raw-broken|targa|tiff-depths|zfile|unit_simd|cineon|dds|openvdb.batch-broken|texture-texture3d.batch-broken|cmake-consumer|texture-udim|texture-udim2|texture-udim.batch|texture-udim2.batch)"
+	)
+
+	cmake_src_test
+}
+
+src_install() {
+	cmake_src_install
+	# can't use font_src_install
+	# it does directory hierarchy recreation
+	FONT_S=(
+		"${S}/src/fonts/Droid_Sans"
+		"${S}/src/fonts/Droid_Sans_Mono"
+		"${S}/src/fonts/Droid_Serif"
+	)
+	insinto "${FONTDIR}"
+	for dir in "${FONT_S[@]}"; do
+		doins "${dir}"/*.ttf
+	done
+}

diff --git a/media-libs/OpenImageIO/OpenImageIO-2.4.16.0.ebuild b/media-libs/OpenImageIO/OpenImageIO-2.4.16.0.ebuild
new file mode 100644
index 000000000000..b0a20f341536
--- /dev/null
+++ b/media-libs/OpenImageIO/OpenImageIO-2.4.16.0.ebuild
@@ -0,0 +1,205 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+TEST_OIIO_IMAGE_COMMIT="aae37a54e31c0e719edcec852994d052ecf6541e"
+TEST_OEXR_IMAGE_COMMIT="df16e765fee28a947244657cae3251959ae63c00"
+inherit cmake flag-o-matic font python-single-r1
+
+DESCRIPTION="A library for reading and writing images"
+HOMEPAGE="https://sites.google.com/site/openimageio/ https://github.com/OpenImageIO"
+SRC_URI="
+	https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/v${PV}.tar.gz -> ${P}.tar.gz
+	test? (
+		https://github.com/AcademySoftwareFoundation/OpenImageIO-images/archive/${TEST_OIIO_IMAGE_COMMIT}.tar.gz -> ${PN}-oiio-test-image-${TEST_OIIO_IMAGE_COMMIT}.tar.gz
+		https://github.com/AcademySoftwareFoundation/openexr-images/archive/${TEST_OEXR_IMAGE_COMMIT}.tar.gz -> ${PN}-oexr-test-image-${TEST_OEXR_IMAGE_COMMIT}.tar.gz
+	)
+"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
+
+X86_CPU_FEATURES=(
+	aes:aes sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2
+	avx:avx avx2:avx2 avx512f:avx512f f16c:f16c
+)
+CPU_FEATURES=( "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}" )
+
+IUSE="dicom doc ffmpeg gif gui jpeg jpeg2k opencv openvdb ptex python qt6 raw test +tools +truetype ${CPU_FEATURES[*]%:*}"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) gui? ( tools )"
+
+# Not quite working yet
+RESTRICT="!test? ( test )" # test"
+
+BDEPEND="
+	doc? (
+		app-doc/doxygen
+		dev-texlive/texlive-bibtexextra
+		dev-texlive/texlive-fontsextra
+		dev-texlive/texlive-fontutils
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexextra
+	)
+"
+RDEPEND="
+	dev-libs/boost:=
+	dev-cpp/robin-map
+	dev-libs/libfmt:=
+	dev-libs/pugixml:=
+	>=media-libs/libheif-1.13.0:=
+	jpeg? ( media-libs/libjpeg-turbo:= )
+	media-libs/libpng:0=
+	>=media-libs/libwebp-0.2.1:=
+	>=dev-libs/Imath-3.1.2-r4:=
+	>=media-libs/OpenColorIO-2.1.1-r4:=
+	>=media-libs/openexr-3:0=
+	media-libs/tiff:=
+	sys-libs/zlib:=
+	dicom? ( sci-libs/dcmtk )
+	ffmpeg? ( media-video/ffmpeg:= )
+	gif? ( media-libs/giflib:0= )
+	jpeg2k? ( >=media-libs/openjpeg-2.0:2= )
+	opencv? ( media-libs/opencv:= )
+	openvdb? (
+		dev-cpp/tbb:=
+		media-gfx/openvdb:=
+	)
+	ptex? ( media-libs/ptex:= )
+	python? (
+		${PYTHON_DEPS}
+		$(python_gen_cond_dep '
+			dev-libs/boost:=[python,${PYTHON_USEDEP}]
+			dev-python/numpy[${PYTHON_USEDEP}]
+			dev-python/pybind11[${PYTHON_USEDEP}]
+		')
+	)
+	gui? (
+		media-libs/libglvnd
+		!qt6? (
+			dev-qt/qtcore:5
+			dev-qt/qtgui:5
+			dev-qt/qtopengl:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? (
+			dev-qt/qtbase:6[gui,widgets,opengl]
+		)
+	)
+	raw? ( media-libs/libraw:= )
+	truetype? ( media-libs/freetype:2= )
+"
+DEPEND="
+	${RDEPEND}
+"
+
+DOCS=(
+	CHANGES.md
+	CREDITS.md
+	README.md
+)
+
+pkg_setup() {
+	use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+	cmake_comment_add_subdirectory src/fonts
+
+	if use test ; then
+		mkdir -p "${BUILD_DIR}"/testsuite || die
+		mv "${WORKDIR}/${PN}-images-${TEST_OIIO_IMAGE_COMMIT}" "${BUILD_DIR}"/testsuite/oiio-images || die
+		mv "${WORKDIR}/openexr-images-${TEST_OEXR_IMAGE_COMMIT}" "${BUILD_DIR}"/testsuite/openexr-images || die
+	fi
+}
+
+src_configure() {
+	# Build with SIMD support
+	local cpufeature
+	local mysimd=()
+	for cpufeature in "${CPU_FEATURES[@]}"; do
+		use "${cpufeature%:*}" && mysimd+=("${cpufeature#*:}")
+	done
+
+	# If no CPU SIMDs were used, completely disable them
+	[[ -z ${mysimd[*]} ]] && mysimd=("0")
+
+	# This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
+	# Even if there are no SIMD features selected, it seems like the code will turn on NEON support if it is available.
+	use arm64 && append-flags -flax-vector-conversions
+
+	local mycmakeargs=(
+		"-DVERBOSE=ON"
+		"-DOIIO_BUILD_TOOLS=$(usex tools)"
+		"-DBUILD_TESTING=$(usex test)"
+		"-DOIIO_BUILD_TESTS=$(usex test)"
+		"-DOIIO_DOWNLOAD_MISSING_TESTDATA=OFF"
+		"-DINSTALL_FONTS=OFF"
+		"-DBUILD_DOCS=$(usex doc)"
+		"-DINSTALL_DOCS=$(usex doc)"
+		"-DSTOP_ON_WARNING=OFF"
+		"-DUSE_CCACHE=OFF"
+		"-DUSE_DCMTK=$(usex dicom)"
+		"-DUSE_EXTERNAL_PUGIXML=ON"
+		"-DUSE_JPEGTURBO=ON"
+		"-DUSE_NUKE=OFF" # not in Gentoo
+		"-DUSE_FFMPEG=$(usex ffmpeg)"
+		"-DUSE_GIF=$(usex gif)"
+		"-DUSE_OPENJPEG=$(usex jpeg2k)"
+		"-DUSE_OPENCV=$(usex opencv)"
+		"-DUSE_OPENVDB=$(usex openvdb)"
+		"-DUSE_PTEX=$(usex ptex)"
+		"-DUSE_PYTHON=$(usex python)"
+		"-DUSE_LIBRAW=$(usex raw)"
+		"-DUSE_FREETYPE=$(usex truetype)"
+		"-DUSE_SIMD=$(local IFS=','; echo "${mysimd[*]}")"
+	)
+
+	if use gui; then
+		mycmakeargs+=( -DENABLE_IV=ON -DUSE_OPENGL=ON -DUSE_QT=ON )
+		if use qt6; then
+			mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=ON )
+		else
+			mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON )
+		fi
+	else
+		mycmakeargs+=( -DENABLE_IV=OFF -DUSE_QT=OFF )
+	fi
+
+	if use python; then
+		mycmakeargs+=(
+			"-DPYTHON_VERSION=${EPYTHON#python}"
+			"-DPYTHON_SITE_DIR=$(python_get_sitedir)"
+		)
+	fi
+
+	cmake_src_configure
+}
+
+src_test() {
+	# TODO: investigate failures
+	local myctestargs=(
+		-E "(oiiotool|maketx|oiiotool-maketx|texture-crop|texture-crop.batch|texture-half|texture-half.batch|texture-uint16|texture-uint16.batch|texture-interp-bilinear|texture-interp-bilinear.batch|texture-interp-closest|texture-interp-closest.batch|texture-levels-stochaniso|texture-levels-stochaniso.batch|texture-levels-stochmip|texture-levels-stochmip.batch|texture-mip-onelevel|texture-mip-onelevel.batch|texture-mip-stochastictrilinear|texture-mip-stochastictrilinear.batch|texture-mip-stochasticaniso|texture-mip-stochasticaniso.batch|texture-uint8|texture-uint8.batch|texture-skinny|texture-skinny.batch|texture-icwrite|texture-icwrite.batch|jpeg2000-broken|openexr-damaged|openvdb-broken|texture-texture3d-broken|texture-texture3d-broken.batch|psd|ptex-broken|raw-broken|targa|tiff-depths|zfile|unit_simd|cineon|dds|openvdb.batch-broken|texture-texture3d.batch-broken|cmake-consumer|texture-udim|texture-udim2|texture-udim.batch|texture-udim2.batch)"
+	)
+
+	cmake_src_test
+}
+
+src_install() {
+	cmake_src_install
+	# can't use font_src_install
+	# it does directory hierarchy recreation
+	FONT_S=(
+		"${S}/src/fonts/Droid_Sans"
+		"${S}/src/fonts/Droid_Sans_Mono"
+		"${S}/src/fonts/Droid_Serif"
+	)
+	insinto "${FONTDIR}"
+	for dir in "${FONT_S[@]}"; do
+		doins "${dir}"/*.ttf
+	done
+}

diff --git a/media-libs/OpenImageIO/OpenImageIO-2.5.4.0.ebuild b/media-libs/OpenImageIO/OpenImageIO-2.5.4.0.ebuild
new file mode 100644
index 000000000000..b0a20f341536
--- /dev/null
+++ b/media-libs/OpenImageIO/OpenImageIO-2.5.4.0.ebuild
@@ -0,0 +1,205 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+TEST_OIIO_IMAGE_COMMIT="aae37a54e31c0e719edcec852994d052ecf6541e"
+TEST_OEXR_IMAGE_COMMIT="df16e765fee28a947244657cae3251959ae63c00"
+inherit cmake flag-o-matic font python-single-r1
+
+DESCRIPTION="A library for reading and writing images"
+HOMEPAGE="https://sites.google.com/site/openimageio/ https://github.com/OpenImageIO"
+SRC_URI="
+	https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/v${PV}.tar.gz -> ${P}.tar.gz
+	test? (
+		https://github.com/AcademySoftwareFoundation/OpenImageIO-images/archive/${TEST_OIIO_IMAGE_COMMIT}.tar.gz -> ${PN}-oiio-test-image-${TEST_OIIO_IMAGE_COMMIT}.tar.gz
+		https://github.com/AcademySoftwareFoundation/openexr-images/archive/${TEST_OEXR_IMAGE_COMMIT}.tar.gz -> ${PN}-oexr-test-image-${TEST_OEXR_IMAGE_COMMIT}.tar.gz
+	)
+"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
+
+X86_CPU_FEATURES=(
+	aes:aes sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2
+	avx:avx avx2:avx2 avx512f:avx512f f16c:f16c
+)
+CPU_FEATURES=( "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}" )
+
+IUSE="dicom doc ffmpeg gif gui jpeg jpeg2k opencv openvdb ptex python qt6 raw test +tools +truetype ${CPU_FEATURES[*]%:*}"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) gui? ( tools )"
+
+# Not quite working yet
+RESTRICT="!test? ( test )" # test"
+
+BDEPEND="
+	doc? (
+		app-doc/doxygen
+		dev-texlive/texlive-bibtexextra
+		dev-texlive/texlive-fontsextra
+		dev-texlive/texlive-fontutils
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexextra
+	)
+"
+RDEPEND="
+	dev-libs/boost:=
+	dev-cpp/robin-map
+	dev-libs/libfmt:=
+	dev-libs/pugixml:=
+	>=media-libs/libheif-1.13.0:=
+	jpeg? ( media-libs/libjpeg-turbo:= )
+	media-libs/libpng:0=
+	>=media-libs/libwebp-0.2.1:=
+	>=dev-libs/Imath-3.1.2-r4:=
+	>=media-libs/OpenColorIO-2.1.1-r4:=
+	>=media-libs/openexr-3:0=
+	media-libs/tiff:=
+	sys-libs/zlib:=
+	dicom? ( sci-libs/dcmtk )
+	ffmpeg? ( media-video/ffmpeg:= )
+	gif? ( media-libs/giflib:0= )
+	jpeg2k? ( >=media-libs/openjpeg-2.0:2= )
+	opencv? ( media-libs/opencv:= )
+	openvdb? (
+		dev-cpp/tbb:=
+		media-gfx/openvdb:=
+	)
+	ptex? ( media-libs/ptex:= )
+	python? (
+		${PYTHON_DEPS}
+		$(python_gen_cond_dep '
+			dev-libs/boost:=[python,${PYTHON_USEDEP}]
+			dev-python/numpy[${PYTHON_USEDEP}]
+			dev-python/pybind11[${PYTHON_USEDEP}]
+		')
+	)
+	gui? (
+		media-libs/libglvnd
+		!qt6? (
+			dev-qt/qtcore:5
+			dev-qt/qtgui:5
+			dev-qt/qtopengl:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? (
+			dev-qt/qtbase:6[gui,widgets,opengl]
+		)
+	)
+	raw? ( media-libs/libraw:= )
+	truetype? ( media-libs/freetype:2= )
+"
+DEPEND="
+	${RDEPEND}
+"
+
+DOCS=(
+	CHANGES.md
+	CREDITS.md
+	README.md
+)
+
+pkg_setup() {
+	use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+	cmake_comment_add_subdirectory src/fonts
+
+	if use test ; then
+		mkdir -p "${BUILD_DIR}"/testsuite || die
+		mv "${WORKDIR}/${PN}-images-${TEST_OIIO_IMAGE_COMMIT}" "${BUILD_DIR}"/testsuite/oiio-images || die
+		mv "${WORKDIR}/openexr-images-${TEST_OEXR_IMAGE_COMMIT}" "${BUILD_DIR}"/testsuite/openexr-images || die
+	fi
+}
+
+src_configure() {
+	# Build with SIMD support
+	local cpufeature
+	local mysimd=()
+	for cpufeature in "${CPU_FEATURES[@]}"; do
+		use "${cpufeature%:*}" && mysimd+=("${cpufeature#*:}")
+	done
+
+	# If no CPU SIMDs were used, completely disable them
+	[[ -z ${mysimd[*]} ]] && mysimd=("0")
+
+	# This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
+	# Even if there are no SIMD features selected, it seems like the code will turn on NEON support if it is available.
+	use arm64 && append-flags -flax-vector-conversions
+
+	local mycmakeargs=(
+		"-DVERBOSE=ON"
+		"-DOIIO_BUILD_TOOLS=$(usex tools)"
+		"-DBUILD_TESTING=$(usex test)"
+		"-DOIIO_BUILD_TESTS=$(usex test)"
+		"-DOIIO_DOWNLOAD_MISSING_TESTDATA=OFF"
+		"-DINSTALL_FONTS=OFF"
+		"-DBUILD_DOCS=$(usex doc)"
+		"-DINSTALL_DOCS=$(usex doc)"
+		"-DSTOP_ON_WARNING=OFF"
+		"-DUSE_CCACHE=OFF"
+		"-DUSE_DCMTK=$(usex dicom)"
+		"-DUSE_EXTERNAL_PUGIXML=ON"
+		"-DUSE_JPEGTURBO=ON"
+		"-DUSE_NUKE=OFF" # not in Gentoo
+		"-DUSE_FFMPEG=$(usex ffmpeg)"
+		"-DUSE_GIF=$(usex gif)"
+		"-DUSE_OPENJPEG=$(usex jpeg2k)"
+		"-DUSE_OPENCV=$(usex opencv)"
+		"-DUSE_OPENVDB=$(usex openvdb)"
+		"-DUSE_PTEX=$(usex ptex)"
+		"-DUSE_PYTHON=$(usex python)"
+		"-DUSE_LIBRAW=$(usex raw)"
+		"-DUSE_FREETYPE=$(usex truetype)"
+		"-DUSE_SIMD=$(local IFS=','; echo "${mysimd[*]}")"
+	)
+
+	if use gui; then
+		mycmakeargs+=( -DENABLE_IV=ON -DUSE_OPENGL=ON -DUSE_QT=ON )
+		if use qt6; then
+			mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=ON )
+		else
+			mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON )
+		fi
+	else
+		mycmakeargs+=( -DENABLE_IV=OFF -DUSE_QT=OFF )
+	fi
+
+	if use python; then
+		mycmakeargs+=(
+			"-DPYTHON_VERSION=${EPYTHON#python}"
+			"-DPYTHON_SITE_DIR=$(python_get_sitedir)"
+		)
+	fi
+
+	cmake_src_configure
+}
+
+src_test() {
+	# TODO: investigate failures
+	local myctestargs=(
+		-E "(oiiotool|maketx|oiiotool-maketx|texture-crop|texture-crop.batch|texture-half|texture-half.batch|texture-uint16|texture-uint16.batch|texture-interp-bilinear|texture-interp-bilinear.batch|texture-interp-closest|texture-interp-closest.batch|texture-levels-stochaniso|texture-levels-stochaniso.batch|texture-levels-stochmip|texture-levels-stochmip.batch|texture-mip-onelevel|texture-mip-onelevel.batch|texture-mip-stochastictrilinear|texture-mip-stochastictrilinear.batch|texture-mip-stochasticaniso|texture-mip-stochasticaniso.batch|texture-uint8|texture-uint8.batch|texture-skinny|texture-skinny.batch|texture-icwrite|texture-icwrite.batch|jpeg2000-broken|openexr-damaged|openvdb-broken|texture-texture3d-broken|texture-texture3d-broken.batch|psd|ptex-broken|raw-broken|targa|tiff-depths|zfile|unit_simd|cineon|dds|openvdb.batch-broken|texture-texture3d.batch-broken|cmake-consumer|texture-udim|texture-udim2|texture-udim.batch|texture-udim2.batch)"
+	)
+
+	cmake_src_test
+}
+
+src_install() {
+	cmake_src_install
+	# can't use font_src_install
+	# it does directory hierarchy recreation
+	FONT_S=(
+		"${S}/src/fonts/Droid_Sans"
+		"${S}/src/fonts/Droid_Sans_Mono"
+		"${S}/src/fonts/Droid_Serif"
+	)
+	insinto "${FONTDIR}"
+	for dir in "${FONT_S[@]}"; do
+		doins "${dir}"/*.ttf
+	done
+}