summaryrefslogtreecommitdiff
path: root/media-libs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-03-18 18:50:06 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-03-18 18:50:06 +0000
commitbc7e0dbdbd194a8c2e09f82e1a5a4ea5e1b556f4 (patch)
treecb9186c88b5cfbd6c51e4b283677075c5c6ea38e /media-libs
parentebb07c94f800907e02d2a6b92c1bc757b2f86f49 (diff)
gentoo auto-resync : 18:03:2024 - 18:50:06
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/Manifest.gzbin69336 -> 69514 bytes
-rw-r--r--media-libs/libxmp/Manifest4
-rw-r--r--media-libs/libxmp/libxmp-4.6.0.ebuild28
-rw-r--r--media-libs/libxmp/libxmp-9999.ebuild9
-rw-r--r--media-libs/opencolorio/Manifest2
-rw-r--r--media-libs/opencolorio/opencolorio-2.3.2.ebuild175
-rw-r--r--media-libs/opencv/Manifest10
-rw-r--r--media-libs/opencv/files/opencv-4.9.0-ade-0.1.2d.tar.gz.patch18
-rw-r--r--media-libs/opencv/files/opencv-4.9.0-cmake-cleanup.patch31
-rw-r--r--media-libs/opencv/files/opencv-4.9.0-drop-python2-detection.patch66
-rw-r--r--media-libs/opencv/metadata.xml4
-rw-r--r--media-libs/opencv/opencv-4.9.0.ebuild1015
-rw-r--r--media-libs/openimageio/Manifest20
-rw-r--r--media-libs/openimageio/files/openimageio-2.5.8.0-fits.patch19
-rw-r--r--media-libs/openimageio/files/openimageio-2.5.8.0-fix-tests.patch230
-rw-r--r--media-libs/openimageio/files/openimageio-2.5.8.0-fix-unit_simd.patch18
-rw-r--r--media-libs/openimageio/metadata.xml1
-rw-r--r--media-libs/openimageio/openimageio-2.5.9.0.ebuild262
-rw-r--r--media-libs/quirc/Manifest4
-rw-r--r--media-libs/quirc/metadata.xml21
-rw-r--r--media-libs/quirc/quirc-1.2.ebuild87
-rw-r--r--media-libs/quirc/quirc-9999.ebuild87
-rw-r--r--media-libs/sdl2-image/Manifest2
-rw-r--r--media-libs/sdl2-image/sdl2-image-2.8.2.ebuild1
24 files changed, 2106 insertions, 8 deletions
diff --git a/media-libs/Manifest.gz b/media-libs/Manifest.gz
index f04b0430faac..5364e49b48d5 100644
--- a/media-libs/Manifest.gz
+++ b/media-libs/Manifest.gz
Binary files differ
diff --git a/media-libs/libxmp/Manifest b/media-libs/libxmp/Manifest
index b46c29acf455..d69519102842 100644
--- a/media-libs/libxmp/Manifest
+++ b/media-libs/libxmp/Manifest
@@ -1,4 +1,6 @@
DIST libxmp-4.5.0.tar.gz 652983 BLAKE2B f583c309b4c4349eec73352d16bbd9b2b20fb48be101f0cba34a3597fce903442fbc203be50f940a7e3b8f53cc1bbf6ff91236fc27c6ec70b21ec17ad71bd6fb SHA512 71a57c7fcd696267c6e2d3cc12b43fe09adce9ed83f9f130755d3b2c2b984eb52e4ae4fad115ffeb07397c7cc4886fc3c4e01cbb1f047449228f7a557760cb1a
+DIST libxmp-4.6.0.tar.gz 738532 BLAKE2B d383cb2e8c15c27e9f55954a4ae2ead6978b7e073e647ab667a2c0bb15848ff582626611b3f274ac5075bcdb7b5cfdc1a4f95d2ea76dc0ea64dab595ba8ca1b8 SHA512 d287544c9b569515f1a3fa92d8d930097b252e84f86cba5dd70e9b4460d0fa70754ece45dcc7ec314e434d821b43207d700afb12c9df80b467d73e9d029baafe
EBUILD libxmp-4.5.0.ebuild 565 BLAKE2B 9690d84e64ec0f95c9c85cec98a0ba2f4ac5fce484367f85dfbe020bc459a9f9374ba9028e6d4c0f174cf6efe4ebb1d5d03e3f6ee06cde6baef6e6cb0f892c96 SHA512 a10f2dab757743fe740951d2acf1e3e0a7da07834de471b1a4ce3069198a95a55c3958ebff62609d3d9c80622593becf7159ce42d1e108414415b73ade5d7dbd
-EBUILD libxmp-9999.ebuild 566 BLAKE2B fc0d2683466296db5d05d47f2cfe5beee6c887341ea11a268f06f53e77a1fa26dd24125cde9b03c7f99e7069a967379bff637245c6b5482827f2cba95d01c334 SHA512 6d192f19669e8668849a2809956c92174422f38f06a5c1b61a77b344aada10e4b38ac78cfa65c5ce1f4a89e55e50e204148c860bfbefb695a3ab8c72caae82e8
+EBUILD libxmp-4.6.0.ebuild 598 BLAKE2B 98fccdd8fb44870cfcedee68d7842a6f0bd3949269d9ee3c2e41c3291e82982bd63150295baf80497bc5a735761e94c54e818c48fda385e914b4b63d7369c31e SHA512 3577d3a89f47028abf3d832bc19fa45305c3e4f16806dd5034e3949d90bba8e77078c3835ba3e32ca2ddf10ee6a4e02b935ba64843fe6bc040212e24d74bfa7f
+EBUILD libxmp-9999.ebuild 588 BLAKE2B e41633e95546950e8783f1d1d9533cc2d0eb74b0438044cc21bf4cca7fdb5b9e0debba1bb5af32f45d77c3f631823e7af58557aedaf7b40fba39cf121742dd13 SHA512 20725513d17f020c3ebc28e616adb3f364df6fbfb3e947b9a3f13a047f2464834f4143a31d3d1ee75ff09a26e87e3c799ad7f5dc8643479777f72648b917c8a7
MISC metadata.xml 246 BLAKE2B 03221de27616f3f7500121e460112bd248eaee25473a1866f22ad14529545303feeac5f21cd63d996a70ef4575780fabd63f8663a54174f4df7871090f39644d SHA512 79fe8212db6969bff7497a619d4e8f6c3118b490a69eb31e73a70cc788beb03715d4a6d3bca8f1be2756137a13334e29ce90956b5498e7581c91899069bbb8e9
diff --git a/media-libs/libxmp/libxmp-4.6.0.ebuild b/media-libs/libxmp/libxmp-4.6.0.ebuild
new file mode 100644
index 000000000000..3c9163a049d7
--- /dev/null
+++ b/media-libs/libxmp/libxmp-4.6.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Library that renders module files to PCM data"
+HOMEPAGE="https://github.com/libxmp/libxmp"
+
+if [[ ${PV} == *9999 ]] ; then
+ inherit autotools git-r3
+ EGIT_REPO_URI="https://github.com/libxmp/libxmp.git"
+else
+ SRC_URI="https://github.com/libxmp/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+# bzip2 depacker code is 0BSD
+LICENSE="LGPL-2.1+ MIT 0BSD"
+SLOT="0"
+
+src_prepare() {
+ default
+ [[ ${PV} == *9999 ]] && eautoreconf
+}
+
+src_compile() {
+ emake V=1
+}
diff --git a/media-libs/libxmp/libxmp-9999.ebuild b/media-libs/libxmp/libxmp-9999.ebuild
index f0deadcf7930..f6027f5b906c 100644
--- a/media-libs/libxmp/libxmp-9999.ebuild
+++ b/media-libs/libxmp/libxmp-9999.ebuild
@@ -1,10 +1,11 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Library that renders module files to PCM data"
HOMEPAGE="https://github.com/libxmp/libxmp"
+
if [[ ${PV} == *9999 ]] ; then
inherit autotools git-r3
EGIT_REPO_URI="https://github.com/libxmp/libxmp.git"
@@ -12,10 +13,10 @@ else
SRC_URI="https://github.com/libxmp/${PN}/releases/download/${P}/${P}.tar.gz"
KEYWORDS="~amd64"
fi
-LICENSE="LGPL-2.1+"
-SLOT="0"
-IUSE=""
+# bzip2 depacker code is 0BSD
+LICENSE="MIT 0BSD"
+SLOT="0"
src_prepare() {
default
diff --git a/media-libs/opencolorio/Manifest b/media-libs/opencolorio/Manifest
index 26eb4e08d909..987920ebcc4a 100644
--- a/media-libs/opencolorio/Manifest
+++ b/media-libs/opencolorio/Manifest
@@ -8,7 +8,9 @@ AUX opencolorio-2.3.0-support-yaml-cpp-0.8.0.patch 808 BLAKE2B aed4b9d8bf512e425
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
+DIST opencolorio-2.3.2.tar.gz 11443450 BLAKE2B 2573d2f229ba0349574d83883cd6534853164dc6a5866b203b65d4c0acbc54fc0aaf6ff4ecbec5506c6adafe48d57fb80a8b47c45b7b16e0c4ac94f5fbaffea3 SHA512 4c7547960623b058398a86d9c8335d31f2354a1ee7ba58fbc2d1ace698132b99e8f823c9b443a77545721da076569228f502f1f3f4deba44659571c6d12db133
EBUILD opencolorio-2.1.3.ebuild 3168 BLAKE2B 7e64eecf250f5f56b15dde6c7a283185f4bb95d939c771a98b0856eba91de18f02ae27ac354ef104c6eb515f79bfa49e5daa8b1f407347f3c1fb0706597a2261 SHA512 b5f4ec43b46270cc2b05875b722c70840822eb0a46f4b1fd6bcd781170a331d5ce9809aca4df1364666992059aba53ea6f20a4c88c6b2ac0015b2280c3bfd64d
EBUILD opencolorio-2.2.1.ebuild 3705 BLAKE2B 59712f2546a5411902a98368ec6cf97921c12cb515ba555e2736deea90e643be2ab5b86f567b9158bf5fa75a040fb632e8c7b9a9f053fb6d74c42ca769380bdd SHA512 a419232dde52910c34ee7ecb6270a735e15c414754916ba6fad1495f4f14cff9714637b3cc6536828e955e2c0c794ecd23ead6eb17a2436740ab5eb577ccbd5f
EBUILD opencolorio-2.3.0.ebuild 4606 BLAKE2B d907b310540d7124b311e36e897078559e9fb16ad944a183af464f3d4e88b859eab8325fea18686e756763689b6af209a0a19745897298185e7df65f338c1d7b SHA512 03887551e7376d62c51ba548aeef9a30bf4501097c40bf6315c499ada08ab8154cbb1d1fd5c6725636074045a3b07ea80b43ee38ad4717fa9b345e82ced4b766
+EBUILD opencolorio-2.3.2.ebuild 4828 BLAKE2B ab2968a92cc531228afb574a8929687cda99cc2dd77a2bdbbe9f6cf9ab4b87e3928aeb42624addb4e813cdb07adf89f6acc140f10b35f03b7c674d7ee3a3a4e2 SHA512 240c879214f442cad6a2ae6aae47f571580c0bdbedceaa4ab860d756e35a03d6b6d9a40fbe3abfff70dc01b6595b456b6f67827a35d9dc2c81dc7c67dcf64529
MISC metadata.xml 792 BLAKE2B 6b94c1223e756ef3179ab3442c134bf7881400434332691bc693a36c8bceb4db609dd143afb6a18192c7bfaa9ccb72015c215e08b3bd65fbdb3ccc2fb3ff713d SHA512 c1b3d44b5ce24813b3e07074ba2fe40c3af89033dfbe5a372b130be26fcfeba9fa9c2a0d9e6a695972dc402979aa732df27fd3c6128a8f3a51fe926ecb73cb25
diff --git a/media-libs/opencolorio/opencolorio-2.3.2.ebuild b/media-libs/opencolorio/opencolorio-2.3.2.ebuild
new file mode 100644
index 000000000000..66f32bcbc78c
--- /dev/null
+++ b/media-libs/opencolorio/opencolorio-2.3.2.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2024 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="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"
+CPU_USE=(
+ x86_{avx,avx2,avx512f,f16c,sse2,sse3,sse4_1,sse4_2,ssse3}
+ # requires https://github.com/DLTcollab/sse2neon
+ # arm_neon
+)
+IUSE="apps ${CPU_USE[*]/#/cpu_flags_} doc opengl python 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-text/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
+# compares floating point numbers for bit equality
+# compares floating point number string representations for equality
+# https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1361 Apr 4, 2021
+# https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1784 Apr 3, 2023
+RESTRICT="test" #"!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.2.1-adjust-python-installation.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=(
+ "-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"
+ # allow the user to tell OCIO to display more information when searching and building the dependencies.
+ # "-DOCIO_VERBOSE=YES"
+
+ "-DOCIO_USE_SIMD=ON"
+ )
+
+ if use amd64 || use x86 ; then
+ mycmakeargs+=(
+ "-DOCIO_USE_SSE2=$(usex cpu_flags_x86_sse2)"
+ "-DOCIO_USE_SSE3=$(usex cpu_flags_x86_sse3)"
+ "-DOCIO_USE_SSSE3=$(usex cpu_flags_x86_ssse3)"
+ "-DOCIO_USE_SSE4=$(usex cpu_flags_x86_sse4_1)"
+ "-DOCIO_USE_SSE42=$(usex cpu_flags_x86_sse4_2)"
+ "-DOCIO_USE_AVX=$(usex cpu_flags_x86_avx)"
+ "-DOCIO_USE_AVX2=$(usex cpu_flags_x86_avx2)"
+ "-DOCIO_USE_AVX512=$(usex cpu_flags_x86_avx512f)"
+ "-DOCIO_USE_F16C=$(usex cpu_flags_x86_f16c)"
+ )
+ fi
+
+ # requires https://github.com/DLTcollab/sse2neon
+ # if use arm || use arm64 ; then
+ # mycmakeargs+=(
+ # "-DOCIO_USE_SSE2NEON=$(usex cpu_flags_arm_neon)"
+ # )
+ # fi
+
+ use python && mycmakeargs+=(
+ "-DOCIO_PYTHON_VERSION=${EPYTHON/python/}"
+ "-DPython_EXECUTABLE=${PYTHON}"
+ "-DPYTHON_VARIANT_PATH=$(python_get_sitedir)"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local myctestargs=(
+ -j1
+ )
+ virtx cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ if use doc; then
+ # there are already files in ${ED}/usr/share/doc/${PF}
+ mv "${ED}/usr/share/doc/OpenColorIO/"* "${ED}/usr/share/doc/${PF}" || die
+ rmdir "${ED}/usr/share/doc/OpenColorIO" || die
+ fi
+}
diff --git a/media-libs/opencv/Manifest b/media-libs/opencv/Manifest
index 210fb7d2e4be..9e372d5cbeb4 100644
--- a/media-libs/opencv/Manifest
+++ b/media-libs/opencv/Manifest
@@ -14,16 +14,24 @@ AUX opencv-4.8.1-protobuf-22.patch 6895 BLAKE2B 5f4f6d249f523de5722b628cd2233b0b
AUX opencv-4.8.1-python3_12-support.patch 1354 BLAKE2B 6f1e5c7b8c3ddd3bbbe3bc9f4123ef114312155cab5eec34e431574cbc7e564f1ac87152a8adf11af75d386b2701bf4f7c337eb1941a6c699170b400013d5683 SHA512 2638f1cfb638de73e5e8a46b415844961d02ae9f398d9748535ec392c410ece010b3ee8d82a6510a153879f213aa07008f445e1cfa1144e7fd9ffbfe13e94e82
AUX opencv-4.8.1-use-system-flatbuffers.patch 1522 BLAKE2B a9000e3269266cf9e85b6ba247fd977eb1c2e0bf771d0ba1432ba1f56802f72062402e55e7327e91085be870338e452ac08ec8a958d3cf51fdd9a8daf0cfee76 SHA512 50d7ee7de6513ea56974c598641c2d9edb7679f273f6313c1dd7e68ba667688ad50fd61691661702fab75ddfa1165cd96a52ebebd19c8c09116612c90c8b11d3
AUX opencv-4.8.1-use-system-opencl.patch 933 BLAKE2B 557448d74771f6b9fc8b2fa5af79e6287c1dbad9a6c5dabe520080c7481d033002164cbfdd5a767d3b4cc54ec1344423ea8a0bbbd13a873ca955d95787924d10 SHA512 1602b74e829cd8842efbe6535e91a426a88c9ae08280d863bc4150cbe2a9d3ebef02b2abe98ee470f26412bb6fca653529492bf54b87f4d53fe20f242ef03771
+AUX opencv-4.9.0-ade-0.1.2d.tar.gz.patch 652 BLAKE2B 80b3d810e31a16413b67a0c0d64991c7fe699240ae67a50ecc7d926af33359eccb6aef52facbba1bea56723698e775f293c8cae57b504e76ec1e287d2c21b810 SHA512 dc88386c96ea882848a18d9336541e525a926d9c9d75c3e9d4dc667e03ea8fe85109f360a310c8ea602c643fcc4e4317b3af81c0f4e50f9057ee0588d433b020
+AUX opencv-4.9.0-cmake-cleanup.patch 1298 BLAKE2B 22dd3a47a26bab6545956d24c685792fa2071678db5090377348bdfb6e70dde003db0354fdc6d0dd32f30d5db0cd5df3270080678257590ec7f84f309cd09f95 SHA512 14bea3b5711f66b08b34b9dc1246744ae6385b7ecaadab057e5702769049e8fb318cbed11390517899933c760c42a2f4b25d90d6eeafe11977274a1fef4bf62e
+AUX opencv-4.9.0-drop-python2-detection.patch 3270 BLAKE2B bbb4021592e61d1ca99b7c6182d89e7d1adfff7e3ebdb1e810ce7b957001111559968d244416deca4baca44463cef86148d0d0d48b1fd44d91dc9c17b40f5692 SHA512 2386169151d8b8242245f66e4aeb6445bc4dcfc0ff31768417dbc32c8dee0b94e935d1d00d0b40acaad448ef816643b5df563e0a01016913be90a2a0c8b4e7c0
AUX opencv_contrib-4.8.1-NVIDIAOpticalFlowSDK-2.0.tar.gz.patch 1158 BLAKE2B c4b139198ac5c33974d6c4fac8ebcf288f15d9edf09e55b30e47071931abdf8924dc51c2d8cb27103edb3b815ba9f7e5ea334cfb1849be7b59ff4cd076f6771a SHA512 03d4442af9b98115126473cca0a9f581bd0c0e983b8d5b7f34fdd0ea7455d4a73163f853c80438f4390c5da4c7cc419c59c24643529df9eb4222915c80e654fe
AUX opencv_contrib-4.8.1-rgbd.patch 477 BLAKE2B 0120e631199d7099bae437d459f0c950c3cbd11e5f0a900d687ca5aedf1d7602f7faa3be5ba1a9b3e0758f3fd70574450f97bd7429e447df7440d58326ceb99b SHA512 6fe2ef40bf26d40e4f52d84b17183f6e536b2fe51bf65266be6a59865def0b9c074aa5eff58a60d673afec776a7ba03acaba667c917b78751950b77f68759d96
DIST NVIDIAOpticalFlowSDK-edb50da3cf849840d680249aa6dbef248ebce2ca.tar.gz 8771 BLAKE2B f579960448bdaf57fbefd5e88002d8f6f4dbb828429b0f3a0112916c03039d4e4de65263eb8464a4d62924c1b77f0a61c2d93b7307657439bfbf7d59785f1533 SHA512 85dfdc52260f54f62c980508f4b6ab384e44200bd1c13761c4947f9a898c08f0faed2d734a85a4ba7a46f8788ed58ee89f12f61cee97881b69ba626bbd04f655
DIST ade-0.1.2a.tar.gz 116737 BLAKE2B 9ac2af2f21aab8cb5d599e0b653bb6126642588e508f55e5fbfe5ce9607267f25e5187fd31ed69349064551c06e15b2ba548319708ed5f70e7761470775cc6e0 SHA512 d3ed210ff25f4c05393b0039cb4a73a6ceb8b42ba3d776e0469da2362899d3f76564cc6a06965b7de91f38517e1cd4ff4b18c00185d2b1a0af5a34ecf0d9dd44
+DIST ade-0.1.2d.tar.gz 117027 BLAKE2B c544b769c7b289342a469950ed047fa13719bafba29aa41167b588cf4f24ed6e596159ec19b65e61e09519a461a5e82ac07d63e2ea493279ee182fe658810abb SHA512 46f2feee28d732a6940a5a95944f3283bde1b8c8e05466a8ca1c576623c54d1bed875ce2b24a941111d8976cb0c6ba5a4ac8408f042f5765debf1badf7d43348
DIST opencv-4.8.1.tar.gz 92006711 BLAKE2B 54728a37e3e8a528bd8d2e6df5963a996820a51160d05ac72b350234ce5372f99c037af96e13c55de1452e517fffb478c2335b9e1cbc07a36c78f99351eabd58 SHA512 b98d89b8e7b8ae8138bce00c5226816b761b53fbeb8f28ca516e08c5d130f216f9388a81785cd6684034530f768e097cbe12f19a9361f362b7d2048bfc427a65
DIST opencv-4.8.1_contrib.tar.gz 59200293 BLAKE2B 8cf3ee60cb38a9fa2649013b9b4704022abe5cc65c331078dc7ea87028bc99df8b0de12f835905f5bb5c00a811f256754cac018ca8e02739ac5c6fe36aa4346d SHA512 e3df49e6a1411f55eebbc02f4534ddefabff961b4f63c69b21fe06ff3df894773a8643ab0cb123b83c2bdc8fa02698b332d3c243e8546c894e6c6c8ecaa65500
+DIST opencv-4.9.0.tar.gz 92788647 BLAKE2B 257478b0f5e19abca5b3676767dacd40765c645eb455080160b8b9dc54e66fba4880200b483829fc9050bc3f9b3e815f8ee784d7b41261877784536778fe3c96 SHA512 1598ae59849e7805b3cbec5260bb501006f26edff452343b366b9262a0f48a6e09f4b2e760209cb677f2a64a7b22f4e70bc6195c104bcea74cc9fe04031d0292
DIST opencv_3rdparty-34e4206aef44d50e6bbcd0ab06354b52e7466d26.tar.gz 397901 BLAKE2B 9adbe14ee3a2c90b890be694aa80d65b67e23a23f47ccabee4564e31eb9857d717b5a751df32004cfa5d6a53a9e1d8ea8d8943b705a0eaea5ca741169e2222f6 SHA512 8a92555aed2ac8752818586ab9762dd96ec128c5465cb87e402f15b15d16f7d371b3de045ef7295526e9ef99ec817766bb685a21d24dba29c650cf44e384a4e3
DIST opencv_3rdparty-8afa57abc8229d611c4937165d20e2a2d9fc5a12.tar.gz 63301261 BLAKE2B 923dc944edfda4c292d42207290bee414bfe21998f6ffe341ea3b38b6f2f581f3a243653e2c1fd3fa86084068ad6e7acd5ca73ab43094aa15f124d379833a5d8 SHA512 68cce870da0846cbd12a093ec7896b510e34590dad2b91699be1df5d4f72d343f9789d54c45c1b801784f7e57e0e80b19ba65dd99855225da99b4193dae97aaa
DIST opencv_3rdparty-a8b69ccc738421293254aec5ddb38bd523503252.tar.gz 920403 BLAKE2B 5f834e8ccef9d88d0650f8ae5d215a2d07d0a356aaad4de1622068e0b2a7def88fccc84bc4397f0182732e836fcd6e363ae25a2cdeaa4d458a7d8ef9afc81da5 SHA512 5611b9db40477759213ab35320570c198f1f224f92ca801ca3accd1f7620faf3d44f306e44abefd10be118acee9b56da643ca82abaa7c4d2102fe92e5b298a6e
DIST opencv_3rdparty-b2bfc75f6aea5b1f834ff0f0b865a7c18ff1459f.tar.gz 10036903 BLAKE2B c13559569808db24105049e2081bc466c0e8b6dab58bcc69001e49ff82e03ec4701e25648b5e542b7df2c8e522abfbd82c9825e66c37d6a673847b41bf6effae SHA512 3fc44f12802aa1dad0b12372d53242ae2134a2d74ca0b6d8e4639551623426106781a41d77ebfce79ac625a49aec26b0d7425e0d31f09bab6a15e3d43caef8bc
DIST opencv_3rdparty-fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d.tar.gz 1470898 BLAKE2B f1794cc8f8684501f670db3d720c02f35c57ebe91f276cc21dea1f1c1426740d03569143fec74380e941703b5086db5f013ca913fb296eda99559115fd53ca30 SHA512 07118b9d688bf0ff34a6e4ca1548006124d80d11e7b48f08c9e1910b64249b1dad0ace460f50adda0ecb69b90871fc59cc25f451570c63f7c6d6ba2b92d8801c
+DIST opencv_contrib-4.9.0.tar.gz 59803362 BLAKE2B e6b90e9bd462f96ef010490d45105d7125622d6c49912653c0d387568ae7109b1cbcac4cc0f52c1f997a45ed75923caea90bf4ad9336e689a56742b029789038 SHA512 ebaee3b88bd7ae246727e65a98d9fbc1d9772a4181a1926f3af742410b78dc87d2386bcd96ac67d7fb1a3020c3717a2cdebdcf9304d6dfd9ea494004791cf043
+DIST opencv_extra-4.9.0.tar.gz 502141517 BLAKE2B ed7351f29c6fb80d56d5ef383af68322fa805c7689132f7ca9bb43c9a1319c5876ce6d5c40d583c955eb255dd82b876c94ed42625cd71b13830ec94b2cc75dc2 SHA512 f05c1eaed491d15107c858af5b33d0d5856070dcb6f94491ba33a172b2f0caf34905eb5d1787e1247bc888626478647fce0db7f3ccbc6d6faba0ee43fd6b6bfa
EBUILD opencv-4.8.1-r1.ebuild 29072 BLAKE2B bb02548e91bf43056200443667e4695bea73912bc1b3ac41909588cc31e13b7ac4271af3e1910bd9816833df2350450273d729988cf61e4fbc89785e7a3c74c3 SHA512 3d0ce895e1e6eab2eccd5d56be44370e1aabb77796a33b40970474c4a36f5e53051b4bbb01544dc650db0ff91bb8b45f6b67ae72039dd2204c24d24d2ce9b32f
-MISC metadata.xml 3358 BLAKE2B 743310fbf9c032d8818e365d095c8facc9c5f07068098f5569cc172d6eafb8b6afd93c8d3f2eb7a0bf7d03fc30504b664545222facdf3b38271011fc6fb6dbc2 SHA512 b91fea919ce5e6aaa9af7b9f28735f749ebb700ea50689b1bbf1c5d75539a4df6bb9bfa666fbecd0e3a10eb9083b6e3a407bc8449c10c34a0084a195c9dd0315
+EBUILD opencv-4.9.0.ebuild 34213 BLAKE2B 61ef1c709724b75c34245a469148853cba2d88a3a789dabb2eccbb17695365e9454fab8b4f6925b05bc0a02e37325abc3f1047cadbc93b7dd2bb09103a0e9d51 SHA512 cd9d9b1298edb9eafc010cf0b761c34ed2da074c69f5664b41115ac6356d2f7d480cbb8dae5abd2e2dcc8598a3876b082d2b108f482072850b0fd9f64a4c8a9d
+MISC metadata.xml 3718 BLAKE2B 44b00ff4bc94a19f6a1b68cfefb29ce9f1a4ee21ee999b72a258268893ede5274d863d3a6faa325e6f0522c078c6afae53c6de4c46d6ed5a083888e195f34276 SHA512 b6c2f0a27b84afcb576209a3bdc641e81323c01bcac9617086d79821e723ea3c9698e8f3c5db837d46da68e48b6d9d08bdd05977e22d58d6c7ad30fa7b965b52
diff --git a/media-libs/opencv/files/opencv-4.9.0-ade-0.1.2d.tar.gz.patch b/media-libs/opencv/files/opencv-4.9.0-ade-0.1.2d.tar.gz.patch
new file mode 100644
index 000000000000..9d0d4c0d98f6
--- /dev/null
+++ b/media-libs/opencv/files/opencv-4.9.0-ade-0.1.2d.tar.gz.patch
@@ -0,0 +1,18 @@
+From: Paul Zander <negril.nx+gentoo@gmail.com>
+
+Use tar.gz instead of zip to make CI happy.
+
+diff --git a/modules/gapi/cmake/DownloadADE.cmake b/modules/gapi/cmake/DownloadADE.cmake
+index e22c4f1..fb0c10a 100644
+--- a/modules/gapi/cmake/DownloadADE.cmake
++++ b/modules/gapi/cmake/DownloadADE.cmake
+@@ -1,7 +1,7 @@
+ set(ade_src_dir "${OpenCV_BINARY_DIR}/3rdparty/ade")
+-set(ade_filename "v0.1.2d.zip")
++set(ade_filename "v0.1.2d.tar.gz")
+ set(ade_subdir "ade-0.1.2d")
+-set(ade_md5 "dbb095a8bf3008e91edbbf45d8d34885")
++set(ade_md5 "a0fc51a1090100023316c08322e8b093")
+ ocv_download(FILENAME ${ade_filename}
+ HASH ${ade_md5}
+ URL
diff --git a/media-libs/opencv/files/opencv-4.9.0-cmake-cleanup.patch b/media-libs/opencv/files/opencv-4.9.0-cmake-cleanup.patch
new file mode 100644
index 000000000000..8cbf9de7dd60
--- /dev/null
+++ b/media-libs/opencv/files/opencv-4.9.0-cmake-cleanup.patch
@@ -0,0 +1,31 @@
+From: Paul Zander <negril.nx+gentoo@gmail.com>
+
+don't check for deprecated libavresample
+fix openjpeg version string
+
+diff --git a/modules/videoio/cmake/detect_ffmpeg.cmake b/modules/videoio/cmake/detect_ffmpeg.cmake
+index aa669f3..208dcc3 100644
+--- a/modules/videoio/cmake/detect_ffmpeg.cmake
++++ b/modules/videoio/cmake/detect_ffmpeg.cmake
+@@ -27,7 +27,7 @@ set(_used_ffmpeg_libraries ${_required_ffmpeg_libraries})
+ if(NOT HAVE_FFMPEG AND PKG_CONFIG_FOUND)
+ ocv_check_modules(FFMPEG libavcodec libavformat libavutil libswscale)
+ if(FFMPEG_FOUND)
+- ocv_check_modules(FFMPEG_libavresample libavresample) # optional
++ # ocv_check_modules(FFMPEG_libavresample libavresample) # optional
+ if(FFMPEG_libavresample_FOUND)
+ list(APPEND FFMPEG_LIBRARIES ${FFMPEG_libavresample_LIBRARIES})
+ list(APPEND _used_ffmpeg_libraries libavresample)
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cbb302a..eab0a0a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1472,7 +1472,7 @@ endif()
+
+ if(HAVE_OPENJPEG)
+ status(" JPEG 2000:" OpenJPEG_FOUND
+- THEN "OpenJPEG (ver ${OPENJPEG_VERSION})"
++ THEN "OpenJPEG (ver ${OPENJPEG_MAJOR_VERSION}.${OPENJPEG_MINOR_VERSION}.${OPENJPEG_BUILD_VERSION})"
+ ELSE "build (ver ${OPENJPEG_VERSION})"
+ )
+ elseif(HAVE_JASPER)
diff --git a/media-libs/opencv/files/opencv-4.9.0-drop-python2-detection.patch b/media-libs/opencv/files/opencv-4.9.0-drop-python2-detection.patch
new file mode 100644
index 000000000000..d255ed035650
--- /dev/null
+++ b/media-libs/opencv/files/opencv-4.9.0-drop-python2-detection.patch
@@ -0,0 +1,66 @@
+From: Paul Zander <negril.nx+gentoo@gmail.com>
+
+python-2 is dead, don't check for it.
+
+diff --git a/cmake/OpenCVDetectPython.cmake b/cmake/OpenCVDetectPython.cmake
+index a6aacb4..d893486 100644
+--- a/cmake/OpenCVDetectPython.cmake
++++ b/cmake/OpenCVDetectPython.cmake
+@@ -85,11 +85,7 @@ if(NOT ${found})
+ endif()
+ ocv_clear_vars(PYTHONINTERP_FOUND PYTHON_EXECUTABLE PYTHON_VERSION_STRING PYTHON_VERSION_MAJOR PYTHON_VERSION_MINOR PYTHON_VERSION_PATCH)
+ if(NOT CMAKE_VERSION VERSION_LESS "3.12")
+- if(_python_version_major STREQUAL "2")
+- set(__PYTHON_PREFIX Python2)
+- else()
+- set(__PYTHON_PREFIX Python3)
+- endif()
++ set(__PYTHON_PREFIX Python3)
+ find_host_package(${__PYTHON_PREFIX} "${preferred_version}" COMPONENTS Interpreter)
+ if(${__PYTHON_PREFIX}_EXECUTABLE)
+ set(PYTHON_EXECUTABLE "${${__PYTHON_PREFIX}_EXECUTABLE}")
+@@ -208,9 +204,6 @@ if(NOT ${found})
+ if(CMAKE_CROSSCOMPILING)
+ message(STATUS "Cannot probe for Python/Numpy support (because we are cross-compiling OpenCV)")
+ message(STATUS "If you want to enable Python/Numpy support, set the following variables:")
+- message(STATUS " PYTHON2_INCLUDE_PATH")
+- message(STATUS " PYTHON2_LIBRARIES (optional on Unix-like systems)")
+- message(STATUS " PYTHON2_NUMPY_INCLUDE_DIRS")
+ message(STATUS " PYTHON3_INCLUDE_PATH")
+ message(STATUS " PYTHON3_LIBRARIES (optional on Unix-like systems)")
+ message(STATUS " PYTHON3_NUMPY_INCLUDE_DIRS")
+@@ -268,20 +261,6 @@ if(OPENCV_PYTHON_SKIP_DETECTION)
+ return()
+ endif()
+
+-ocv_check_environment_variables(OPENCV_ENABLE_PYTHON2)
+-ocv_check_environment_variables(PYTHON2_EXECUTABLE)
+-if((OPENCV_ENABLE_PYTHON2 OR PYTHON2_EXECUTABLE OR BUILD_opencv_python2)
+- AND NOT OPENCV_PYTHON2_SKIP_DETECTION
+-)
+- find_python("" "${MIN_VER_PYTHON2}" PYTHON2_LIBRARY PYTHON2_INCLUDE_DIR
+- PYTHON2INTERP_FOUND PYTHON2_EXECUTABLE PYTHON2_VERSION_STRING
+- PYTHON2_VERSION_MAJOR PYTHON2_VERSION_MINOR PYTHON2LIBS_FOUND
+- PYTHON2LIBS_VERSION_STRING PYTHON2_LIBRARIES PYTHON2_LIBRARY
+- PYTHON2_DEBUG_LIBRARIES PYTHON2_LIBRARY_DEBUG PYTHON2_INCLUDE_PATH
+- PYTHON2_INCLUDE_DIR PYTHON2_INCLUDE_DIR2 PYTHON2_PACKAGES_PATH
+- PYTHON2_NUMPY_INCLUDE_DIRS PYTHON2_NUMPY_VERSION)
+-endif()
+-
+ option(OPENCV_PYTHON3_VERSION "Python3 version" "")
+ find_python("${OPENCV_PYTHON3_VERSION}" "${MIN_VER_PYTHON3}" PYTHON3_LIBRARY PYTHON3_INCLUDE_DIR
+ PYTHON3INTERP_FOUND PYTHON3_EXECUTABLE PYTHON3_VERSION_STRING
+@@ -294,12 +273,8 @@ find_python("${OPENCV_PYTHON3_VERSION}" "${MIN_VER_PYTHON3}" PYTHON3_LIBRARY PYT
+
+ if(PYTHON_DEFAULT_EXECUTABLE)
+ set(PYTHON_DEFAULT_AVAILABLE "TRUE")
+-elseif(PYTHON2_EXECUTABLE AND PYTHON2INTERP_FOUND)
+- # Use Python 2 as default Python interpreter
+- set(PYTHON_DEFAULT_AVAILABLE "TRUE")
+- set(PYTHON_DEFAULT_EXECUTABLE "${PYTHON2_EXECUTABLE}")
+ elseif(PYTHON3_EXECUTABLE AND PYTHON3INTERP_FOUND)
+- # Use Python 3 as fallback Python interpreter (if there is no Python 2)
++ # Use Python 3 as Python interpreter (there is no Python 2)
+ set(PYTHON_DEFAULT_AVAILABLE "TRUE")
+ set(PYTHON_DEFAULT_EXECUTABLE "${PYTHON3_EXECUTABLE}")
+ endif()
diff --git a/media-libs/opencv/metadata.xml b/media-libs/opencv/metadata.xml
index 4fbf7c494e1c..5979caa25015 100644
--- a/media-libs/opencv/metadata.xml
+++ b/media-libs/opencv/metadata.xml
@@ -15,6 +15,7 @@
Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Understanding; Structure From Motion (SFM); and Mobile Robotics.
</longdescription>
<use>
+ <flag name="atlas">Use <pkg>sci-libs/atlas</pkg> for blas, lapack and sparse blas routines</flag>
<flag name="contrib">Install user contributed scripts from opencv_contrib (Experimental!)</flag>
<flag name="contribcvv">Enable CVV in contrib (requires Qt5)</flag>
<flag name="contribdnn">Enable DNN module contrib (requires tinydnn)</flag>
@@ -33,8 +34,11 @@
<flag name="gflags">Use Google's C++ argument parsing library (<pkg>dev-cpp/gflags</pkg>)</flag>
<flag name="glog">Use Google's C++ logging library (<pkg>dev-cpp/glog</pkg>)</flag>
<flag name="gtk3">Enable <pkg>x11-libs/gtk+</pkg>:3 support</flag>
+ <flag name="jasper">Use <pkg>media-libs/jasper</pkg> for jpeg2k support</flag>
+ <flag name="mkl">Use <pkg>sci-libs/mkl</pkg> for blas, lapack and sparse blas routines</flag>
<flag name="non-free">Enable non-free components</flag>
<flag name="opencvapps">Enable compilation with opencvapps</flag>
+ <flag name="quirc">Enable qrcode decoding via <pkg>media-libs/quirc</pkg></flag>
<flag name="tbb">Enable multithreading with the Intel Threads Building Block (<pkg>dev-cpp/tbb</pkg>)</flag>
<flag name="tesseract">Use Google's OCR Engine</flag>
<flag name="testprograms">Build and install programs for testing OpenCV (performance)</flag>
diff --git a/media-libs/opencv/opencv-4.9.0.ebuild b/media-libs/opencv/opencv-4.9.0.ebuild
new file mode 100644
index 000000000000..c190e9097d77
--- /dev/null
+++ b/media-libs/opencv/opencv-4.9.0.ebuild
@@ -0,0 +1,1015 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit cuda java-pkg-opt-2 java-ant-2 cmake-multilib flag-o-matic python-r1 toolchain-funcs virtualx
+
+DESCRIPTION="A collection of algorithms and sample code for various computer vision problems"
+HOMEPAGE="https://opencv.org"
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
+else
+ # branch master
+ ADE_PV="0.1.2d"
+ # branch wechat_qrcode_20210119
+ QRCODE_COMMIT="a8b69ccc738421293254aec5ddb38bd523503252"
+ # branch dnn_samples_face_detector_20170830
+ DNN_SAMPLES_FACE_DETECTOR_COMMIT="b2bfc75f6aea5b1f834ff0f0b865a7c18ff1459f"
+ # branch contrib_xfeatures2d_boostdesc_20161012
+ XFEATURES2D_BOOSTDESC_COMMIT="34e4206aef44d50e6bbcd0ab06354b52e7466d26"
+ # branch contrib_xfeatures2d_vgg_20160317
+ XFEATURES2D_VGG_COMMIT="fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
+ # branch contrib_face_alignment_20170818
+ FACE_ALIGNMENT_COMMIT="8afa57abc8229d611c4937165d20e2a2d9fc5a12"
+ # branch nvof_2_0_bsd
+ NVIDIA_OPTICAL_FLOW_COMMIT="edb50da3cf849840d680249aa6dbef248ebce2ca"
+
+ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/opencv/ade/archive/v${ADE_PV}.tar.gz -> ade-${ADE_PV}.tar.gz
+ contrib? (
+ https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${PN}_contrib-${PV}.tar.gz
+ dnnsamples? (
+ https://github.com/${PN}/${PN}_3rdparty/archive/${QRCODE_COMMIT}.tar.gz -> ${PN}_3rdparty-${QRCODE_COMMIT}.tar.gz
+ https://github.com/${PN}/${PN}_3rdparty/archive/${DNN_SAMPLES_FACE_DETECTOR_COMMIT}.tar.gz
+ -> ${PN}_3rdparty-${DNN_SAMPLES_FACE_DETECTOR_COMMIT}.tar.gz
+ )
+ contribxfeatures2d? (
+ https://github.com/${PN}/${PN}_3rdparty/archive/${XFEATURES2D_BOOSTDESC_COMMIT}.tar.gz
+ -> ${PN}_3rdparty-${XFEATURES2D_BOOSTDESC_COMMIT}.tar.gz
+ https://github.com/${PN}/${PN}_3rdparty/archive/${XFEATURES2D_VGG_COMMIT}.tar.gz
+ -> ${PN}_3rdparty-${XFEATURES2D_VGG_COMMIT}.tar.gz
+ )
+ contribdnn? (
+ https://github.com/${PN}/${PN}_3rdparty/archive/${FACE_ALIGNMENT_COMMIT}.tar.gz
+ -> ${PN}_3rdparty-${FACE_ALIGNMENT_COMMIT}.tar.gz
+ )
+ cuda? (
+ https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/${NVIDIA_OPTICAL_FLOW_COMMIT}.tar.gz
+ -> NVIDIAOpticalFlowSDK-${NVIDIA_OPTICAL_FLOW_COMMIT}.tar.gz
+ )
+ )
+ test? (
+ https://github.com/${PN}/${PN}_extra/archive/refs/tags/${PV}.tar.gz -> ${PN}_extra-${PV}.tar.gz
+ )
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV}" # subslot = libopencv* soname version
+
+# general options
+IUSE="debug doc +eigen gflags glog java non-free opencvapps +python test testprograms"
+
+# modules
+IUSE+=" contrib contribcvv contribdnn contribfreetype contribhdf contribovis contribsfm contribxfeatures2d dnnsamples examples +features2d"
+# hardware
+IUSE+=" opencl cuda cudnn video_cards_intel"
+# video
+IUSE+=" +ffmpeg gstreamer xine vaapi v4l gphoto2 ieee1394"
+# image
+IUSE+=" gdal jasper jpeg jpeg2k openexr png quirc tesseract tiff webp"
+# gui
+IUSE+=" gtk3 qt5 qt6 opengl vtk"
+# parallel
+IUSE+=" openmp tbb"
+# lapack options
+IUSE+=" atlas lapack mkl"
+
+# TODO make this only relevant for binhost
+CPU_FEATURES_MAP=(
+ cpu_flags_arm_neon:NEON
+ cpu_flags_arm_vfpv3:VFPV3
+
+ cpu_flags_ppc_vsx:VSX # (always available on Power8)
+ cpu_flags_ppc_vsx3:VSX3 # (always available on Power9)
+
+ cpu_flags_x86_sse:SSE # (always available on 64-bit CPUs)
+ cpu_flags_x86_sse2:SSE2 # (always available on 64-bit CPUs)
+
+ cpu_flags_x86_sse3:SSE3
+ cpu_flags_x86_ssse3:SSSE3
+
+ cpu_flags_x86_sse4_1:SSE4_1
+ cpu_flags_x86_popcnt:POPCNT
+ cpu_flags_x86_sse4_2:SSE4_2
+
+ cpu_flags_x86_f16c:FP16
+ cpu_flags_x86_fma3:FMA3
+ cpu_flags_x86_avx:AVX
+ cpu_flags_x86_avx2:AVX2
+ cpu_flags_x86_avx512f:AVX_512F
+)
+IUSE+=" ${CPU_FEATURES_MAP[*]%:*}"
+unset ARM_CPU_FEATURES PPC_CPU_FEATURES X86_CPU_FEATURES_RAW X86_CPU_FEATURES
+
+REQUIRED_USE="
+ amd64? ( cpu_flags_x86_sse cpu_flags_x86_sse2 )
+ cpu_flags_x86_avx2? ( cpu_flags_x86_f16c )
+ cpu_flags_x86_f16c? ( cpu_flags_x86_avx )
+ cuda? (
+ contrib
+ tesseract? ( opencl )
+ )
+ cudnn? ( cuda )
+ dnnsamples? ( examples )
+ gflags? ( contrib )
+ glog? ( contrib )
+ contribcvv? ( contrib || ( qt5 qt6 ) )
+ contribdnn? ( contrib )
+ contribfreetype? ( contrib )
+ contribhdf? ( contrib )
+ contribovis? ( contrib )
+ contribsfm? ( contrib eigen gflags glog )
+ contribxfeatures2d? ( contrib )
+ java? ( python )
+ opengl? ( ?? ( gtk3 || ( qt5 qt6 ) ) )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ tesseract? ( contrib )
+ ?? ( gtk3 || ( qt5 qt6 ) )
+ test? ( || ( ffmpeg gstreamer ) jpeg png tiff features2d )
+"
+
+# TODO find a way to compile these with the cuda compiler
+REQUIRED_USE+="
+ cuda? ( !gdal !openexr !tbb )
+"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ app-arch/bzip2[${MULTILIB_USEDEP}]
+ dev-libs/protobuf:=[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ cuda? ( dev-util/nvidia-cuda-toolkit:0= )
+ cudnn? ( dev-libs/cudnn:= )
+ contribdnn? ( dev-libs/flatbuffers:= )
+ contribhdf? ( sci-libs/hdf5:= )
+ contribfreetype? (
+ media-libs/freetype:2[${MULTILIB_USEDEP}]
+ media-libs/harfbuzz:=[${MULTILIB_USEDEP}]
+ )
+ contribovis? ( >=dev-games/ogre-1.12:= )
+ ffmpeg? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
+ gdal? ( sci-libs/gdal:= )
+ gflags? ( dev-cpp/gflags:=[${MULTILIB_USEDEP}] )
+ glog? ( dev-cpp/glog:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ )
+ gtk3? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ x11-libs/gtk+:3[${MULTILIB_USEDEP}]
+ )
+ ieee1394? (
+ media-libs/libdc1394:=[${MULTILIB_USEDEP}]
+ sys-libs/libraw1394[${MULTILIB_USEDEP}]
+ )
+ java? ( >=virtual/jre-1.8:* )
+ jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
+ jpeg2k? (
+ jasper? ( media-libs/jasper:= )
+ !jasper? ( media-libs/openjpeg:2=[${MULTILIB_USEDEP}] )
+ )
+ lapack? (
+ atlas? ( sci-libs/atlas )
+ mkl? ( sci-libs/mkl )
+ !atlas? (
+ !mkl? (
+ virtual/cblas
+ >=virtual/lapack-3.10
+ virtual/lapacke
+ )
+ )
+ )
+ opencl? (
+ virtual/opencl[${MULTILIB_USEDEP}]
+ dev-util/opencl-headers
+ )
+ openexr? (
+ dev-libs/imath:=
+ media-libs/openexr:=
+ )
+ opengl? (
+ virtual/opengl[${MULTILIB_USEDEP}]
+ virtual/glu[${MULTILIB_USEDEP}]
+ )
+ png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
+ python? (
+ ${PYTHON_DEPS}
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+ qt5? (
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ dev-qt/qttest:5
+ dev-qt/qtconcurrent:5
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ !qt5? (
+ qt6? (
+ dev-qt/qtbase:6[gui,widgets,concurrent,opengl?]
+ )
+ )
+ tesseract? ( app-text/tesseract[opencl=,${MULTILIB_USEDEP}] )
+ tbb? ( dev-cpp/tbb:=[${MULTILIB_USEDEP}] )
+ tiff? ( media-libs/tiff:=[${MULTILIB_USEDEP}] )
+ v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
+ vaapi? ( media-libs/libva[${MULTILIB_USEDEP}] )
+ vtk? ( sci-libs/vtk:=[rendering,cuda=] )
+ webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] )
+ xine? ( media-libs/xine-lib )
+"
+DEPEND="
+ ${RDEPEND}
+ eigen? ( >=dev-cpp/eigen-3.3.8-r1:3 )
+ java? ( >=virtual/jdk-1.8:* )
+"
+# TODO gstreamer dependencies
+DEPEND+="
+ test? (
+ gstreamer? (
+ media-plugins/gst-plugins-jpeg[${MULTILIB_USEDEP}]
+ media-plugins/gst-plugins-x264[${MULTILIB_USEDEP}]
+ )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ cuda? ( dev-util/nvidia-cuda-toolkit:0= )
+ doc? (
+ app-text/doxygen[dot]
+ python? (
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.4.0-disable-download.patch"
+ "${FILESDIR}/${PN}-3.4.1-cuda-add-relaxed-constexpr.patch"
+ "${FILESDIR}/${PN}-4.1.2-opencl-license.patch"
+ "${FILESDIR}/${PN}-4.4.0-disable-native-cpuflag-detect.patch"
+ "${FILESDIR}/${PN}-4.5.0-link-with-cblas-for-lapack.patch"
+
+ "${FILESDIR}/${PN}-4.8.1-use-system-flatbuffers.patch"
+ "${FILESDIR}/${PN}-4.8.1-use-system-opencl.patch"
+ "${FILESDIR}/${PN}-4.9.0-drop-python2-detection.patch"
+ "${FILESDIR}/${PN}-4.9.0-ade-0.1.2d.tar.gz.patch"
+ "${FILESDIR}/${PN}-4.9.0-cmake-cleanup.patch"
+
+ # TODO applied in src_prepare
+ # "${FILESDIR}/${PN}_contrib-${PV}-rgbd.patch"
+ # "${FILESDIR}/${PN}_contrib-4.8.1-NVIDIAOpticalFlowSDK-2.0.tar.gz.patch"
+)
+
+cuda_get_cuda_compiler() {
+ local compiler
+ tc-is-gcc && compiler="gcc"
+ tc-is-clang && compiler="clang"
+ [[ -z "$compiler" ]] && die "no compiler specified"
+
+ local package="sys-devel/${compiler}"
+ local version="${package}"
+ local CUDAHOSTCXX_test
+ while
+ local CUDAHOSTCXX="${CUDAHOSTCXX_test}"
+ version=$(best_version "${version}")
+ if [[ -z "${version}" ]]; then
+ if [[ -z "${CUDAHOSTCXX}" ]]; then
+ die "could not find supported version of ${package}"
+ fi
+ break
+ fi
+ CUDAHOSTCXX_test="$(
+ dirname "$(
+ realpath "$(
+ which "${compiler}-$(echo "${version}" | grep -oP "(?<=${package}-)[0-9]*")"
+ )"
+ )"
+ )"
+ version="<${version}"
+ do ! echo "int main(){}" | nvcc "-ccbin ${CUDAHOSTCXX_test}" - -x cu &>/dev/null; done
+
+ echo "${CUDAHOSTCXX}"
+}
+
+cuda_get_host_native_arch() {
+ : "${CUDAARCHS:=$(__nvcc_device_query)}"
+ echo "${CUDAARCHS}"
+}
+
+pkg_pretend() {
+ if use cuda && [[ -z "${CUDA_GENERATION}" ]] && [[ -z "${CUDA_ARCH_BIN}" ]]; then # TODO CUDAARCHS
+ einfo "The target CUDA architecture can be set via one of:"
+ einfo " - CUDA_GENERATION set to one of Maxwell, Pascal, Volta, Turing, Ampere, Lovelace, Hopper, Auto"
+ einfo " - CUDA_ARCH_BIN, (and optionally CUDA_ARCH_PTX) in the form of x.y tuples."
+ einfo " You can specify multiple tuple separated by \";\"."
+ einfo ""
+ einfo "The CUDA architecture tuple for your device can be found at https://developer.nvidia.com/cuda-gpus."
+ fi
+
+ if [[ ${MERGE_TYPE} == "buildonly" ]] && [[ -n "${CUDA_GENERATION}" || -n "${CUDA_ARCH_BIN}" ]]; then
+ local info_message="When building a binary package it's recommended to unset CUDA_GENERATION and CUDA_ARCH_BIN"
+ einfo "$info_message so all available architectures are build."
+ fi
+
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ use java && java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ # remove bundled stuff
+ rm -r 3rdparty || die "Removing 3rd party components failed"
+ sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
+ -i CMakeLists.txt cmake/*cmake || die
+
+ if use contrib; then
+ cd "${WORKDIR}/${PN}_contrib-${PV}" || die
+ eapply "${FILESDIR}/${PN}_contrib-4.8.1-rgbd.patch"
+ eapply "${FILESDIR}/${PN}_contrib-4.8.1-NVIDIAOpticalFlowSDK-2.0.tar.gz.patch"
+ cd "${S}" || die
+
+ ! use contribcvv && { rm -R "${WORKDIR}/${PN}_contrib-${PV}/modules/cvv" || die; }
+ # ! use contribdnn && { rm -R "${WORKDIR}/${PN}_contrib-${PV}/modules/dnn" || die; }
+ ! use contribfreetype && { rm -R "${WORKDIR}/${PN}_contrib-${PV}/modules/freetype" || die; }
+ ! use contribhdf && { rm -R "${WORKDIR}/${PN}_contrib-${PV}/modules/hdf" || die; }
+ ! use contribovis && { rm -R "${WORKDIR}/${PN}_contrib-${PV}/modules/ovis" || die; }
+ ! use contribsfm && { rm -R "${WORKDIR}/${PN}_contrib-${PV}/modules/sfm" || die; }
+ ! use contribxfeatures2d && { rm -R "${WORKDIR}/${PN}_contrib-${PV}/modules/xfeatures2d" || die; }
+ fi
+
+ mkdir -p "${S}/.cache/ade" || die
+ cp \
+ "${DISTDIR}/ade-${ADE_PV}.tar.gz" \
+ "${S}/.cache/ade/$(md5sum "${DISTDIR}/ade-${ADE_PV}.tar.gz" | cut -f 1 -d " ")-v${ADE_PV}.tar.gz" || die
+
+ if use dnnsamples; then
+ mkdir -p "${S}/.cache/wechat_qrcode" || die
+ for file in "detect.caffemodel" "detect.prototxt" "sr.prototxt" "sr.caffemodel"; do
+ mv \
+ "${WORKDIR}/${PN}_3rdparty-${QRCODE_COMMIT}/${file}" \
+ "${S}/.cache/wechat_qrcode/$( \
+ md5sum "${WORKDIR}/${PN}_3rdparty-${QRCODE_COMMIT}/${file}" | cut -f 1 -d " " \
+ )-${file}" || die
+ done
+
+ mv \
+ "${WORKDIR}/${PN}_3rdparty-${DNN_SAMPLES_FACE_DETECTOR_COMMIT}/res10_300x300_ssd_iter_140000.caffemodel" \
+ "${S}/samples/dnn/" || die
+ fi
+
+ if use contribxfeatures2d; then
+ cp \
+ "${WORKDIR}/${PN}_3rdparty-${XFEATURES2D_BOOSTDESC_COMMIT}/"*.i \
+ "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
+ mkdir -p "${S}/.cache/xfeatures2d/boostdesc" || die
+ for file in "${WORKDIR}/${PN}_3rdparty-${XFEATURES2D_BOOSTDESC_COMMIT}/"*.i; do
+ mv \
+ "${WORKDIR}/${PN}_3rdparty-${XFEATURES2D_BOOSTDESC_COMMIT}/$(basename "${file}")" \
+ "${S}/.cache/xfeatures2d/boostdesc/$( \
+ md5sum "${WORKDIR}/${PN}_3rdparty-${XFEATURES2D_BOOSTDESC_COMMIT}/$(basename "${file}")" | cut -f 1 -d " " \
+ )-$(basename "${file}")" || die
+ done
+
+ cp \
+ "${WORKDIR}/${PN}_3rdparty-${XFEATURES2D_VGG_COMMIT}/"*.i \
+ "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
+ mkdir -p "${S}/.cache/xfeatures2d/vgg" || die
+ for file in "${WORKDIR}/${PN}_3rdparty-${XFEATURES2D_VGG_COMMIT}/"*.i; do
+ mv \
+ "${WORKDIR}/${PN}_3rdparty-${XFEATURES2D_VGG_COMMIT}/$(basename "${file}")" \
+ "${S}/.cache/xfeatures2d/vgg/$( \
+ md5sum "${WORKDIR}/${PN}_3rdparty-${XFEATURES2D_VGG_COMMIT}/$(basename "${file}")" | cut -f 1 -d " " \
+ )-$(basename "${file}")" || die
+ done
+ fi
+
+ if use contribdnn; then
+ mkdir -p "${S}/.cache/data" || die
+ mkdir -p "${WORKDIR}/${PN}_extra-${PV}/testdata/cv/face/" || die
+ file="face_landmark_model.dat"
+ cp \
+ "${WORKDIR}/${PN}_3rdparty-${FACE_ALIGNMENT_COMMIT}/${file}" \
+ "${WORKDIR}/${PN}_extra-${PV}/testdata/cv/face/" \
+ || die
+ mv \
+ "${WORKDIR}/${PN}_3rdparty-${FACE_ALIGNMENT_COMMIT}/${file}" \
+ "${S}/.cache/data/$( \
+ md5sum "${WORKDIR}/${PN}_3rdparty-${FACE_ALIGNMENT_COMMIT}/${file}" | cut -f 1 -d " " \
+ )-${file}" || die
+ fi
+
+ if use cuda; then
+ mkdir -p "${S}/.cache/nvidia_optical_flow"
+ cp \
+ "${DISTDIR}/NVIDIAOpticalFlowSDK-${NVIDIA_OPTICAL_FLOW_COMMIT}.tar.gz" \
+ "${S}/.cache/nvidia_optical_flow/$( \
+ md5sum "${DISTDIR}/NVIDIAOpticalFlowSDK-${NVIDIA_OPTICAL_FLOW_COMMIT}.tar.gz" | cut -f 1 -d " " \
+ )-${NVIDIA_OPTICAL_FLOW_COMMIT}.tar.gz" || die
+ fi
+
+ if use java; then
+ java-pkg-opt-2_src_prepare
+
+ JAVA_ANT_ENCODING="iso-8859-1"
+ # set encoding so even this cmake build will pick it up.
+ export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
+ fi
+}
+
+multilib_src_configure() {
+ # bug #919101 and https://github.com/opencv/opencv/issues/19020
+ filter-lto
+
+ # please don't sort here, order is the same as in CMakeLists.txt
+ local mycmakeargs=(
+ -DMIN_VER_CMAKE=3.26
+
+ -DCMAKE_POLICY_DEFAULT_CMP0148="OLD" # FindPythonInterp
+
+ # for protobuf
+ -DCMAKE_CXX_STANDARD=17
+
+ # Optional 3rd party components
+ # ===================================================
+ -DENABLE_DOWNLOAD=yes
+ -DOPENCV_ENABLE_NONFREE="$(usex non-free)"
+ -DWITH_QUIRC="$(usex quirc)"
+ -DWITH_FLATBUFFERS="$(usex contribdnn)"
+ -DWITH_1394="$(usex ieee1394)"
+ # -DWITH_AVFOUNDATION="no" # IOS
+ -DWITH_VTK="$(multilib_native_usex vtk)"
+ -DWITH_EIGEN="$(usex eigen)"
+ -DWITH_VFW="no" # Video windows support
+ -DWITH_FFMPEG="$(usex ffmpeg)"
+ -DWITH_GSTREAMER="$(usex gstreamer)"
+ -DWITH_GTK="$(usex gtk3)"
+ -DWITH_GTK_2_X="no" # only want gtk3 nowadays
+ -DWITH_IPP="no"
+ -DWITH_JASPER="$(multilib_native_usex jasper)"
+ -DWITH_JPEG="$(usex jpeg)"
+ -DWITH_OPENJPEG="$(usex jpeg2k)"
+ -DWITH_WEBP="$(usex webp)"
+ -DWITH_OPENEXR="$(multilib_native_usex openexr)"
+ -DWITH_OPENGL="$(usex opengl)"
+ -DOpenGL_GL_PREFERENCE="GLVND"
+ -DWITH_OPENVX="no"
+ -DWITH_OPENNI="no" # Not packaged
+ -DWITH_OPENNI2="no" # Not packaged
+ -DWITH_PNG="$(usex png)"
+ -DWITH_GDCM="no"
+ -DWITH_PVAPI="no"
+ -DWITH_GIGEAPI="no"
+ -DWITH_ARAVIS="no"
+ -DWITH_WIN32UI="no" # Windows only
+ # -DWITH_QUICKTIME="no"
+ # -DWITH_QTKIT="no"
+ -DWITH_TBB="$(usex tbb)"
+ -DWITH_OPENMP="$(usex !tbb "$(usex openmp)")"
+ -DWITH_PTHREADS_PF="yes"
+ -DWITH_TIFF="$(usex tiff)"
+ -DWITH_UNICAP="no" # Not packaged
+ -DWITH_V4L="$(usex v4l)"
+ -DWITH_LIBV4L="$(usex v4l)"
+ # -DWITH_DSHOW="yes" # direct show supp
+ -DWITH_MSMF="no"
+ -DWITH_XIMEA="no" # Windows only
+ -DWITH_XINE="$(multilib_native_usex xine)"
+ -DWITH_CLP="no"
+ -DWITH_OPENCL="$(usex opencl)"
+ -DWITH_OPENCL_SVM="no" # "$(usex opencl)"
+ -DWITH_DIRECTX="no"
+ -DWITH_INTELPERC="no"
+ -DWITH_IPP_A="no"
+ -DWITH_MATLAB="no"
+ -DWITH_VA="$(usex vaapi)"
+ -DWITH_VA_INTEL="$(usex vaapi "$(usex video_cards_intel)")"
+ -DWITH_GDAL="$(multilib_native_usex gdal)"
+ -DWITH_GPHOTO2="$(usex gphoto2)"
+ -DWITH_LAPACK="$(multilib_native_usex lapack)"
+ -DWITH_ITT="no" # 3dparty libs itt_notify
+ # ===================================================
+ # CUDA build components: nvidia-cuda-toolkit
+ # ===================================================
+ -DWITH_CUDA="$(multilib_native_usex cuda)"
+ -DWITH_CUBLAS="$(multilib_native_usex cuda)"
+ -DWITH_CUFFT="$(multilib_native_usex cuda)"
+ -DWITH_CUDNN="$(multilib_native_usex cudnn)"
+ # NOTE set this via MYCMAKEARGS if needed
+ -DWITH_NVCUVID="no" # TODO needs NVIDIA Video Codec SDK
+ -DWITH_NVCUVENC="no" # TODO needs NVIDIA Video Codec SDK
+ -DCUDA_NPP_LIBRARY_ROOT_DIR="$(usex cuda "${EPREFIX}/opt/cuda" "")"
+ # ===================================================
+ # OpenCV build components
+ # ===================================================
+ -DBUILD_SHARED_LIBS="yes"
+ -DBUILD_JAVA="$(multilib_native_usex java)" # Ant needed, no compile flag
+ -DBUILD_ANDROID_EXAMPLES="no"
+ -DBUILD_opencv_apps="$(usex opencvapps)"
+ -DBUILD_DOCS="$(usex doc)" # Doesn't install anyways.
+ -DBUILD_EXAMPLES="$(multilib_native_usex examples)"
+ -DBUILD_TESTS="$(multilib_native_usex test)"
+ -DBUILD_PERF_TESTS="no"
+
+ # -DBUILD_WITH_STATIC_CRT="no"
+ -DBUILD_WITH_DYNAMIC_IPP="no"
+ -DBUILD_FAT_JAVA_LIB="no"
+ # -DBUILD_ANDROID_SERVICE="no"
+ -DBUILD_CUDA_STUBS="$(multilib_native_usex cuda)"
+ -DOPENCV_EXTRA_MODULES_PATH="$(usex contrib "${WORKDIR}/${PN}_contrib-${PV}/modules" "")"
+ # ===================================================
+ # OpenCV installation options
+ # ===================================================
+ -DINSTALL_CREATE_DISTRIB="no"
+ -DINSTALL_BIN_EXAMPLES="$(multilib_native_usex examples)"
+ -DINSTALL_C_EXAMPLES="$(multilib_native_usex examples)"
+ -DINSTALL_TESTS="$(multilib_native_usex testprograms)"
+ # -DINSTALL_ANDROID_EXAMPLES="no"
+ -DINSTALL_TO_MANGLED_PATHS="no"
+ -DOPENCV_GENERATE_PKGCONFIG="yes"
+ # opencv uses both ${CMAKE_INSTALL_LIBDIR} and ${LIB_SUFFIX}
+ # to set its destination libdir
+ -DLIB_SUFFIX=
+ # ===================================================
+ # OpenCV build options
+ # ===================================================
+ # -DENABLE_CCACHE="no"
+ # bug 733796, but PCH is a risky game in CMake anyway
+ -DBUILD_USE_SYMLINKS="yes"
+ -DENABLE_PRECOMPILED_HEADERS="no"
+ -DENABLE_SOLUTION_FOLDERS="no"
+ -DENABLE_PROFILING="no"
+ -DENABLE_COVERAGE="no"
+ -DOPENCV_DOWNLOAD_TRIES_LIST="0"
+
+ -DHAVE_opencv_java="$(multilib_native_usex java)"
+
+ -DBUILD_WITH_DEBUG_INFO="$(usex debug)"
+ -DOPENCV_ENABLE_MEMORY_SANITIZER="$(usex debug)"
+ -DCV_TRACE="$(usex debug)"
+ -DENABLE_NOISY_WARNINGS="$(usex debug)"
+ -DOPENCV_WARNINGS_ARE_ERRORS="no"
+ -DENABLE_IMPL_COLLECTION="no"
+ -DENABLE_INSTRUMENTATION="no"
+ -DGENERATE_ABI_DESCRIPTOR="no"
+ # ===================================================
+ # things we want to be hard off or not yet figured out
+ # ===================================================
+ -DBUILD_PACKAGE="no"
+ # ===================================================
+ # Not building protobuf but update files bug #631418
+ # ===================================================
+ -DWITH_PROTOBUF="yes"
+ -DBUILD_PROTOBUF="no"
+ -DPROTOBUF_UPDATE_FILES="yes"
+ -DProtobuf_MODULE_COMPATIBLE="yes"
+ # ===================================================
+ # things we want to be hard enabled not worth useflag
+ # ===================================================
+ # -DOPENCV_DOC_INSTALL_PATH="share/doc/${P}"
+ # NOTE do this so testprograms do not fail TODO adjust path in code
+ -DOPENCV_TEST_DATA_INSTALL_PATH="share/${PN}$(ver_cut 1)/testdata"
+ -DOPENCV_TEST_INSTALL_PATH="libexec/${PN}/bin/test"
+ -DOPENCV_SAMPLES_BIN_INSTALL_PATH="libexec/${PN}/bin/samples"
+
+ -DBUILD_IPP_IW="no"
+ -DBUILD_ITT="no"
+
+ # ===================================================
+ # configure modules to be build
+ # ===================================================
+ -DBUILD_opencv_features2d="$(usex features2d)"
+ -DBUILD_opencv_java_bindings_generator="$(usex java)"
+ -DBUILD_opencv_js="no"
+ -DBUILD_opencv_js_bindings_generator="no"
+ -DBUILD_opencv_objc_bindings_generator="no"
+ -DBUILD_opencv_python2="no"
+ -DBUILD_opencv_ts="$(usex test)"
+ -DBUILD_opencv_video="$(usex ffmpeg yes "$(usex gstreamer)")"
+ -DBUILD_opencv_videoio="$(usex ffmpeg yes "$(usex gstreamer)")"
+
+ -DBUILD_opencv_cudalegacy="no"
+
+ # -DBUILD_opencv_world="yes"
+
+ -DDNN_PLUGIN_LIST="all"
+ -DHIGHGUI_PLUGIN_LIST="all"
+ -DVIDEOIO_PLUGIN_LIST="all"
+
+ )
+
+ if use qt5; then
+ mycmakeargs+=(
+ -DWITH_QT="$(multilib_native_usex qt5)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6="yes"
+ )
+ elif use qt6; then
+ mycmakeargs+=(
+ -DWITH_QT="$(multilib_native_usex qt6)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt5="yes"
+ )
+ else
+ mycmakeargs+=(
+ -DWITH_QT="no"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt5="yes"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6="yes"
+ )
+ fi
+
+ # ==================================================
+ # cpu flags, should solve 633900
+ #===================================================
+ # TODO binhost https://github.com/opencv/opencv/wiki/CPU-optimizations-build-options
+
+ local CPU_BASELINE=""
+ for i in "${CPU_FEATURES_MAP[@]}" ; do
+ if [[ ${ABI} != x86 || ${i%:*} != "cpu_flags_x86_avx2" ]]; then # workaround for Bug 747163
+ use "${i%:*}" && CPU_BASELINE="${CPU_BASELINE}${i#*:};"
+ fi
+ done
+ unset CPU_FEATURES_MAP
+
+ mycmakeargs+=(
+ -DCPU_BASELINE="${CPU_BASELINE}"
+ )
+ if [[ ${MERGE_TYPE} != "buildonly" ]]; then
+ mycmakeargs+=(
+ -DOPENCV_CPU_OPT_IMPLIES_IGNORE="yes"
+ -DCPU_DISPATCH=
+ )
+ fi
+
+ # ===================================================
+ # OpenCV Contrib Modules
+ # ===================================================
+ if use contrib; then
+ mycmakeargs+=(
+ -DBUILD_opencv_cvv="$(usex contribcvv)"
+ -DBUILD_opencv_dnn="$(usex contribdnn)"
+ -DBUILD_opencv_freetype="$(usex contribfreetype)"
+ -DBUILD_opencv_hdf="$(multilib_native_usex contribhdf)"
+ -DBUILD_opencv_ovis="$(usex contribovis)"
+ -DBUILD_opencv_sfm="$(usex contribsfm)"
+ -DBUILD_opencv_xfeatures2d="$(usex contribxfeatures2d)"
+ )
+
+ if multilib_is_native_abi && use !tesseract; then
+ mycmakeargs+=(
+ -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract="yes"
+ )
+ fi
+ fi
+
+ # workaround for bug 413429
+ tc-export CC CXX
+
+ if use cuda; then
+ cuda_add_sandbox -w
+ CUDAHOSTCXX="$(cuda_get_cuda_compiler)"
+ CUDAARCHS="$(cuda_get_host_native_arch)"
+ export CUDAHOSTCXX
+ export CUDAARCHS
+ mycmakeargs+=(
+ -DENABLE_CUDA_FIRST_CLASS_LANGUAGE="yes"
+ )
+ fi
+
+ if use ffmpeg; then
+ mycmakeargs+=(
+ -DOPENCV_GAPI_GSTREAMER="no"
+ )
+ fi
+
+ if use mkl; then
+ mycmakeargs+=(
+ -DLAPACK_IMPL="MKL"
+ -DMKL_WITH_OPENMP="$(usex !tbb "$(usex openmp)")"
+ -DMKL_WITH_TBB="$(usex tbb)"
+ )
+ fi
+
+ # NOTE set this via MYCMAKEARGS if needed
+ if use opencl; then
+ if has_version sci-libs/clfft; then
+ mycmakeargs+=( -DWITH_OPENCLAMDFFT="yes" )
+ else
+ mycmakeargs+=( -DWITH_OPENCLAMDFFT="no" )
+ fi
+ if has_version sci-libs/clblas; then
+ mycmakeargs+=( -DWITH_OPENCLAMDBLAS="yes" )
+ else
+ mycmakeargs+=( -DWITH_OPENCLAMDBLAS="no" )
+ fi
+ else
+ mycmakeargs+=(
+ -DWITH_OPENCLAMDFFT="no"
+ -DWITH_OPENCLAMDBLAS="no"
+ )
+ fi
+
+ if use test; then
+ # opencv tests assume to be build in Release mode
+ CMAKE_BUILD_TYPE="Release"
+ mycmakeargs+=(
+ -DOPENCV_TEST_DATA_PATH="${WORKDIR}/${PN}_extra-${PV}/testdata"
+ )
+ if use vtk; then
+ mycmakeargs+=(
+ -DVTK_MPI_NUMPROCS="$(nproc)" # TODO
+ )
+ fi
+ fi
+
+ if multilib_is_native_abi && use python; then
+ python_configure() {
+ # Set all python variables to load the correct Gentoo paths
+ local mycmakeargs=(
+ "${mycmakeargs[@]}"
+ # python_setup alters PATH and sets this as wrapper
+ # to the correct interpreter we are building for
+ -DBUILD_opencv_python3="yes"
+ -DBUILD_opencv_python_bindings_generator="yes"
+ -DBUILD_opencv_python_tests="$(usex test)"
+ -DPYTHON_DEFAULT_EXECUTABLE="${EPYTHON}"
+ -DINSTALL_PYTHON_EXAMPLES="$(usex examples)"
+ )
+ cmake_src_configure
+ }
+
+ python_foreach_impl python_configure
+ else
+ mycmakeargs+=(
+ -DPYTHON_EXECUTABLE="no"
+ -DINSTALL_PYTHON_EXAMPLES="no"
+ -DBUILD_opencv_python3="no"
+ -DBUILD_opencv_python_bindings_generator="no"
+ -DBUILD_opencv_python_tests="no"
+ )
+ cmake_src_configure
+ fi
+ use java && java-ant-2_src_configure
+}
+
+multilib_src_compile() {
+ opencv_compile() {
+ cmake_src_compile
+ }
+ if multilib_is_native_abi && use python; then
+ python_foreach_impl opencv_compile
+ else
+ opencv_compile
+ fi
+}
+
+multilib_src_test() {
+ CMAKE_SKIP_TESTS=(
+ 'Test_ONNX_layers.LSTM_cell_forward/0'
+ 'Test_ONNX_layers.LSTM_cell_bidirectional/0'
+ 'Test_TensorFlow_layers.Convolution3D/1'
+ 'Test_TensorFlow_layers.concat_3d/1'
+
+ 'AsyncAPICancelation/cancel*basic'
+ )
+
+ if ! use gtk && ! use qt5 && ! use qt6; then
+ CMAKE_SKIP_TESTS+=(
+ # these fail with parallism
+ '^Highgui_*'
+ )
+ fi
+
+ if use cuda; then
+ CMAKE_SKIP_TESTS+=(
+ 'CUDA_OptFlow/BroxOpticalFlow.Regression/0'
+ 'CUDA_OptFlow/BroxOpticalFlow.OpticalFlowNan/0'
+ 'CUDA_OptFlow/NvidiaOpticalFlow_1_0.Regression/0'
+ 'CUDA_OptFlow/NvidiaOpticalFlow_2_0.Regression/0'
+ )
+ fi
+
+ if use opengl; then
+ CMAKE_SKIP_TESTS+=(
+ 'OpenGL/Buffer.MapDevice/*'
+ 'OpenGL/*Gpu*'
+ )
+ fi
+
+ if use opencl; then
+ CMAKE_SKIP_TESTS+=(
+ 'OCL_Arithm/InRange.Mat/\(CV_32S,*'
+ )
+ fi
+
+ local myctestargs=(
+ --test-timeout 180
+ )
+
+ if use cuda; then
+ cuda_add_sandbox -w
+ export OPENCV_PARALLEL_BACKEND="threads"
+ export DNN_BACKEND_OPENCV="cuda"
+ fi
+
+ opencv_test() {
+ export OPENCV_CORE_PLUGIN_PATH="${BUILD_DIR}/lib"
+ export OPENCV_DNN_PLUGIN_PATH="${BUILD_DIR}/lib"
+ export OPENCV_VIDEOIO_PLUGIN_PATH="${BUILD_DIR}/lib"
+
+ export OPENCV_TEST_DATA_PATH="${WORKDIR}/${PN}_extra-${PV}/testdata"
+
+ # Work around zink warnings
+ export LIBGL_ALWAYS_SOFTWARE=true
+ results=()
+ for test in "${BUILD_DIR}/bin/opencv_test_"*; do
+ echo "${test}"
+ if ! "${test}" --gtest_color=yes --gtest_filter="-$(IFS=: ; echo "${CMAKE_SKIP_TESTS[*]}")"; then
+
+ results+=( "$(basename ${test})" )
+
+ if [[ -z "${OPENCV_TEST_CONTINUE_ON_FAIL}" ]]; then
+ eerror "${results[*]} failed"
+ die
+ fi
+ fi
+ done
+
+ echo -e "${results[*]}"
+ }
+
+ if multilib_is_native_abi && use python; then
+ python_foreach_impl virtx opencv_test
+ else
+ virtx opencv_test
+ fi
+}
+
+multilib_src_install() {
+ if use abi_x86_64 && use abi_x86_32; then
+ MULTILIB_WRAPPED_HEADERS=( # {{{
+ # [opencv4]
+ /usr/include/opencv4/opencv2/cvconfig.h
+ /usr/include/opencv4/opencv2/opencv_modules.hpp
+
+ /usr/include/opencv4/opencv2/core_detect.hpp
+
+ /usr/include/opencv4/opencv2/cudaarithm.hpp
+ /usr/include/opencv4/opencv2/cudabgsegm.hpp
+ /usr/include/opencv4/opencv2/cudacodec.hpp
+ /usr/include/opencv4/opencv2/cudafeatures2d.hpp
+ /usr/include/opencv4/opencv2/cudafilters.hpp
+ /usr/include/opencv4/opencv2/cudaimgproc.hpp
+ /usr/include/opencv4/opencv2/cudalegacy.hpp
+ /usr/include/opencv4/opencv2/cudalegacy/NCV.hpp
+ /usr/include/opencv4/opencv2/cudalegacy/NCVBroxOpticalFlow.hpp
+ /usr/include/opencv4/opencv2/cudalegacy/NCVHaarObjectDetection.hpp
+ /usr/include/opencv4/opencv2/cudalegacy/NCVPyramid.hpp
+ /usr/include/opencv4/opencv2/cudalegacy/NPP_staging.hpp
+ /usr/include/opencv4/opencv2/cudaobjdetect.hpp
+ /usr/include/opencv4/opencv2/cudaoptflow.hpp
+ /usr/include/opencv4/opencv2/cudastereo.hpp
+ /usr/include/opencv4/opencv2/cudawarping.hpp
+ # [cudev]
+ /usr/include/opencv4/opencv2/cudev.hpp
+ /usr/include/opencv4/opencv2/cudev/block/block.hpp
+ /usr/include/opencv4/opencv2/cudev/block/detail/reduce.hpp
+ /usr/include/opencv4/opencv2/cudev/block/detail/reduce_key_val.hpp
+ /usr/include/opencv4/opencv2/cudev/block/dynamic_smem.hpp
+ /usr/include/opencv4/opencv2/cudev/block/reduce.hpp
+ /usr/include/opencv4/opencv2/cudev/block/scan.hpp
+ /usr/include/opencv4/opencv2/cudev/block/vec_distance.hpp
+ /usr/include/opencv4/opencv2/cudev/common.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/binary_func.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/binary_op.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/color.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/deriv.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/expr.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/per_element_func.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/reduction.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/unary_func.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/unary_op.hpp
+ /usr/include/opencv4/opencv2/cudev/expr/warping.hpp
+ /usr/include/opencv4/opencv2/cudev/functional/color_cvt.hpp
+ /usr/include/opencv4/opencv2/cudev/functional/detail/color_cvt.hpp
+ /usr/include/opencv4/opencv2/cudev/functional/functional.hpp
+ /usr/include/opencv4/opencv2/cudev/functional/tuple_adapter.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/copy.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/copy.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/histogram.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/integral.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/minmaxloc.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/pyr_down.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/pyr_up.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/reduce.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/reduce_to_column.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/reduce_to_row.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/split_merge.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/transform.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/detail/transpose.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/histogram.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/integral.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/pyramids.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/reduce.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/reduce_to_vec.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/split_merge.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/transform.hpp
+ /usr/include/opencv4/opencv2/cudev/grid/transpose.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/constant.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/deriv.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/detail/gpumat.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/extrapolation.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/glob.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/gpumat.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/interpolation.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/lut.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/mask.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/remap.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/resize.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/texture.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/traits.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/transform.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/warping.hpp
+ /usr/include/opencv4/opencv2/cudev/ptr2d/zip.hpp
+ /usr/include/opencv4/opencv2/cudev/util/atomic.hpp
+ /usr/include/opencv4/opencv2/cudev/util/detail/tuple.hpp
+ /usr/include/opencv4/opencv2/cudev/util/detail/type_traits.hpp
+ /usr/include/opencv4/opencv2/cudev/util/limits.hpp
+ /usr/include/opencv4/opencv2/cudev/util/saturate_cast.hpp
+ /usr/include/opencv4/opencv2/cudev/util/simd_functions.hpp
+ /usr/include/opencv4/opencv2/cudev/util/tuple.hpp
+ /usr/include/opencv4/opencv2/cudev/util/type_traits.hpp
+ /usr/include/opencv4/opencv2/cudev/util/vec_math.hpp
+ /usr/include/opencv4/opencv2/cudev/util/vec_traits.hpp
+ /usr/include/opencv4/opencv2/cudev/warp/detail/reduce.hpp
+ /usr/include/opencv4/opencv2/cudev/warp/detail/reduce_key_val.hpp
+ /usr/include/opencv4/opencv2/cudev/warp/reduce.hpp
+ /usr/include/opencv4/opencv2/cudev/warp/scan.hpp
+ /usr/include/opencv4/opencv2/cudev/warp/shuffle.hpp
+ /usr/include/opencv4/opencv2/cudev/warp/warp.hpp
+ # [contribcvv]
+ /usr/include/opencv4/opencv2/cvv.hpp
+ /usr/include/opencv4/opencv2/cvv/call_meta_data.hpp
+ /usr/include/opencv4/opencv2/cvv/cvv.hpp
+ /usr/include/opencv4/opencv2/cvv/debug_mode.hpp
+ /usr/include/opencv4/opencv2/cvv/dmatch.hpp
+ /usr/include/opencv4/opencv2/cvv/filter.hpp
+ /usr/include/opencv4/opencv2/cvv/final_show.hpp
+ /usr/include/opencv4/opencv2/cvv/show_image.hpp
+ # [contribdnn]
+ /usr/include/opencv4/opencv2/dnn.hpp
+ /usr/include/opencv4/opencv2/dnn/all_layers.hpp
+ /usr/include/opencv4/opencv2/dnn/dict.hpp
+ /usr/include/opencv4/opencv2/dnn/dnn.hpp
+ /usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
+ /usr/include/opencv4/opencv2/dnn/layer.details.hpp
+ /usr/include/opencv4/opencv2/dnn/layer.hpp
+ /usr/include/opencv4/opencv2/dnn/shape_utils.hpp
+ /usr/include/opencv4/opencv2/dnn/utils/debug_utils.hpp
+ /usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
+ /usr/include/opencv4/opencv2/dnn/version.hpp
+ /usr/include/opencv4/opencv2/dnn_superres.hpp
+ # [contribhdf]
+ /usr/include/opencv4/opencv2/hdf.hpp
+ /usr/include/opencv4/opencv2/hdf/hdf5.hpp
+
+ /usr/include/opencv4/opencv2/mcc.hpp
+ /usr/include/opencv4/opencv2/mcc/ccm.hpp
+ /usr/include/opencv4/opencv2/mcc/checker_detector.hpp
+ /usr/include/opencv4/opencv2/mcc/checker_model.hpp
+
+ /usr/include/opencv4/opencv2/text.hpp
+ /usr/include/opencv4/opencv2/text/erfilter.hpp
+ /usr/include/opencv4/opencv2/text/ocr.hpp
+ /usr/include/opencv4/opencv2/text/swt_text_detection.hpp
+ /usr/include/opencv4/opencv2/text/textDetector.hpp
+
+ # [qt5,qt6]
+ /usr/include/opencv4/opencv2/viz.hpp
+ /usr/include/opencv4/opencv2/viz/types.hpp
+ /usr/include/opencv4/opencv2/viz/viz3d.hpp
+ /usr/include/opencv4/opencv2/viz/vizcore.hpp
+ /usr/include/opencv4/opencv2/viz/widget_accessor.hpp
+ /usr/include/opencv4/opencv2/viz/widgets.hpp
+
+ /usr/include/opencv4/opencv2/wechat_qrcode.hpp
+ ) # }}}
+ fi
+ if multilib_is_native_abi && use python; then
+ python_foreach_impl cmake_src_install
+ python_foreach_impl python_optimize
+ else
+ cmake_src_install
+ fi
+}
diff --git a/media-libs/openimageio/Manifest b/media-libs/openimageio/Manifest
index c5d569da1f8a..6de42affff1e 100644
--- a/media-libs/openimageio/Manifest
+++ b/media-libs/openimageio/Manifest
@@ -1,3 +1,12 @@
+AUX openimageio-2.5.8.0-fits.patch 672 BLAKE2B 3bc6252c246698ef29dd74fdf1e1dde59658c717ed078cd5b9e251dc59f57395bc761325664d07ccae90df32e3600ab9c68732d3610ba9c99fbc236eb28840d6 SHA512 bdcca17073be2d8d2fdfb770f117f429fa4c8db26e7366d1ab9e211837fe07622054cd71ff9206fa7c449974faba865c6412d7a5cbd3042ca1a0b8e8a944efc5
+AUX openimageio-2.5.8.0-fix-tests.patch 10084 BLAKE2B d6cc1e35cb31df4d42a4a4b14283c81fb4b9157be480688102f912052a51ad5d56d22573a3b9c4c9fc80465c12b3c085b07cf8745ac86b1c83985af30942f4c8 SHA512 39e55ad64fc644420a2305abb616f6ca409fc345bc363557c176c2e88b32fd96d52fbacaf2c002d159341bf6401d19407c50781af2b39c638e738047d86d3903
+AUX openimageio-2.5.8.0-fix-unit_simd.patch 1028 BLAKE2B 2d9c9a61f44a8e1cf11429d9f32ffd047368ee9d42c5ab25bfafc3bdd3d856afb49aef8c46c850f9739de8db634dcadccdf83cc86fc9d7c078d5b96b7f300a6b SHA512 a96074ee5db257f0317677f8e67e1b634504fa0a608dddd089f1683fe6f77ca586bd6ebf54c35017eaf51c9025fb7c48697a340c74fd4c29976287009a805729
+DIST J2KP4files.zip 52204801 BLAKE2B 9e1c9afc11dc9e9be9987d458c274902f4205a5838a22bccd990699cfe1612139703d0ecc10fa77eacf5d246739025ddf57a02d91b80d3acfa1bae8377044b24 SHA512 71822f8b2518c4a7a5e195700d0e960a4b900e5b36ddfd2498e5a1e4e149ae3ea0262c51a24a7081119aa5d00772d45d1b0bab836bbca0557c2e9bb9a88b89f4
+DIST file001.fits 11520 BLAKE2B 6d608a563ef4eb83df6d86b2d117e27666222c338e830700be9387cc8a5a0a032c23ec51669a19a0e8cdca8e79e4b8114b6ac36c8aed75e59f6c9dfc4c98231e SHA512 eb8fb79c2c336204129bc43aff2c558c07c72040341f4f5d985baeae14a615c5f02e1ffb47f4c6bb79790f9d0e0d606872ec2f2a656335be6b2777552f3a935e
+DIST file002.fits 11520 BLAKE2B e1983941ca932f9db088f2d1856ca3b1fd268cf8d30e1885bf3b4d755608f581b3906a028d5d2bc805457b8a297ea069f8f3a2b954a6d2b3c2b1e1e8d1429cd2 SHA512 7829fb873d282ab29368909bf94665f9d62a0af75c4d7ce882d7c5f46cd00b6d157a7d2ac5d1b8c8a5a62d2277494d12dcb14042964f7185938610624b228160
+DIST file003.fits 581760 BLAKE2B 35d77c64ff9e25f34593ea41839a4f7712dc344d12ab2c041a1e1ef7ad9846a711fafb71ba71b191a7dc44cd94ae7172640210a5c48e2910d34efea4c20989e1 SHA512 dc143b27f8850e2a55ad95a9a7a76a348f0b9b0af5a223d1ae11157eb358acf74e482957faaa0cdbaf260b9cbe14b10e6b504068c7b312f059119c022279611f
+DIST file009.fits 25920 BLAKE2B 594061eba4d48da8cbfee58ab592a0adb5a22d681228330e84f60304e5146a8856e9c65b763d6d8e2136217ebe85d92128318cccfcf6358c7bc767232c6382c9 SHA512 57d53622854399aed96efbeff78e700990b2fc63c4dbd1bc9ac58c7670af98d528db2f1a3e9de4e74b977f8318109b465b46423bbac36bf2bf34a1e33e7dcdb8
+DIST file012.fits 1019520 BLAKE2B e86d9e0004ca159d9a5ae0585776db65c7dd49162cb5dbd8b511686244950e33746d8a41f60b5ba8fcea220194fa87e16235adb7ccc0b4fb4b0a61e6c5c376a8 SHA512 45439544da478b24ccbcf14dc9a651aa8ecbce29b9992204d85c1eee42bc88b68802ec57bc148510da1e062de95ee53dd5c64c9bfa2e0b6cdfd945a78d1fc76a
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
@@ -6,10 +15,18 @@ DIST openimageio-2.4.16.0.tar.gz 47894563 BLAKE2B 02788bb7ccc9bbcb84a44df0c86252
DIST openimageio-2.4.6.0.tar.gz 31951691 BLAKE2B c21caf6784f366200127ba17a296e2134fa0d494e2cbf9cf592d020fdb820f62db0269545ac37c3969d64ddd8352d06a4f002fa9a7b3f05503ca9ec7d4a15415 SHA512 6e4e5294209c533eb9cf7c8df89b531bc77547df28af0d7964e255ce78142c201d5aa92a1f5f3b17348fdfc7d2a7aa9f2121acdf22fa98a6a872f0d31936bdf5
DIST openimageio-2.5.4.0.tar.gz 48107518 BLAKE2B 38ba0f01976cfbe0f81c04fe8e64ff9c5ab530204d45a7b566882a7ec31c378c61a9b6bc62d6453c51e7ed33cd514a758b5d8224a646e568c9abd6274ebc6b0c SHA512 db9576bbc0b77da19db957710e86d8979e9987e91ff6246b513197fa98545904a7d34873cc2ba3ee60deed0a00a757dafb8dfa604f1e52097a1848aef43427cd
DIST openimageio-2.5.5.0.tar.gz 52025462 BLAKE2B d8d88d5e89815525fe7e75983b8d373058901614dcea9743a3851e242aa5f076b81ef3cc18764063e456ed9b79758d146c5d862be3a45d3671c59c7195acfa51 SHA512 d8ac989a6c7007089e3a29723889c9b9644d23ca9da1606da9f8c6bd7c0b301cf6a03f57c8eaaaca2a2fb2f3e79291f9dfa46ed31240a15d4650b83bf93ce96d
+DIST openimageio-2.5.9.0.tar.gz 52051925 BLAKE2B 7d499d80af6cdecfdea9a422030c095357b67a7d8dd281638e2e687df47b5c7b57c909c8682f1c6185251df13d6f9c7ddf1f9d5fc7fef26351fe0d4b8cc7d8c6 SHA512 554f61e19e3f81c8495f48386494a1aeee3a2a759b3022b4fb5cf1dba1dbc813cd0956b60d08a2c1feca69d97141e5836651fcbbeadab1e050eb2d103eb1c41f
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
DIST openimageio-oiio-test-image-aae37a54e31c0e719edcec852994d052ecf6541e.tar.gz 137910473 BLAKE2B 4fb43e1dc0a726fc64085884494b8fef23a824d38e79c5ec33ab4bd9338f5efbb91a6b534b89f37f868838984e22530e8f938436674b0972537fb6b25f3b9d57 SHA512 d7e49efd1ce07364f226318b6572ceb46d654f22d94baa031dea05c6529b51a23a81ae6940136c3f7dd749f65f105c2efcdb5609b21b291110b92419233b2521
+DIST tst0001.fits 43200 BLAKE2B 7d9d82fde64c3b21f8f86be6feaf9187d48c2c504c9afc0e652015512fb3d9e04c0f78596cdc9d7cc54815175549bfdf01d2d80f894cd36f4e6284aaf065dcc8 SHA512 b401accd51b56a493e2ec52fe4441e05cbefa3d03fe0e1c6834327094ab9f8e0c69a0f2cff26007ed7c7f8686a78a3a7e043d945f3a93c1b68e03668b8cbdc5c
+DIST tst0003.fits 152640 BLAKE2B 74c38c9f6cd65a46eff865589bd319111187d123c90bedc80f934caf6625f20120ecb30e8f5210c7d5d6609964e63fc2c2fc59f60bf609a07f2440421f44356e SHA512 4cd9c9a96fd3a5b8daae7d6b34af4c68c965abc4cc825aaaf9f3587a43328f468595ff1cd210e9fbca365bd52bf31a70abf39b2b3966d3087dd3af40ba0781a4
+DIST tst0005.fits 48960 BLAKE2B ef8bb62702f579c8500721835100e150b2ca73272866a88457589d6f14b407efb41d106be2d454089dae00c04b903bb874132d5b44852245e6d4372ed20c7b6f SHA512 515a4dbca51e5b7fa0139b369066c02fcfa96eeffb471c6f5073343ab50da527ee610d9b677e6fabdaad1b7f9f9c68bd65eb71c5b944e5ffacf429d01fe14a39
+DIST tst0006.fits 112320 BLAKE2B 1e3df92d994c1d0cfbf18956b124cc85510ae2dbbdbc5289e32e9a1b75b8ef4d7c0be2632d7eeb261a718954aa8a4fddeea7ef45b6461026fce1d92ae0fb56e3 SHA512 080ceea065a4a3a8f4c3fdb04e0acde77dd876c984500af096bf0ea3ca0724c442923eb4c2dc3c9073228ee8bdf4f91a8cf3ce06bb793333171e7b61e4c1889d
+DIST tst0007.fits 8640 BLAKE2B cf6eaff174e88bbd27f642964e6b3e5502cb08742d465a7cabb7aeaf284838f44660b5fa98c17df3c28f5986ecf657d8ec011579e3d9d62e63ce2171c157fd91 SHA512 ee8359132031678fa5e37f3b44642f41a7f64b251c3e788fbb756ad761327c1e1243df2b718cfe246449198d4e642b36fd43c61308ac434121ad4eadb3b2aaa3
+DIST tst0008.fits 8640 BLAKE2B 7b4213cef2106cf0e298fce1ba3b28e74ba6ed26a2441650af297384b46c22910af8a36c2693c1c0e5aed6196561a8e4b4c75cde54541ea7a1a9d684a41f2f40 SHA512 c2dc77eb54cfc48bc97228a06e25cc5b4b2a8f32f417d5a34bb6794b020b277e144b1d5c71f09a44c94e05797c99f318de3f8705eabd22b44ac1b47fe601f918
+DIST tst0013.fits 72000 BLAKE2B 6ca11cd033782adc8f359217e30752b47623c317aa155dc1bae43a0a019f7d5f9d4ba9c7349e99ee14f2d6498d5d166597606721b251b1b2dc039fbe400d00a3 SHA512 c816642e89e3bfdce38a4f755e84a12af35c9da48916abb66bcabf2f899201dfba3c988f929395092921a53a6d94922d84d325334e9bd8d348cdb305878ccb6a
EBUILD openimageio-2.4.12.0.ebuild 6052 BLAKE2B 42a713dfedb558a15becb7704412b3b4c2fa2b311894860becf1b74503f23719b82dbeb2434524a6fa6b45ee270d667b5b3d03640dc84a6fcdc263509c45cd98 SHA512 34e56ed35732fa46fc24e27b9b10014788edfe42cf6c41990a455bf093ffb18f7367aad878fe7e4e9ca2990e993814ad8e77c88c9d0fe93916313a9e93d4a1b2
EBUILD openimageio-2.4.13.0.ebuild 6336 BLAKE2B c8694836ba140ba60de04b3468a0884a69a515bb34c0c1a4ce0c2bf8eb055601a8b73ee5ad3559b8368e5bb19e23e74bcba526bc4110450182552e1dbe1803f7 SHA512 14e02cfaede8883ff1aafc23760de610dfd407528a32f126615a9f36154a57a4f0318e4cdb735b0dd762f12bae443406e2841718d7b577b4a297c6707f658349
EBUILD openimageio-2.4.14.0.ebuild 6279 BLAKE2B 82ad95094099201dbeedfd58a198e9b715aaa551bb80bb92c6a74883e63a91a55561734c98eb79566815df7fcd8a73287d9b79ba2d0f9e13a893637d7dbbf387 SHA512 70847532d5fc11c8d88067c1b0c82269d35509aa7d36eefec129276b8bc9772626c69ce6d1a65246ba1ccfd972c7bc7694227cc87f0551dd3ad7d8f49f829795
@@ -18,4 +35,5 @@ EBUILD openimageio-2.4.16.0.ebuild 6279 BLAKE2B 82ad95094099201dbeedfd58a198e9b7
EBUILD openimageio-2.4.6.0-r1.ebuild 5655 BLAKE2B 1347ac2ce140d8e0bbbb090735d503b301ec77ce5e889f84a924a0420a193c03f16016f9b86230a90b051a18234d4af75a00da14fc1da3caa58d7120d134066a SHA512 e980fc817a226973f7f362d9b22c0ba2d3390ab1b5a672b3bd06c6de446dc7a8c2015ee6d1d720fdcfeae6191b233d1fb48dc31ddd9ed3fac427bfbae9e44505
EBUILD openimageio-2.5.4.0.ebuild 6241 BLAKE2B 247558a823639e6b7a1b75320c6997404a1c68f6edde9796fec05344edfcc485e11dff9d0d27fcd948283df7ecf0d453d7df2adaf26658ba6ebea11e89f4c901 SHA512 7ff883324ec33247e25e53e457fbb4601978bc5409b37dfbf7b3aa2c20eb7065b8b81665f732e4b03c384e7ce79617b3c2e63bbd249eed5f67b0d8d7baea4692
EBUILD openimageio-2.5.5.0.ebuild 6308 BLAKE2B 51fe9d0fd9456ece2dc7eca8c98ca45a84ddb50eb509dbe70e8942360a10dcd15669c9c4413f86a42662fc25955d60de47665eff223736cc889af643d3fd4629 SHA512 471a0bdee8f84182a6404b9fa1f57ebd5335c3e7933e3f28c79ea69c8697fd9f2e65adecae3355c5c99d74d2f34f6c88d431fc558afce0c62b95029e37270e69
-MISC metadata.xml 936 BLAKE2B 5ac191bdf6a0a5f866fe04099f7e88d7ec97e32111f8146e50d51e7348beb17dd7642f1802a26a4f9b0d198b669d5c8e3f2d7d191da31ed9975c8b4cc532db52 SHA512 eb68adbca2ac064136d167430aff54a67459fd4ba5150088ebb833d040991fa8e15d6580cf5c9e51b6dd7ac9ac991ea4e8bb7a7f578ac3cc998e1935918cf50c
+EBUILD openimageio-2.5.9.0.ebuild 7113 BLAKE2B d5ff01d4ae133160b48cf31f85183c15dabd7193375f6e6e638f132a942ec1be4817bc2dc4d68bc3dac80dc625e4b0808fdee762a561c4411f93b6cc138614f6 SHA512 b2409a7b691b84cf7555f21a70ca208bcf1c4515bddc43444d6f80414eb02793f2a6ae3485a3b6921cb86f5406bba901a656bfa172b153194c624396f2bc6839
+MISC metadata.xml 1025 BLAKE2B 0fb315d25d5627709d9fe41c2e1d87320a42d9db3093ddfff742ccc32a37efb965536bf9fe64c5ce5be00bf3960cdd08d676bd2a47efe6d4739aa22e29efbc48 SHA512 68797e28b75e8334924ae96b1872e8ab61b59de9f5220e54656a41f6b4401a385fc1de4028285c2bb292b35e8a059c856ef67eedb3957f1cb9eda6ac7720ac21
diff --git a/media-libs/openimageio/files/openimageio-2.5.8.0-fits.patch b/media-libs/openimageio/files/openimageio-2.5.8.0-fits.patch
new file mode 100644
index 000000000000..1ef05f817202
--- /dev/null
+++ b/media-libs/openimageio/files/openimageio-2.5.8.0-fits.patch
@@ -0,0 +1,19 @@
+From: Paul Zander <negril.nx+gentoo@gmail.com>
+Make fits test images download optional
+Make j2k test images download optional
+
+diff --git a/src/cmake/testing.cmake b/src/cmake/testing.cmake
+index b671def..ff84b7d 100644
+--- a/src/cmake/testing.cmake
++++ b/src/cmake/testing.cmake
+@@ -410,6 +410,10 @@ function (oiio_setup_test_data)
+ oiio_get_test_data (openexr-images
+ REPO https://github.com/AcademySoftwareFoundation/openexr-images.git
+ BRANCH main)
++ if(ENABLE_FITS)
+ oiio_get_test_data (fits-images)
++ endif()
++ if(OPENJPEG_FOUND)
+ oiio_get_test_data (j2kp4files_v1_5)
++ endif()
+ endfunction ()
diff --git a/media-libs/openimageio/files/openimageio-2.5.8.0-fix-tests.patch b/media-libs/openimageio/files/openimageio-2.5.8.0-fix-tests.patch
new file mode 100644
index 000000000000..6ef92d72424e
--- /dev/null
+++ b/media-libs/openimageio/files/openimageio-2.5.8.0-fix-tests.patch
@@ -0,0 +1,230 @@
+From: Paul Zander <negril.nx+gentoo@gmail.com>
+Fix broken tests
+
+diff --git a/testsuite/oiiotool-text/run.py b/testsuite/oiiotool-text/run.py
+index bbb7372..33c4d91 100755
+--- a/testsuite/oiiotool-text/run.py
++++ b/testsuite/oiiotool-text/run.py
+@@ -47,7 +47,7 @@ outputs = [ "text.tif", "aligned.tif", "textshadowed.tif", "textalpha.tif" ]
+ # on Windows.
+ if os.name != "nt" :
+ command += oiiotool ("--create 320x240 3 "
+- "--text:x=25:y=50:font=DroidSerif 'test: éèúçàïö€' "
++ "--text:x=25:y=50:font=DroidSerif 'test: éèúçàïö' "
+ "-d uint8 -o unicode.tif")
+ outputs += [ "unicode.tif" ]
+
+diff --git a/testsuite/python-imagebufalgo/run.py b/testsuite/python-imagebufalgo/run.py
+index 33ac8f0..5c7dc1d 100755
+--- a/testsuite/python-imagebufalgo/run.py
++++ b/testsuite/python-imagebufalgo/run.py
+@@ -27,7 +27,7 @@ outputs = ["black.tif", "filled.tif", "checker.tif",
+ "chanshuffle.tif", "ch-rgba.exr", "ch-z.exr",
+ "chappend-rgbaz.exr",
+ "flat.exr", "deepen.exr",
+- "crop.tif", "cut.tif", "pasted.tif",
++ "cut.tif", "pasted.tif",
+ "rotate90.tif", "rotate180.tif", "rotate270.tif",
+ "rotated.tif", "rotated-offcenter.tif",
+ "warped.tif",
+diff --git a/testsuite/texture-interp-bilinear/run.py b/testsuite/texture-interp-bilinear/run.py
+index 0617c83..8f85f90 100755
+--- a/testsuite/texture-interp-bilinear/run.py
++++ b/testsuite/texture-interp-bilinear/run.py
+@@ -4,6 +4,9 @@
+ # SPDX-License-Identifier: Apache-2.0
+ # https://github.com/AcademySoftwareFoundation/OpenImageIO
+
++# Adjust error thresholds a tad to account for platform-to-platform variation
++# in some math precision.
++hardfail = 0.036
+
+ command = testtex_command ("../common/textures/grid.tx",
+ extraargs = "-interpmode 1 -d uint8 -o out.tif")
+diff --git a/testsuite/texture-interp-closest/run.py b/testsuite/texture-interp-closest/run.py
+index e226f44..c2c471c 100755
+--- a/testsuite/texture-interp-closest/run.py
++++ b/testsuite/texture-interp-closest/run.py
+@@ -7,8 +7,8 @@
+
+ # Adjust error thresholds a tad to account for platform-to-platform variation
+ # in some math precision.
+-hardfail = 0.032
+-failpercent = 0.002
++hardfail = 0.12
++failpercent = 0.015
+
+ command = testtex_command ("../common/textures/grid.tx",
+ extraargs = "-interpmode 0 -d uint8 -o out.tif")
+diff --git a/testsuite/texture-levels-stochaniso/run.py b/testsuite/texture-levels-stochaniso/run.py
+index 92272c4..7259564 100755
+--- a/testsuite/texture-levels-stochaniso/run.py
++++ b/testsuite/texture-levels-stochaniso/run.py
+@@ -9,7 +9,7 @@
+ # in some math precision.
+ hardfail = 0.16
+ failpercent = 0.001
+-allowfailures = 1
++allowfailures = 7
+
+ command = testtex_command ("../oiio-images/miplevels.tx",
+ extraargs = "--stochastic 3 -bluenoise -d uint8 -o out.tif")
+diff --git a/testsuite/texture-levels-stochmip/run.py b/testsuite/texture-levels-stochmip/run.py
+index c42acb7..8810f53 100755
+--- a/testsuite/texture-levels-stochmip/run.py
++++ b/testsuite/texture-levels-stochmip/run.py
+@@ -9,7 +9,7 @@
+ # in some math precision.
+ hardfail = 0.16
+ failpercent = 0.001
+-allowfailures = 1
++allowfailures = 9
+
+ command = testtex_command ("../oiio-images/miplevels.tx",
+ extraargs = "-stochastic 1 -bluenoise -d uint8 -o out.tif")
+diff --git a/testsuite/texture-mip-onelevel/run.py b/testsuite/texture-mip-onelevel/run.py
+index 6093e60..2a90a09 100755
+--- a/testsuite/texture-mip-onelevel/run.py
++++ b/testsuite/texture-mip-onelevel/run.py
+@@ -5,6 +5,10 @@
+ # https://github.com/AcademySoftwareFoundation/OpenImageIO
+
+
++# Adjust error thresholds a tad to account for platform-to-platform variation
++# in some math precision.
++allowfailures = 6
++
+ command = testtex_command ("../common/textures/grid.tx",
+ extraargs = "-mipmode 2 -d uint8 -o out.tif")
+ outputs = [ "out.tif" ]
+diff --git a/testsuite/texture-mip-stochasticaniso/run.py b/testsuite/texture-mip-stochasticaniso/run.py
+index 1a85243..0284710 100755
+--- a/testsuite/texture-mip-stochasticaniso/run.py
++++ b/testsuite/texture-mip-stochasticaniso/run.py
+@@ -9,7 +9,7 @@
+ # in some math precision.
+ hardfail = 0.16
+ failpercent = 0.001
+-allowfailures = 1
++allowfailures = 15
+
+ command = testtex_command ("../common/textures/grid.tx",
+ extraargs = "-stochastic 1 -d uint8 -o out.tif")
+diff --git a/testsuite/texture-mip-stochastictrilinear/run.py b/testsuite/texture-mip-stochastictrilinear/run.py
+index 56b6091..3ba6b7d 100755
+--- a/testsuite/texture-mip-stochastictrilinear/run.py
++++ b/testsuite/texture-mip-stochastictrilinear/run.py
+@@ -5,6 +5,10 @@
+ # https://github.com/AcademySoftwareFoundation/OpenImageIO
+
+
++# Adjust error thresholds a tad to account for platform-to-platform variation
++# in some math precision.
++allowfailures = 9
++
+ command = testtex_command ("../common/textures/grid.tx",
+ extraargs = "-mipmode 3 -stochastic 1 -d uint8 -o out.tif")
+ outputs = [ "out.tif" ]
+diff --git a/src/cmake/testing.cmake b/src/cmake/testing.cmake
+index ff84b7d..372c811 100644
+--- a/src/cmake/testing.cmake
++++ b/src/cmake/testing.cmake
+@@ -85,7 +85,7 @@ macro (oiio_add_tests)
+ elseif (_ats_IMAGEDIR AND NOT EXISTS ${_ats_testdir})
+ # If the directory containing reference data (images) for the test
+ # isn't found, point the user at the URL.
+- message (STATUS "\n\nDid not find ${_ats_testdir}")
++ message (STATUS "\n\nDid not find ${_ats_testdir} \"${_ats_IMAGEDIR}\"")
+ message (STATUS " -> Will not run tests ${_ats_UNPARSED_ARGUMENTS}")
+ message (STATUS " -> You can find it at ${_ats_URL}\n")
+ else ()
+diff --git a/testsuite/python-imagebufalgo/ref/out.txt b/testsuite/python-imagebufalgo/ref/out.txt
+index 3611460..599484d 100644
+--- a/testsuite/python-imagebufalgo/ref/out.txt
++++ b/testsuite/python-imagebufalgo/ref/out.txt
+@@ -13,15 +13,15 @@ Stats for tahoe-small.tif:
+ max = [0.8784314393997192, 1.0, 1.0]
+ avg = [0.10193096846342087, 0.21669696271419525, 0.4254732131958008]
+ stddev = [0.13176830112934113, 0.23792722821235657, 0.3826749324798584]
+- nancount = [0L, 0L, 0L]
+- infcount = [0L, 0L, 0L]
+- finitecount = [196608L, 196608L, 196608L]
++ nancount = [0, 0, 0]
++ infcount = [0, 0, 0]
++ finitecount = [196608, 196608, 196608]
+ Comparison: of flip.tif and flop.tif
+ mean = 0.0068759
+ rms = 0.051175
+ PSNR = 25.819
+ max = 0.45098
+- max @ (214L, 88L, 0L, 0L)
++ max @ (214, 88, 0, 0)
+ warns 2034 fails 2034
+ Relative comparison: of flip.tif and flop.tif
+ warns 1946 fails 1896
+@@ -29,12 +29,12 @@ isConstantColor on pink image is (1 0.50196 0.50196)
+ isConstantColor on checker is None
+ Is cmul1.exr monochrome? True
+ Is cmul2.exr monochrome? False
+-color range counts = (4L, 8L, 4L)
++color range counts = (4, 8, 4)
+ Nonzero region is: 100 180 100 180 0 1 0 3
+-SHA-1 of bsplinekernel.exr is: D5826B66A5313F9A32D42C5CF49C90EC4E7F84BF
+-R hist: (10000L, 0L, 0L, 0L)
+-G hist: (10000L, 0L, 0L, 0L)
+-B hist: (0L, 10000L, 0L, 0L)
++SHA-1 of bsplinekernel.exr is: 0902C72521944A879D5F8E8154B6DFA9D3F62598
++R hist: (10000, 0, 0, 0)
++G hist: (10000, 0, 0, 0)
++B hist: (0, 10000, 0, 0)
+ Done.
+ Comparing "black.tif" and "ref/black.tif"
+ PASS
+@@ -64,8 +64,6 @@ Comparing "flat.exr" and "../../../testsuite/oiiotool-deep/ref/flat.exr"
+ PASS
+ Comparing "deepen.exr" and "../../../testsuite/oiiotool-deep/ref/deepen.exr"
+ PASS
+-Comparing "crop.tif" and "../../../testsuite/oiiotool-copy/ref/crop.tif"
+-PASS
+ Comparing "cut.tif" and "../../../testsuite/oiiotool-copy/ref/cut.tif"
+ PASS
+ Comparing "pasted.tif" and "../../../testsuite/oiiotool-copy/ref/pasted.tif"
+diff --git a/testsuite/tiff-depths/ref/out.txt b/testsuite/tiff-depths/ref/out.txt
+index dfa3ad6..4acd0ec 100644
+--- a/testsuite/tiff-depths/ref/out.txt
++++ b/testsuite/tiff-depths/ref/out.txt
+@@ -799,7 +799,7 @@ flower-separated-contig-08.tif : 73 x 43, 3 channel, uint8 tiff
+ SHA-1: F739D368D37AB99D237FA1358A2EECE913245226
+ Reading ../oiio-images/libtiffpic/depth/flower-separated-contig-16.tif
+ ../oiio-images/libtiffpic/depth/flower-separated-contig-16.tif : 73 x 43, 3 channel, uint16 tiff
+- SHA-1: A5C53C7628B01F12DCAE09A42D8B15433644C54C
++ SHA-1: 5960EB6AB475E0FDB517736F65DF47F6D89F04CB
+ channel list: R, G, B
+ compression: "none"
+ DocumentName: "flower-separated-contig-16.tif"
+@@ -821,7 +821,7 @@ PASS
+ flower-separated-contig-16.tif : 73 x 43, 3 channel, uint8 tiff
+ SHA-1: E55335D12E9A20EFB0A5EAE80F1801DF5A9BEE12
+ ../oiio-images/libtiffpic/depth/flower-separated-contig-16.tif : 73 x 43, 3 channel, uint16 tiff
+- SHA-1: A5C53C7628B01F12DCAE09A42D8B15433644C54C
++ SHA-1: 5960EB6AB475E0FDB517736F65DF47F6D89F04CB
+ Reading ../oiio-images/libtiffpic/depth/flower-separated-planar-08.tif
+ ../oiio-images/libtiffpic/depth/flower-separated-planar-08.tif : 73 x 43, 3 channel, uint8 tiff
+ SHA-1: F739D368D37AB99D237FA1358A2EECE913245226
+@@ -849,7 +849,7 @@ flower-separated-planar-08.tif : 73 x 43, 3 channel, uint8 tiff
+ SHA-1: F739D368D37AB99D237FA1358A2EECE913245226
+ Reading ../oiio-images/libtiffpic/depth/flower-separated-planar-16.tif
+ ../oiio-images/libtiffpic/depth/flower-separated-planar-16.tif : 73 x 43, 3 channel, uint16 tiff
+- SHA-1: A5C53C7628B01F12DCAE09A42D8B15433644C54C
++ SHA-1: 5960EB6AB475E0FDB517736F65DF47F6D89F04CB
+ channel list: R, G, B
+ compression: "none"
+ DocumentName: "flower-separated-planar-16.tif"
+@@ -871,6 +871,6 @@ PASS
+ flower-separated-planar-16.tif : 73 x 43, 3 channel, uint8 tiff
+ SHA-1: E55335D12E9A20EFB0A5EAE80F1801DF5A9BEE12
+ ../oiio-images/libtiffpic/depth/flower-separated-planar-16.tif : 73 x 43, 3 channel, uint16 tiff
+- SHA-1: A5C53C7628B01F12DCAE09A42D8B15433644C54C
++ SHA-1: 5960EB6AB475E0FDB517736F65DF47F6D89F04CB
+ Comparing "cmyk_as_cmyk.tif" and "ref/cmyk_as_cmyk.tif"
+ PASS
diff --git a/media-libs/openimageio/files/openimageio-2.5.8.0-fix-unit_simd.patch b/media-libs/openimageio/files/openimageio-2.5.8.0-fix-unit_simd.patch
new file mode 100644
index 000000000000..b43d96ce959b
--- /dev/null
+++ b/media-libs/openimageio/files/openimageio-2.5.8.0-fix-unit_simd.patch
@@ -0,0 +1,18 @@
+From: Paul Zander <negril.nx+gentoo@gmail.com>
+Make simd tests use a threshold for floating point equality check
+
+diff --git a/src/libutil/simd_test.cpp b/src/libutil/simd_test.cpp
+index 4ecee70..0c15d81 100644
+--- a/src/libutil/simd_test.cpp
++++ b/src/libutil/simd_test.cpp
+@@ -1611,8 +1611,8 @@ void test_mathfuncs ()
+ VEC expA = mkvec<VEC> (0.367879441171442f, 1.0f, 2.718281828459045f, 90.0171313005218f);
+ OIIO_CHECK_SIMD_EQUAL (exp(A), expA);
+ OIIO_CHECK_SIMD_EQUAL_THRESH (log(expA), A, 1e-6f);
+- OIIO_CHECK_SIMD_EQUAL (fast_exp(A),
+- mkvec<VEC>(fast_exp(A[0]), fast_exp(A[1]), fast_exp(A[2]), fast_exp(A[3])));
++ OIIO_CHECK_SIMD_EQUAL_THRESH (fast_exp(A),
++ mkvec<VEC>(fast_exp(A[0]), fast_exp(A[1]), fast_exp(A[2]), fast_exp(A[3])), 1e-7f);
+ OIIO_CHECK_SIMD_EQUAL_THRESH (fast_log(expA),
+ mkvec<VEC>(fast_log(expA[0]), fast_log(expA[1]), fast_log(expA[2]), fast_log(expA[3])), 0.00001f);
+ OIIO_CHECK_SIMD_EQUAL_THRESH (fast_pow_pos(VEC(2.0f), A),
diff --git a/media-libs/openimageio/metadata.xml b/media-libs/openimageio/metadata.xml
index 3d6c024315eb..626c08235ddd 100644
--- a/media-libs/openimageio/metadata.xml
+++ b/media-libs/openimageio/metadata.xml
@@ -7,6 +7,7 @@
</maintainer>
<use>
<flag name="dicom">Enable DICOM medical image file support via <pkg>sci-libs/dcmtk</pkg></flag>
+ <flag name="fits">Enable support for NASA's <pkg>sci-libs/cfitsio</pkg> library</flag>
<flag name="gui">Build iv (with Qt5)</flag>
<flag name="opencv">Enable OpenCV support via <pkg>media-libs/opencv</pkg></flag>
<flag name="openvdb">Enable OpenVDB support via <pkg>media-gfx/openvdb</pkg></flag>
diff --git a/media-libs/openimageio/openimageio-2.5.9.0.ebuild b/media-libs/openimageio/openimageio-2.5.9.0.ebuild
new file mode 100644
index 000000000000..f0f6accc867e
--- /dev/null
+++ b/media-libs/openimageio/openimageio-2.5.9.0.ebuild
@@ -0,0 +1,262 @@
+# Copyright 1999-2024 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 virtualx
+
+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
+ jpeg2k? ( https://www.itu.int/wftp3/Public/t/testsignal/SpeImage/T803/v2002_11/J2KP4files.zip )
+
+ fits? (
+ https://www.cv.nrao.edu/fits/data/tests/ftt4b/file001.fits
+ https://www.cv.nrao.edu/fits/data/tests/ftt4b/file002.fits
+ https://www.cv.nrao.edu/fits/data/tests/ftt4b/file003.fits
+ https://www.cv.nrao.edu/fits/data/tests/ftt4b/file009.fits
+ https://www.cv.nrao.edu/fits/data/tests/ftt4b/file012.fits
+ https://www.cv.nrao.edu/fits/data/tests/pg93/tst0001.fits
+ https://www.cv.nrao.edu/fits/data/tests/pg93/tst0003.fits
+ https://www.cv.nrao.edu/fits/data/tests/pg93/tst0005.fits
+ https://www.cv.nrao.edu/fits/data/tests/pg93/tst0006.fits
+ https://www.cv.nrao.edu/fits/data/tests/pg93/tst0007.fits
+ https://www.cv.nrao.edu/fits/data/tests/pg93/tst0008.fits
+ https://www.cv.nrao.edu/fits/data/tests/pg93/tst0013.fits
+ )
+ )
+"
+S="${WORKDIR}/OpenImageIO-${PV}"
+
+LICENSE="Apache-2.0"
+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 fits gif gui jpeg2k opencv openvdb ptex python qt6 raw test +tools +truetype ${CPU_FEATURES[*]%:*}"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) gui? ( tools ) test? ( tools )"
+
+# Not quite working yet
+RESTRICT="!test? ( test )" # test"
+
+BDEPEND="
+ jpeg2k? ( app-arch/unzip )
+ doc? (
+ app-text/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:=
+ 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:= )
+ fits? ( sci-libs/cfitsio:= )
+ 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
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.5.8.0-fits.patch"
+ "${FILESDIR}/${PN}-2.5.8.0-fix-unit_simd.patch"
+ "${FILESDIR}/${PN}-2.5.8.0-fix-tests.patch"
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ if ! use dicom; then
+ rm -r "${S}/src/dicom.imageio/" || die
+ fi
+
+ cmake_src_prepare
+ cmake_comment_add_subdirectory src/fonts
+
+ if use test ; then
+ mv -v "${WORKDIR}/OpenImageIO-images-${TEST_OIIO_IMAGE_COMMIT}" "${WORKDIR}/oiio-images" || die
+ mv -v "${WORKDIR}/openexr-images-${TEST_OEXR_IMAGE_COMMIT}" "${WORKDIR}/openexr-images" || die
+ if use jpeg2k; then
+ mv -v "${WORKDIR}/J2KP4files" "${WORKDIR}/j2kp4files_v1_5" || die
+ fi
+ 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=(
+ -DCMAKE_CXX_STANDARD="17"
+ -DDOWNSTREAM_CXX_STANDARD="17"
+
+ -DCMAKE_UNITY_BUILD_MODE="BATCH"
+ -DUNITY_SMALL_BATCH_SIZE="$(nproc)"
+
+ -DOIIO_BUILD_TOOLS="$(usex tools)"
+ -DOIIO_BUILD_TESTS="$(usex test)"
+ -DOIIO_DOWNLOAD_MISSING_TESTDATA="OFF"
+
+ -DBUILD_TESTING="$(usex test)"
+ -DBUILD_DOCS="$(usex doc)"
+
+ -DINSTALL_FONTS="OFF"
+ -DINSTALL_DOCS="$(usex doc)"
+ -DSTOP_ON_WARNING="OFF"
+ -DUSE_CCACHE="OFF"
+
+ -DUSE_EXTERNAL_PUGIXML="ON"
+
+ -DENABLE_DCMTK="$(usex dicom)"
+ -DENABLE_FFMPEG="$(usex ffmpeg)"
+ -DENABLE_GIF="$(usex gif)"
+ -DENABLE_NUKE="OFF" # not in Gentoo
+ -DENABLE_OPENJPEG="$(usex jpeg2k)"
+ -DENABLE_OPENCV="$(usex opencv)"
+ -DENABLE_OPENVDB="$(usex openvdb)"
+ -DENABLE_PTEX="$(usex ptex)"
+ -DUSE_PYTHON="$(usex python)"
+ -DENABLE_LIBRAW="$(usex raw)"
+ -DENABLE_FREETYPE="$(usex truetype)"
+
+ -DUSE_SIMD="$(local IFS=','; echo "${mysimd[*]}")"
+
+ -DVERBOSE="yes"
+ -DENABLE_FITS="$(usex fits)"
+
+ )
+
+ if use gui; then
+ mycmakeargs+=( -DENABLE_IV=ON -DUSE_OPENGL=ON -DUSE_QT=ON )
+ if ! use qt6; then
+ 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() {
+ # A lot of tests needs to have access to the installed data files.
+ # So install them into the image directory now.
+ DESTDIR="${T}" cmake_build install
+
+ CMAKE_SKIP_TESTS=(
+ "-broken$"
+ )
+
+ sed -e "s#../../../testsuite#../../../OpenImageIO-${PV}/testsuite#g" \
+ -i "${CMAKE_USE_DIR}/testsuite/python-imagebufalgo/ref/out.txt" || die
+
+ local -x CI CMAKE_PREFIX_PATH LD_LIBRARY_PATH OPENIMAGEIO_FONTS PYTHONPATH
+ CI=true
+ CMAKE_PREFIX_PATH="${T}/usr"
+ LD_LIBRARY_PATH="${T}/usr/$(get_libdir)"
+ OPENIMAGEIO_FONTS="${CMAKE_USE_DIR}/src/fonts"
+
+ if use python; then
+ PYTHONPATH="${T}$(python_get_sitedir)"
+ fi
+
+ virtx cmake_src_test
+
+ # Clean up the image directory for src_install
+ rm -fr "${T:?}"/usr || die
+}
+
+src_install() {
+ # NOTE both eclasses export src_install so we ran both by hand.
+ font_src_install
+ cmake_src_install
+}
diff --git a/media-libs/quirc/Manifest b/media-libs/quirc/Manifest
new file mode 100644
index 000000000000..77205801bf77
--- /dev/null
+++ b/media-libs/quirc/Manifest
@@ -0,0 +1,4 @@
+DIST quirc-1.2.tar.gz 42916 BLAKE2B f12e015a703807e1e8aa6dbfcbedc4065a7249df2e3b902f6fb069c12e3d8905329414fa826f912adad8bd1ccd49b659d96ebcdcf6bc0b229eb112a46bf86b09 SHA512 0f694d16bc24012ef29a9aab8e48419bc7c346153ead3feed8e83845927f9683bb62b2e61c6872643f66b0c864c2e3c7e1a4ea4c657399b38cabfa687bedee82
+EBUILD quirc-1.2.ebuild 1657 BLAKE2B 532a234831d8a7b3a982bec725f54fad3de61bdaf1962d7916866f8d6e5d16002efdb029a7f6842f50bf49b5d6ff0b3bddc8a1e39736a8e4c0c8582e36d5f547 SHA512 a121639418fcb1050cfaf96bfc56c5731f0f9009c531ab0732131e9a7b9b3a994755aabce86f32e24becff84e7947989e9fb0a06dd51d9c3b3bab496b430f015
+EBUILD quirc-9999.ebuild 1657 BLAKE2B 532a234831d8a7b3a982bec725f54fad3de61bdaf1962d7916866f8d6e5d16002efdb029a7f6842f50bf49b5d6ff0b3bddc8a1e39736a8e4c0c8582e36d5f547 SHA512 a121639418fcb1050cfaf96bfc56c5731f0f9009c531ab0732131e9a7b9b3a994755aabce86f32e24becff84e7947989e9fb0a06dd51d9c3b3bab496b430f015
+MISC metadata.xml 846 BLAKE2B a20c7b5f02ebfcae0dabd26ad6651c1f1605f1e26b506048d1f4b61e0de5bd23eaaa047187949067c94fc549b1e60b5c96d40c6e20eefbfc158e5ee36325eb13 SHA512 73bad8eb5f00a76bb9456a108550789a81f2c29cfbc477073bd0313ce73d76a8703caf6344eea511018b268956882960bc6a302f0b8241947195778e0b058b21
diff --git a/media-libs/quirc/metadata.xml b/media-libs/quirc/metadata.xml
new file mode 100644
index 000000000000..ee5437ee6a99
--- /dev/null
+++ b/media-libs/quirc/metadata.xml
@@ -0,0 +1,21 @@
+<?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>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <use>
+ <flag name="opencv">Build tools requiring <pkg>media-libs/opencv</pkg> (inspect-opencv,quirc-demo-opencv)</flag>
+ <flag name="sdl">Build tools requiring <pkg>media-libs/sdl-gfx</pkg> (inspect, quirc-demo)</flag>
+ <flag name="tools">Build tools (qrtest)</flag>
+ <flag name="v4l">Build tools for webcams (quirc-scanner)</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">dlbeer/quirc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/media-libs/quirc/quirc-1.2.ebuild b/media-libs/quirc/quirc-1.2.ebuild
new file mode 100644
index 000000000000..3f7560659bd6
--- /dev/null
+++ b/media-libs/quirc/quirc-1.2.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="QR decoder library"
+HOMEPAGE="https://github.com/dlbeer/quirc"
+
+inherit multilib-minimal
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/dlbeer/${PN}.git"
+else
+ SRC_URI="
+ https://github.com/dlbeer/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ "
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DEPEND="
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ opencv? ( media-libs/opencv:= )
+ sdl? ( media-libs/sdl-gfx:= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+LICENSE="ISC"
+SLOT="0/${PV}"
+
+IUSE="opencv sdl tools v4l"
+
+src_prepare() {
+ sed -r \
+ -e "s#\.o libquirc.a#.o libquirc.so.${PV}#g" \
+ -e '/^QUIRC_CFLAGS/ s/$/ -fPIC/' \
+ -i Makefile || die
+
+ default
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ targets=( libquirc.so )
+ use opencv && targets+=( opencv )
+ use sdl && targets+=( sdl )
+ use tools && targets+=( qrtest )
+ use v4l && targets+=( v4l )
+}
+
+multilib_src_compile() {
+ emake V=1 DESTDIR="${D}" PREFIX="${EPREFIX}/usr" "${targets[@]}"
+}
+
+multilib_src_install() {
+ dolib.so "libquirc.so.${PV}"
+ dosym "libquirc.so.${PV}" "${EPREFIX}/usr/$(get_libdir)/libquirc.so"
+ dosym "libquirc.so.${PV}" "${EPREFIX}/usr/$(get_libdir)/libquirc.so.$(ver_cut 1)"
+
+ if multilib_is_native_abi; then
+ into "/usr/libexec/${PN}"
+ if use opencv; then
+ dobin inspect-opencv
+ dobin quirc-demo-opencv
+ fi
+
+ if use sdl; then
+ dobin inspect
+ dobin quirc-demo
+ fi
+
+ if use tools; then
+ dobin qrtest
+ fi
+
+ if use v4l; then
+ dobin quirc-scanner
+ fi
+ fi
+}
+
+multilib_src_install_all() {
+ doheader lib/quirc.h
+}
diff --git a/media-libs/quirc/quirc-9999.ebuild b/media-libs/quirc/quirc-9999.ebuild
new file mode 100644
index 000000000000..3f7560659bd6
--- /dev/null
+++ b/media-libs/quirc/quirc-9999.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="QR decoder library"
+HOMEPAGE="https://github.com/dlbeer/quirc"
+
+inherit multilib-minimal
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/dlbeer/${PN}.git"
+else
+ SRC_URI="
+ https://github.com/dlbeer/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ "
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DEPEND="
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ opencv? ( media-libs/opencv:= )
+ sdl? ( media-libs/sdl-gfx:= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+LICENSE="ISC"
+SLOT="0/${PV}"
+
+IUSE="opencv sdl tools v4l"
+
+src_prepare() {
+ sed -r \
+ -e "s#\.o libquirc.a#.o libquirc.so.${PV}#g" \
+ -e '/^QUIRC_CFLAGS/ s/$/ -fPIC/' \
+ -i Makefile || die
+
+ default
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ targets=( libquirc.so )
+ use opencv && targets+=( opencv )
+ use sdl && targets+=( sdl )
+ use tools && targets+=( qrtest )
+ use v4l && targets+=( v4l )
+}
+
+multilib_src_compile() {
+ emake V=1 DESTDIR="${D}" PREFIX="${EPREFIX}/usr" "${targets[@]}"
+}
+
+multilib_src_install() {
+ dolib.so "libquirc.so.${PV}"
+ dosym "libquirc.so.${PV}" "${EPREFIX}/usr/$(get_libdir)/libquirc.so"
+ dosym "libquirc.so.${PV}" "${EPREFIX}/usr/$(get_libdir)/libquirc.so.$(ver_cut 1)"
+
+ if multilib_is_native_abi; then
+ into "/usr/libexec/${PN}"
+ if use opencv; then
+ dobin inspect-opencv
+ dobin quirc-demo-opencv
+ fi
+
+ if use sdl; then
+ dobin inspect
+ dobin quirc-demo
+ fi
+
+ if use tools; then
+ dobin qrtest
+ fi
+
+ if use v4l; then
+ dobin quirc-scanner
+ fi
+ fi
+}
+
+multilib_src_install_all() {
+ doheader lib/quirc.h
+}
diff --git a/media-libs/sdl2-image/Manifest b/media-libs/sdl2-image/Manifest
index 1a182bc44708..7bc45921d6ee 100644
--- a/media-libs/sdl2-image/Manifest
+++ b/media-libs/sdl2-image/Manifest
@@ -4,5 +4,5 @@ DIST SDL2_image-2.8.2.tar.gz 11362515 BLAKE2B 8bc8967eed7203ddbd23062e257ae8768e
EBUILD sdl2-image-2.0.5_p20210328-r1.ebuild 1765 BLAKE2B 7cc2a469c347c6aa9f2ff1306ea69ff27341f5e1de6d971dd1e03ef26cab01f247637d7cbeaf305bab2083efd2a31264fdb8c73bda56ce904f0543aa2f5a9675 SHA512 7fffbaed0ada9b2698d1a1e68eb0c116a5fbf58f4fd6ab39460d637ccc313d9e00cfdf067c414c8c1a1da9e654c11389e1e7c9b02902e57739e518b5e8ef70d2
EBUILD sdl2-image-2.6.3-r1.ebuild 1947 BLAKE2B 887e5ba614b01bc64fbdea03ad304e53271eea75cafd8da2741c75e6a3d8c53e0108f8d2d1e051d4a71d04b13bef71373479125650b1d5fa44c89fb6d9759e3d SHA512 856e942ecd379b5a135944b3e2c490a2ed767d4e43f4c6d446ca8aabd9b9d385badc56ca311ab4b1fc6f9022be40853cdfab11bf532d9b6222d360d49b683e92
EBUILD sdl2-image-2.6.3.ebuild 1820 BLAKE2B 78f65f22fd67483a319277e85ccd07f8778386fad8aace49aaa29dc2f20e44839568f70775b6787ed5488f45abf75ad4323c70a1daf04f1287fbbbec69368d5a SHA512 67f86ab42c6ee7f686ecc883c423797f7f319adef25310b7238130f6fefc60c1485a159093823c46606e38781b0c291d5c88a6cac8fb788ae01fa136583e3a14
-EBUILD sdl2-image-2.8.2.ebuild 2020 BLAKE2B d096d41ffc46fbd9ef0760dce05926414f16dc6c31f960bedbe5e6893d6144837fc9289fe281b95190670470e2dea5c19934c393349aebf12a28e3727fc9d377 SHA512 48c44a23efb600b8bde8f60c883e1340cf5fdec62838c0d7b7723b2d49c9e6b0051bb08582de0eb4e809cbdc17cae8a00ba4d1893a62122c07b4969d32e56d64
+EBUILD sdl2-image-2.8.2.ebuild 2054 BLAKE2B 46610596867d875e5200ea1fa38b6d92d5a9a6742bb1f44cddbb3e680e0b21cee73266ecdefe307a912a85ad39f2307d8a14405ba61aab1c1e34af8ecbd130cf SHA512 34279c6f592c59b3e5ade7659fc8783389a0f4d336fdba5dbb4ccfe3c2c9c07f75a3dfc5ae185b9eeaff3d325e468a3962d8346065640b6dbcb84ae178202c99
MISC metadata.xml 407 BLAKE2B 122a2c297d075149603d7459f0e871213c975e19ddbcf4769cbba637c1de3b6758723e0e251c3f40b11b6d9cbc479cd3f6af6825d4f04ee35f7322d52ab187e9 SHA512 ee9a456a63a91542e2a9c635bc1c69e2a93c1f80eb525b898359e8b735b79e1e927f6a8b23ed55a99497e2459480b746252dd5dc295a4e6c421becaf9ebe62eb
diff --git a/media-libs/sdl2-image/sdl2-image-2.8.2.ebuild b/media-libs/sdl2-image/sdl2-image-2.8.2.ebuild
index 630c584acce1..36b5b6708dc0 100644
--- a/media-libs/sdl2-image/sdl2-image-2.8.2.ebuild
+++ b/media-libs/sdl2-image/sdl2-image-2.8.2.ebuild
@@ -16,6 +16,7 @@ SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc64 ~riscv ~sparc ~x86"
IUSE="avif gif jpeg jpegxl png static-libs test tiff webp"
RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( jpeg png )"
RDEPEND="
>=media-libs/libsdl2-2.0.9[${MULTILIB_USEDEP}]