summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Waibel <waebbl-gentoo@posteo.net>2021-05-22 01:12:34 +0200
committerMarek Szuba <marecki@gentoo.org>2021-07-21 22:57:28 +0100
commitc92b3342d9a7cd0d2c90f81244a02f23b249db46 (patch)
tree82d14ea3576486c9f57587f18a5a46b1557a29fd /media-libs
parentdev-libs/imath: drop 3.0.1 (diff)
downloadgentoo-c92b3342d9a7cd0d2c90f81244a02f23b249db46.tar.gz
gentoo-c92b3342d9a7cd0d2c90f81244a02f23b249db46.tar.bz2
gentoo-c92b3342d9a7cd0d2c90f81244a02f23b249db46.zip
media-libs/openexr: bump to 3.0.5
Improves slotting, so that openexr-2 and openexr-3 can be installed in parallel. Drop multilib support. Only multilib-aware consumer was media-libs/opencv. Using multilib would require it on dev-libs/imath as well which is not possible. Closes: https://bugs.gentoo.org/788286 Bug: https://bugs.gentoo.org/788310 Bug: https://bugs.gentoo.org/801373 Package-Manager: Portage-3.0.20, Repoman-3.0.3 Signed-off-by: Bernd Waibel <waebbl-gentoo@posteo.net> Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/openexr/Manifest1
-rw-r--r--media-libs/openexr/files/openexr-3.0.5-0001-changes-needed-for-proper-slotting.patch119
-rw-r--r--media-libs/openexr/files/openexr-3.0.5-0002-add-version-to-binaries-for-slotting.patch229
-rw-r--r--media-libs/openexr/openexr-3.0.5.ebuild77
4 files changed, 426 insertions, 0 deletions
diff --git a/media-libs/openexr/Manifest b/media-libs/openexr/Manifest
index 7f2f02e9d3c2..dac7103a63a7 100644
--- a/media-libs/openexr/Manifest
+++ b/media-libs/openexr/Manifest
@@ -1,3 +1,4 @@
DIST openexr-2.5.6.tar.gz 27540385 BLAKE2B eea64c6ae4500de31673f3127da6ac98272e85a2c93e2aed96494cc24c397edbce508f0721387be5bbabc4dde596dccf61212709173b7cebd4212dbfbd1e4b65 SHA512 8d4582a5f2adcd5eb1486cabe033f9ecaa0292000bf7fa484a94e1d9ec908678a5a903fc6a1beba22bcd9c7f06ac51236834f448ea8aaf4462a338de886f0412
DIST openexr-2.5.7.tar.gz 27539574 BLAKE2B 58fd81be52e13d2815b6aa8cea6793359379f5ebf866fd45b31ce30cf5f72aa4699625e7cec51189d62fe76f53418c3e0938f9b827d54ad18342e7aa67c8a3d2 SHA512 e44edfa2dcfff2fe372ed2ba07b39a472e549025978de178eff26be641767d22d1a3b543fb7672d9b7b2e9f4c308667f785829ed6d9032a2b42f2ffa0163de40
DIST openexr-3.0.1.tar.gz 25059445 BLAKE2B 76bce1ff830b5e32362bfaf91d39945add171c5c1f453968b2fa8ba41e0996064d3a104eb7759cea87477e96e8a52d548743c7d83f5c6131dd38aecdd47bd6dd SHA512 e450c55d150e4c0a8a9147f78fe1c73ea9134976444f8c77c832d0671d4c3796f96fee74d23f26cdb9383e658a33d6d57c989e9207d1edfc8556ad688ff25a5b
+DIST openexr-3.0.5.tar.gz 25060148 BLAKE2B 24b5601e27342eeff831219f75416797c30afb1ca28ae0a0692d97169297584da503d016c6dda80f63bd5bb9c9a31dc7f91d7713e6fc217a2760af2c662406f0 SHA512 7a0f83320ad5e1d8f8414b5175a64eef3c6b06a7ccd7d66d0aa21472ea22146e2617ff10c20e04203fc2a3326d8bac2d95023bec315badb03e6a006596b64595
diff --git a/media-libs/openexr/files/openexr-3.0.5-0001-changes-needed-for-proper-slotting.patch b/media-libs/openexr/files/openexr-3.0.5-0001-changes-needed-for-proper-slotting.patch
new file mode 100644
index 000000000000..30991f423b00
--- /dev/null
+++ b/media-libs/openexr/files/openexr-3.0.5-0001-changes-needed-for-proper-slotting.patch
@@ -0,0 +1,119 @@
+From: Bernd Waibel <waebbl-gentoo@posteo.net>
+Date: Fri, 2 Jul 2021 17:46:33 +0200
+Subject: [PATCH] changes needed for proper slotting
+
+Signed-off-by: Bernd Waibel <waebbl-gentoo@posteo.net>
+---
+ cmake/CMakeLists.txt | 8 ++++----
+ cmake/LibraryDefine.cmake | 8 ++++----
+ cmake/OpenEXR.pc.in | 4 ++--
+ cmake/OpenEXRLibraryDefine.cmake | 8 ++++----
+ 4 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
+index 2014d27..7dfb2f2 100644
+--- a/cmake/CMakeLists.txt
++++ b/cmake/CMakeLists.txt
+@@ -200,7 +200,7 @@ if(OPENEXR_INSTALL_PKG_CONFIG)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+ )
+ endfunction()
+- openexr_pkg_config_help(OpenEXR.pc.in)
++ openexr_pkg_config_help(OpenEXR-${OpenEXR_VERSION_MAJOR}.pc.in)
+ else()
+ message(STATUS "-- pkg-config generation disabled")
+ endif()
+@@ -220,7 +220,7 @@ include(CMakePackageConfigHelpers)
+ if(OPENEXR_INSTALL)
+ configure_package_config_file(${PROJECT_NAME}Config.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+- INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
++ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}-${OpenEXR_VERSION_MAJOR}
+ )
+ write_basic_package_version_file("${PROJECT_NAME}ConfigVersion.cmake"
+ VERSION ${PROJECT_VERSION}
+@@ -229,11 +229,11 @@ write_basic_package_version_file("${PROJECT_NAME}ConfigVersion.cmake"
+
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
+- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}-${OpenEXR_VERSION_MAJOR}
+ )
+
+ install(EXPORT ${PROJECT_NAME}
+- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}-${OpenEXR_VERSION_MAJOR}
+ FILE ${PROJECT_NAME}Targets.cmake
+ NAMESPACE ${PROJECT_NAME}::
+ EXPORT_LINK_INTERFACE_LIBRARIES
+diff --git a/cmake/LibraryDefine.cmake b/cmake/LibraryDefine.cmake
+index aa5bb46..2767420 100644
+--- a/cmake/LibraryDefine.cmake
++++ b/cmake/LibraryDefine.cmake
+@@ -79,8 +79,8 @@ function(OPENEXR_DEFINE_LIBRARY libname)
+ install(TARGETS ${libname}
+ EXPORT ${PROJECT_NAME}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${OPENEXR_OUTPUT_SUBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/${OPENEXR_OUTPUT_SUBDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ PUBLIC_HEADER
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENEXR_OUTPUT_SUBDIR}
+@@ -90,8 +90,8 @@ function(OPENEXR_DEFINE_LIBRARY libname)
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+ set(verlibname ${CMAKE_SHARED_LIBRARY_PREFIX}${libname}${OPENEXR_LIB_SUFFIX}${CMAKE_${uppercase_CMAKE_BUILD_TYPE}_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(baselibname ${CMAKE_SHARED_LIBRARY_PREFIX}${libname}${CMAKE_${uppercase_CMAKE_BUILD_TYPE}_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
+- install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E chdir \"\$ENV\{DESTDIR\}${CMAKE_INSTALL_FULL_LIBDIR}\" ${CMAKE_COMMAND} -E create_symlink ${verlibname} ${baselibname})")
+- install(CODE "message(\"-- Creating symlink in ${CMAKE_INSTALL_FULL_LIBDIR} ${baselibname} -> ${verlibname}\")")
++ install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E chdir \"\$ENV\{DESTDIR\}${CMAKE_INSTALL_FULL_LIBDIR}/${OPENEXR_OUTPUT_SUBDIR}\" ${CMAKE_COMMAND} -E create_symlink ${verlibname} ${baselibname})")
++ install(CODE "message(\"-- Creating symlink in ${CMAKE_INSTALL_FULL_LIBDIR}/${OPENEXR_OUTPUT_SUBDIR} ${baselibname} -> ${verlibname}\")")
+ set(verlibname)
+ set(baselibname)
+ endif()
+diff --git a/cmake/OpenEXR.pc.in b/cmake/OpenEXR.pc.in
+index 7d9bb7c..c7e1dd6 100644
+--- a/cmake/OpenEXR.pc.in
++++ b/cmake/OpenEXR.pc.in
+@@ -5,9 +5,9 @@
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
++libdir=@libdir@/@OPENEXR_OUTPUT_SUBDIR@
+ includedir=@includedir@
+-OpenEXR_includedir=@includedir@/OpenEXR
++OpenEXR_includedir=@includedir@/@OPENEXR_OUTPUT_SUBDIR@
+ libsuffix=@LIB_SUFFIX_DASH@
+
+ Name: OpenEXR
+diff --git a/cmake/OpenEXRLibraryDefine.cmake b/cmake/OpenEXRLibraryDefine.cmake
+index 8022e2e..9f919c8 100644
+--- a/cmake/OpenEXRLibraryDefine.cmake
++++ b/cmake/OpenEXRLibraryDefine.cmake
+@@ -54,8 +54,8 @@ function(OPENEXR_DEFINE_LIBRARY libname)
+ install(TARGETS ${libname}
+ EXPORT ${PROJECT_NAME}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${OPENEXR_OUTPUT_SUBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/${OPENEXR_OUTPUT_SUBDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ PUBLIC_HEADER
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENEXR_OUTPUT_SUBDIR}
+@@ -65,8 +65,8 @@ function(OPENEXR_DEFINE_LIBRARY libname)
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+ set(verlibname ${CMAKE_SHARED_LIBRARY_PREFIX}${libname}${OPENEXR_LIB_SUFFIX}${CMAKE_${uppercase_CMAKE_BUILD_TYPE}_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(baselibname ${CMAKE_SHARED_LIBRARY_PREFIX}${libname}${CMAKE_${uppercase_CMAKE_BUILD_TYPE}_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
+- install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E chdir \"\$ENV\{DESTDIR\}${CMAKE_INSTALL_FULL_LIBDIR}\" ${CMAKE_COMMAND} -E create_symlink ${verlibname} ${baselibname})")
+- install(CODE "message(\"-- Creating symlink in ${CMAKE_INSTALL_FULL_DIR} ${baselibname} -> ${verlibname}\")")
++ install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E chdir \"\$ENV\{DESTDIR\}${CMAKE_INSTALL_FULL_LIBDIR}/${OPENEXR_OUTPUT_SUBDIR}\" ${CMAKE_COMMAND} -E create_symlink ${verlibname} ${baselibname})")
++ install(CODE "message(\"-- Creating symlink in ${CMAKE_INSTALL_FULL_DIR}/${OPENEXR_OUTPUT_SUBDIR} ${baselibname} -> ${verlibname}\")")
+ set(verlibname)
+ set(baselibname)
+ endif()
+--
+2.32.0
+
diff --git a/media-libs/openexr/files/openexr-3.0.5-0002-add-version-to-binaries-for-slotting.patch b/media-libs/openexr/files/openexr-3.0.5-0002-add-version-to-binaries-for-slotting.patch
new file mode 100644
index 000000000000..d6c6b532c879
--- /dev/null
+++ b/media-libs/openexr/files/openexr-3.0.5-0002-add-version-to-binaries-for-slotting.patch
@@ -0,0 +1,229 @@
+From: Bernd Waibel <waebbl-gentoo@posteo.net>
+Date: Sat, 22 May 2021 17:04:12 +0200
+Subject: [PATCH] add version to binaries for slotting
+
+Signed-off-by: Bernd Waibel <waebbl-gentoo@posteo.net>
+---
+ src/bin/exr2aces/CMakeLists.txt | 10 +++++-----
+ src/bin/exrenvmap/CMakeLists.txt | 10 +++++-----
+ src/bin/exrheader/CMakeLists.txt | 10 +++++-----
+ src/bin/exrmakepreview/CMakeLists.txt | 10 +++++-----
+ src/bin/exrmaketiled/CMakeLists.txt | 10 +++++-----
+ src/bin/exrmultipart/CMakeLists.txt | 10 +++++-----
+ src/bin/exrmultiview/CMakeLists.txt | 10 +++++-----
+ src/bin/exrstdattr/CMakeLists.txt | 10 +++++-----
+ 8 files changed, 40 insertions(+), 40 deletions(-)
+
+diff --git a/src/bin/exr2aces/CMakeLists.txt b/src/bin/exr2aces/CMakeLists.txt
+index 72c4e1c..ede5973 100644
+--- a/src/bin/exr2aces/CMakeLists.txt
++++ b/src/bin/exr2aces/CMakeLists.txt
+@@ -1,14 +1,14 @@
+ # SPDX-License-Identifier: BSD-3-Clause
+ # Copyright (c) Contributors to the OpenEXR Project.
+
+-add_executable(exr2aces main.cpp)
+-target_link_libraries(exr2aces OpenEXR::OpenEXR)
+-set_target_properties(exr2aces PROPERTIES
++add_executable(exr2aces-${OpenEXR_VERSION_MAJOR} main.cpp)
++target_link_libraries(exr2aces-${OpenEXR_VERSION_MAJOR} OpenEXR::OpenEXR)
++set_target_properties(exr2aces-${OpenEXR_VERSION_MAJOR} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ )
+ if(OPENEXR_INSTALL_TOOLS)
+- install(TARGETS exr2aces DESTINATION ${CMAKE_INSTALL_BINDIR})
++ install(TARGETS exr2aces-${OpenEXR_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ if(WIN32 AND BUILD_SHARED_LIBS)
+- target_compile_definitions(exr2aces PRIVATE OPENEXR_DLL)
++ target_compile_definitions(exr2aces-${OpenEXR_VERSION_MAJOR} PRIVATE OPENEXR_DLL)
+ endif()
+diff --git a/src/bin/exrenvmap/CMakeLists.txt b/src/bin/exrenvmap/CMakeLists.txt
+index bbd26c0..cbe8401 100644
+--- a/src/bin/exrenvmap/CMakeLists.txt
++++ b/src/bin/exrenvmap/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: BSD-3-Clause
+ # Copyright (c) Contributors to the OpenEXR Project.
+
+-add_executable( exrenvmap
++add_executable( exrenvmap-${OpenEXR_VERSION_MAJOR}
+ makeLatLongMap.cpp
+ readInputImage.cpp
+ resizeImage.cpp
+@@ -11,13 +11,13 @@ add_executable( exrenvmap
+ EnvmapImage.cpp
+ )
+
+-target_link_libraries(exrenvmap OpenEXR::OpenEXR)
+-set_target_properties(exrenvmap PROPERTIES
++target_link_libraries(exrenvmap-${OpenEXR_VERSION_MAJOR} OpenEXR::OpenEXR)
++set_target_properties(exrenvmap-${OpenEXR_VERSION_MAJOR} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ )
+ if(OPENEXR_INSTALL_TOOLS)
+- install(TARGETS exrenvmap DESTINATION ${CMAKE_INSTALL_BINDIR})
++ install(TARGETS exrenvmap-${OpenEXR_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ if(WIN32 AND BUILD_SHARED_LIBS)
+- target_compile_definitions(exrenvmap PRIVATE OPENEXR_DLL)
++ target_compile_definitions(exrenvmap-${OpenEXR_VERSION_MAJOR} PRIVATE OPENEXR_DLL)
+ endif()
+diff --git a/src/bin/exrheader/CMakeLists.txt b/src/bin/exrheader/CMakeLists.txt
+index c427445..b8b0e9a 100644
+--- a/src/bin/exrheader/CMakeLists.txt
++++ b/src/bin/exrheader/CMakeLists.txt
+@@ -1,14 +1,14 @@
+ # SPDX-License-Identifier: BSD-3-Clause
+ # Copyright (c) Contributors to the OpenEXR Project.
+
+-add_executable(exrheader main.cpp)
+-target_link_libraries(exrheader OpenEXR::OpenEXR)
+-set_target_properties(exrheader PROPERTIES
++add_executable(exrheader-${OpenEXR_VERSION_MAJOR} main.cpp)
++target_link_libraries(exrheader-${OpenEXR_VERSION_MAJOR} OpenEXR::OpenEXR)
++set_target_properties(exrheader-${OpenEXR_VERSION_MAJOR} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ )
+ if(OPENEXR_INSTALL_TOOLS)
+- install(TARGETS exrheader DESTINATION ${CMAKE_INSTALL_BINDIR})
++ install(TARGETS exrheader-${OpenEXR_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ if(WIN32 AND BUILD_SHARED_LIBS)
+- target_compile_definitions(exrheader PRIVATE OPENEXR_DLL)
++ target_compile_definitions(exrheader-${OpenEXR_VERSION_MAJOR} PRIVATE OPENEXR_DLL)
+ endif()
+diff --git a/src/bin/exrmakepreview/CMakeLists.txt b/src/bin/exrmakepreview/CMakeLists.txt
+index bb8b548..03c0687 100644
+--- a/src/bin/exrmakepreview/CMakeLists.txt
++++ b/src/bin/exrmakepreview/CMakeLists.txt
+@@ -1,17 +1,17 @@
+ # SPDX-License-Identifier: BSD-3-Clause
+ # Copyright (c) Contributors to the OpenEXR Project.
+
+-add_executable(exrmakepreview
++add_executable(exrmakepreview-${OpenEXR_VERSION_MAJOR}
+ main.cpp
+ makePreview.cpp
+ )
+-target_link_libraries(exrmakepreview OpenEXR::OpenEXR)
+-set_target_properties(exrmakepreview PROPERTIES
++target_link_libraries(exrmakepreview-${OpenEXR_VERSION_MAJOR} OpenEXR::OpenEXR)
++set_target_properties(exrmakepreview-${OpenEXR_VERSION_MAJOR} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ )
+ if(OPENEXR_INSTALL_TOOLS)
+- install(TARGETS exrmakepreview DESTINATION ${CMAKE_INSTALL_BINDIR})
++ install(TARGETS exrmakepreview-${OpenEXR_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ if(WIN32 AND BUILD_SHARED_LIBS)
+- target_compile_definitions(exrmakepreview PRIVATE OPENEXR_DLL)
++ target_compile_definitions(exrmakepreview-${OpenEXR_VERSION_MAJOR} PRIVATE OPENEXR_DLL)
+ endif()
+diff --git a/src/bin/exrmaketiled/CMakeLists.txt b/src/bin/exrmaketiled/CMakeLists.txt
+index 6c8dfa5..7116b54 100644
+--- a/src/bin/exrmaketiled/CMakeLists.txt
++++ b/src/bin/exrmaketiled/CMakeLists.txt
+@@ -1,18 +1,18 @@
+ # SPDX-License-Identifier: BSD-3-Clause
+ # Copyright (c) Contributors (c) to the OpenEXR Project.
+
+-add_executable(exrmaketiled
++add_executable(exrmaketiled-${OpenEXR_VERSION_MAJOR}
+ makeTiled.cpp
+ main.cpp
+ Image.cpp
+ )
+-target_link_libraries(exrmaketiled OpenEXR::OpenEXR)
+-set_target_properties(exrmaketiled PROPERTIES
++target_link_libraries(exrmaketiled-${OpenEXR_VERSION_MAJOR} OpenEXR::OpenEXR)
++set_target_properties(exrmaketiled-${OpenEXR_VERSION_MAJOR} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ )
+ if(OPENEXR_INSTALL_TOOLS)
+- install(TARGETS exrmaketiled DESTINATION ${CMAKE_INSTALL_BINDIR})
++ install(TARGETS exrmaketiled-${OpenEXR_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ if(WIN32 AND BUILD_SHARED_LIBS)
+- target_compile_definitions(exrmaketiled PRIVATE OPENEXR_DLL)
++ target_compile_definitions(exrmaketiled-${OpenEXR_VERSION_MAJOR} PRIVATE OPENEXR_DLL)
+ endif()
+diff --git a/src/bin/exrmultipart/CMakeLists.txt b/src/bin/exrmultipart/CMakeLists.txt
+index 7f8fc1b..dad8c8d 100644
+--- a/src/bin/exrmultipart/CMakeLists.txt
++++ b/src/bin/exrmultipart/CMakeLists.txt
+@@ -1,14 +1,14 @@
+ # SPDX-License-Identifier: BSD-3-Clause
+ # Copyright (c) Contributors to the OpenEXR Project.
+
+-add_executable(exrmultipart exrmultipart.cpp)
+-target_link_libraries(exrmultipart OpenEXR::OpenEXR)
+-set_target_properties(exrmultipart PROPERTIES
++add_executable(exrmultipart-${OpenEXR_VERSION_MAJOR} exrmultipart.cpp)
++target_link_libraries(exrmultipart-${OpenEXR_VERSION_MAJOR} OpenEXR::OpenEXR)
++set_target_properties(exrmultipart-${OpenEXR_VERSION_MAJOR} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ )
+ if(OPENEXR_INSTALL_TOOLS)
+- install(TARGETS exrmultipart DESTINATION ${CMAKE_INSTALL_BINDIR})
++ install(TARGETS exrmultipart-${OpenEXR_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ if(WIN32 AND BUILD_SHARED_LIBS)
+- target_compile_definitions(exrmultipart PRIVATE OPENEXR_DLL)
++ target_compile_definitions(exrmultipart-${OpenEXR_VERSION_MAJOR} PRIVATE OPENEXR_DLL)
+ endif()
+diff --git a/src/bin/exrmultiview/CMakeLists.txt b/src/bin/exrmultiview/CMakeLists.txt
+index bbac3a6..eba48c1 100644
+--- a/src/bin/exrmultiview/CMakeLists.txt
++++ b/src/bin/exrmultiview/CMakeLists.txt
+@@ -1,18 +1,18 @@
+ # SPDX-License-Identifier: BSD-3-Clause
+ # Copyright (c) Contributors to the OpenEXR Project.
+
+-add_executable(exrmultiview
++add_executable(exrmultiview-${OpenEXR_VERSION_MAJOR}
+ makeMultiView.cpp
+ main.cpp
+ Image.cpp
+ )
+-target_link_libraries(exrmultiview OpenEXR::OpenEXR)
+-set_target_properties(exrmultiview PROPERTIES
++target_link_libraries(exrmultiview-${OpenEXR_VERSION_MAJOR} OpenEXR::OpenEXR)
++set_target_properties(exrmultiview-${OpenEXR_VERSION_MAJOR} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ )
+ if(OPENEXR_INSTALL_TOOLS)
+- install(TARGETS exrmultiview DESTINATION ${CMAKE_INSTALL_BINDIR})
++ install(TARGETS exrmultiview-${OpenEXR_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ if(WIN32 AND BUILD_SHARED_LIBS)
+- target_compile_definitions(exrmultiview PRIVATE OPENEXR_DLL)
++ target_compile_definitions(exrmultiview-${OpenEXR_VERSION_MAJOR} PRIVATE OPENEXR_DLL)
+ endif()
+diff --git a/src/bin/exrstdattr/CMakeLists.txt b/src/bin/exrstdattr/CMakeLists.txt
+index 79205fc..35ac580 100644
+--- a/src/bin/exrstdattr/CMakeLists.txt
++++ b/src/bin/exrstdattr/CMakeLists.txt
+@@ -1,14 +1,14 @@
+ # SPDX-License-Identifier: BSD-3-Clause
+ # Copyright (c) Contributors to the OpenEXR Project.
+
+-add_executable(exrstdattr main.cpp)
+-target_link_libraries(exrstdattr OpenEXR::OpenEXR)
+-set_target_properties(exrstdattr PROPERTIES
++add_executable(exrstdattr-${OpenEXR_VERSION_MAJOR} main.cpp)
++target_link_libraries(exrstdattr-${OpenEXR_VERSION_MAJOR} OpenEXR::OpenEXR)
++set_target_properties(exrstdattr-${OpenEXR_VERSION_MAJOR} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ )
+ if(OPENEXR_INSTALL_TOOLS)
+- install(TARGETS exrstdattr DESTINATION ${CMAKE_INSTALL_BINDIR})
++ install(TARGETS exrstdattr-${OpenEXR_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ if(WIN32 AND BUILD_SHARED_LIBS)
+- target_compile_definitions(exrstdattr PRIVATE OPENEXR_DLL)
++ target_compile_definitions(exrstdattr-${OpenEXR_VERSION_MAJOR} PRIVATE OPENEXR_DLL)
+ endif()
+--
+2.31.1
+
diff --git a/media-libs/openexr/openexr-3.0.5.ebuild b/media-libs/openexr/openexr-3.0.5.ebuild
new file mode 100644
index 000000000000..242e04c95413
--- /dev/null
+++ b/media-libs/openexr/openexr-3.0.5.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake flag-o-matic toolchain-funcs
+
+MY_PN=OpenEXR
+MY_PV=$(ver_cut 1)
+MY_P=${MY_PN}-${MY_PV}
+
+DESCRIPTION="ILM's OpenEXR high dynamic-range image file format libraries"
+HOMEPAGE="https://www.openexr.com/"
+SRC_URI="https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="3/29" # based on SONAME
+# imath needs keywording: arm{,64}, hppa, ia64, ppc{,64}, sparc, x64-macos, x86-solaris
+KEYWORDS="~amd64 ~ia64 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-solaris"
+IUSE="cpu_flags_x86_avx doc examples large-stack static-libs utils test threads"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ ~dev-libs/imath-${PV}:=
+ sys-libs/zlib
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-0001-changes-needed-for-proper-slotting.patch
+ "${FILESDIR}"/${P}-0002-add-version-to-binaries-for-slotting.patch
+)
+
+DOCS=( CHANGES.md GOVERNANCE.md PATENTS README.md SECURITY.md docs/SymbolVisibility.md )
+
+src_prepare() {
+ # Fix path for testsuite
+ sed -e "s:/var/tmp/:${T}:" \
+ -i "${S}"/src/test/${MY_PN}{,Fuzz,Util}Test/tmpDir.h || die "failed to set temp path for tests"
+
+ cmake_src_prepare
+
+ mv "${S}"/cmake/${MY_PN}.pc.in "${S}"/cmake/${MY_P}.pc.in || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=$(usex !static-libs)
+ -DBUILD_TESTING=$(usex test)
+ -DOPENEXR_BUILD_UTILS=$(usex utils)
+ -DOPENEXR_ENABLE_LARGE_STACK=$(usex large-stack)
+ -DOPENEXR_ENABLE_THREADING=$(usex threads)
+ -DOPENEXR_INSTALL_EXAMPLES=$(usex examples)
+ -DOPENEXR_INSTALL_PKG_CONFIG=ON
+ -DOPENEXR_INSTALL_TOOLS=$(usex utils)
+ -DOPENEXR_OUTPUT_SUBDIR="${MY_P}"
+ -DOPENEXR_USE_CLANG_TIDY=OFF # don't look for clang-tidy
+ )
+
+ use test && mycmakeargs+=( -DOPENEXR_RUN_FUZZ_TESTS=ON )
+
+ cmake_src_configure
+}
+
+src_install() {
+ if use doc; then
+ DOCS+=( docs/*.pdf )
+ fi
+ use examples && docompress -x /usr/share/doc/${PF}/examples
+ cmake_src_install
+
+ cat > "${T}"/99${PN}3 <<-EOF || die
+ LDPATH=/usr/$(get_libdir)/${MY_P}
+ EOF
+ doenvd "${T}"/99${PN}3
+}