deps: oiio, openexr, tiff updates
OpenimageIO v2.5.11.0 OpenEXR 3.2.4 LibTIFF 4.6.0 This updates OIIO and resolves some CVE's in openexr and libtiff. some patches that were merged upstream have been removed Pull Request: https://projects.blender.org/blender/blender/pulls/121823
This commit is contained in:
committed by
Ray molenkamp
parent
6e0a49265a
commit
8db709e149
@@ -5,6 +5,8 @@
|
||||
|
||||
set(DEFLATE_EXTRA_ARGS
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DLIBDEFLATE_BUILD_STATIC_LIB=ON
|
||||
-DLIBDEFLATE_BUILD_SHARED_LIB=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_deflate
|
||||
|
||||
@@ -18,7 +18,6 @@ set(OPENEXR_EXTRA_ARGS
|
||||
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DOPENEXR_INSTALL_TOOLS=OFF
|
||||
-DOPENEXR_INSTALL_EXAMPLES=OFF
|
||||
-DImath_DIR=${LIBDIR}/imath/lib/cmake/Imath
|
||||
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||
-Dlibdeflate_DIR=${LIBDIR}/deflate/lib/cmake/libdeflate
|
||||
@@ -29,10 +28,6 @@ ExternalProject_Add(external_openexr
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENEXR_HASH_TYPE}=${OPENEXR_HASH}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 2 -d
|
||||
${BUILD_DIR}/openexr/src/external_openexr <
|
||||
${PATCH_DIR}/openexr_deflate_1588.diff
|
||||
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/openexr
|
||||
|
||||
|
||||
@@ -104,6 +104,8 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-Dlibdeflate_ROOT=${LIBDIR}/deflate
|
||||
-Dfmt_ROOT=${LIBDIR}/fmt
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_openimageio
|
||||
@@ -120,9 +122,6 @@ ExternalProject_Add(external_openimageio
|
||||
${PATCH_CMD} -p 1 -N -d
|
||||
${BUILD_DIR}/openimageio/src/external_openimageio/ <
|
||||
${PATCH_DIR}/oiio_webp.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d
|
||||
${BUILD_DIR}/openimageio/src/external_openimageio/ <
|
||||
${PATCH_DIR}/oiio_4044.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d
|
||||
${BUILD_DIR}/openimageio/src/external_openimageio/ <
|
||||
${PATCH_DIR}/oiio_4062.diff
|
||||
|
||||
@@ -83,9 +83,9 @@ set(DEFLATE_HASH a29d9dd653cbe03f2d5cd83972063f9e)
|
||||
set(DEFLATE_HASH_TYPE MD5)
|
||||
set(DEFLATE_FILE libdeflate-v${DEFLATE_VERSION}.tar.gz)
|
||||
|
||||
set(OPENEXR_VERSION 3.2.1)
|
||||
set(OPENEXR_VERSION 3.2.4)
|
||||
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||
set(OPENEXR_HASH 1d5bb07433ec641cf3bb1b519a27ea6f)
|
||||
set(OPENEXR_HASH 83b23b937b3a76fd37680422f41b81b7)
|
||||
set(OPENEXR_HASH_TYPE MD5)
|
||||
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
|
||||
set(OPENEXR_CPE "cpe:2.3:a:openexr:openexr:${OPENEXR_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -185,9 +185,9 @@ set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${
|
||||
set(OPENMP_HASH_TYPE MD5)
|
||||
set(OPENMP_FILE openmp-${OPENMP_VERSION}.src.tar.xz)
|
||||
|
||||
set(OPENIMAGEIO_VERSION v2.5.6.0)
|
||||
set(OPENIMAGEIO_VERSION v2.5.11.0)
|
||||
set(OPENIMAGEIO_URI https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
set(OPENIMAGEIO_HASH d02db17716a20a71a446bdc6de57bd9c)
|
||||
set(OPENIMAGEIO_HASH 691e9364d25e2878e042d48980fad593)
|
||||
set(OPENIMAGEIO_HASH_TYPE MD5)
|
||||
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
|
||||
@@ -208,9 +208,9 @@ set(ROBINMAP_HASH c08ec4b1bf1c85eb0d6432244a6a89862229da1cb834f3f90fba8dc35d8c8e
|
||||
set(ROBINMAP_HASH_TYPE SHA256)
|
||||
set(ROBINMAP_FILE robinmap-${ROBINMAP_VERSION}.tar.gz)
|
||||
|
||||
set(TIFF_VERSION 4.5.1)
|
||||
set(TIFF_VERSION 4.6.0)
|
||||
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
|
||||
set(TIFF_HASH d08c5f9eee6350fffc239e5993d92779)
|
||||
set(TIFF_HASH fc7d49a9348b890b29f91a4ecadd5b49)
|
||||
set(TIFF_HASH_TYPE MD5)
|
||||
set(TIFF_FILE tiff-${TIFF_VERSION}.tar.gz)
|
||||
set(TIFF_CPE "cpe:2.3:a:libtiff:libtiff:${TIFF_VERSION}:*:*:*:*:*:*:*")
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/png.imageio/pngoutput.cpp b/src/png.imageio/pngoutput.cpp
|
||||
index cc694f5a..f752ab7d 100644
|
||||
--- a/src/png.imageio/pngoutput.cpp
|
||||
+++ b/src/png.imageio/pngoutput.cpp
|
||||
@@ -385,7 +385,7 @@ PNGOutput::write_scanlines(int ybegin, int yend, int z, TypeDesc format,
|
||||
unassoc_scratch.reset(new float[nvals]);
|
||||
float* floatvals = unassoc_scratch.get();
|
||||
// Contiguize and convert to float
|
||||
- OIIO::convert_image(m_spec.nchannels, m_spec.width, m_spec.height, 1,
|
||||
+ OIIO::convert_image(m_spec.nchannels, m_spec.width, yend - ybegin, 1,
|
||||
data, format, xstride, ystride, AutoStride,
|
||||
floatvals, TypeFloat, AutoStride, AutoStride,
|
||||
AutoStride);
|
||||
@@ -1,140 +0,0 @@
|
||||
diff --git a/openexr_original/cmake/OpenEXRSetup.cmake b/openexr/cmake/OpenEXRSetup.cmake
|
||||
index 425992d..fa80886 100644
|
||||
--- a/openexr_original/cmake/OpenEXRSetup.cmake
|
||||
+++ b/openexr/cmake/OpenEXRSetup.cmake
|
||||
@@ -160,71 +160,79 @@ set(OPENEXR_DEFLATE_TAG "v1.18" CACHE STRING "Tag to use for libdeflate source r
|
||||
if(NOT OPENEXR_FORCE_INTERNAL_DEFLATE)
|
||||
#TODO: ^^ Release should not clone from main, this is a place holder
|
||||
set(CMAKE_IGNORE_PATH "${CMAKE_CURRENT_BINARY_DIR}/_deps/deflate-src/config;${CMAKE_CURRENT_BINARY_DIR}/_deps/deflate-build/config")
|
||||
- include(FindPkgConfig)
|
||||
- pkg_check_modules(deflate IMPORTED_TARGET GLOBAL libdeflate)
|
||||
- set(CMAKE_IGNORE_PATH)
|
||||
- if (deflate_FOUND)
|
||||
- message(STATUS "Using libdeflate from ${deflate_LINK_LIBRARIES}")
|
||||
+ find_package(libdeflate CONFIG)
|
||||
+ if(libdeflate_FOUND)
|
||||
+ message(STATUS "Using libdeflate from ${libdeflate_DIR}")
|
||||
+ else()
|
||||
+ include(FindPkgConfig)
|
||||
+ pkg_check_modules(deflate IMPORTED_TARGET GLOBAL libdeflate)
|
||||
+ set(CMAKE_IGNORE_PATH)
|
||||
+ if (deflate_FOUND)
|
||||
+ message(STATUS "Using libdeflate from ${deflate_LINK_LIBRARIES}")
|
||||
+ endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-if(NOT TARGET PkgConfig::deflate AND NOT deflate_FOUND)
|
||||
- if(OPENEXR_FORCE_INTERNAL_DEFLATE)
|
||||
- message(STATUS "libdeflate forced internal, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})")
|
||||
- else()
|
||||
- message(STATUS "libdeflate was not found, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})")
|
||||
- endif()
|
||||
- include(FetchContent)
|
||||
- FetchContent_Declare(Deflate
|
||||
- GIT_REPOSITORY "${OPENEXR_DEFLATE_REPO}"
|
||||
- GIT_TAG "${OPENEXR_DEFLATE_TAG}"
|
||||
- GIT_SHALLOW ON
|
||||
- )
|
||||
+if(libdeflate_FOUND)
|
||||
+ set(EXR_DEFLATE_LIB libdeflate::libdeflate_static)
|
||||
+else()
|
||||
+ if(NOT TARGET PkgConfig::deflate AND NOT deflate_FOUND)
|
||||
+ if(OPENEXR_FORCE_INTERNAL_DEFLATE)
|
||||
+ message(STATUS "libdeflate forced internal, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})")
|
||||
+ else()
|
||||
+ message(STATUS "libdeflate was not found, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})")
|
||||
+ endif()
|
||||
+ include(FetchContent)
|
||||
+ FetchContent_Declare(Deflate
|
||||
+ GIT_REPOSITORY "${OPENEXR_DEFLATE_REPO}"
|
||||
+ GIT_TAG "${OPENEXR_DEFLATE_TAG}"
|
||||
+ GIT_SHALLOW ON
|
||||
+ )
|
||||
|
||||
- FetchContent_GetProperties(Deflate)
|
||||
- if(NOT Deflate_POPULATED)
|
||||
- FetchContent_Populate(Deflate)
|
||||
- endif()
|
||||
+ FetchContent_GetProperties(Deflate)
|
||||
+ if(NOT Deflate_POPULATED)
|
||||
+ FetchContent_Populate(Deflate)
|
||||
+ endif()
|
||||
|
||||
- # Rather than actually compile something, just embed the sources
|
||||
- # into exrcore. This could in theory cause issues when compiling as
|
||||
- # a static library into another application which also uses
|
||||
- # libdeflate but we switch the export symbol to hidden which should
|
||||
- # hide the symbols when linking...
|
||||
- set(EXR_DEFLATE_SOURCES
|
||||
- lib/arm/cpu_features.c
|
||||
- lib/x86/cpu_features.c
|
||||
- lib/utils.c
|
||||
- lib/deflate_compress.c
|
||||
- lib/deflate_decompress.c
|
||||
- lib/adler32.c
|
||||
- lib/zlib_compress.c
|
||||
- lib/zlib_decompress.c)
|
||||
- # don't need these
|
||||
- # lib/crc32.c
|
||||
- # lib/gzip_compress.c
|
||||
- # lib/gzip_decompress.c
|
||||
- file(READ ${deflate_SOURCE_DIR}/lib/lib_common.h DEFLATE_HIDE)
|
||||
- string(REPLACE "visibility(\"default\")" "visibility(\"hidden\")" DEFLATE_HIDE "${DEFLATE_HIDE}")
|
||||
- string(REPLACE "__declspec(dllexport)" "/**/" DEFLATE_HIDE "${DEFLATE_HIDE}")
|
||||
- file(WRITE ${deflate_SOURCE_DIR}/lib/lib_common.h "${DEFLATE_HIDE}")
|
||||
+ # Rather than actually compile something, just embed the sources
|
||||
+ # into exrcore. This could in theory cause issues when compiling as
|
||||
+ # a static library into another application which also uses
|
||||
+ # libdeflate but we switch the export symbol to hidden which should
|
||||
+ # hide the symbols when linking...
|
||||
+ set(EXR_DEFLATE_SOURCES
|
||||
+ lib/arm/cpu_features.c
|
||||
+ lib/x86/cpu_features.c
|
||||
+ lib/utils.c
|
||||
+ lib/deflate_compress.c
|
||||
+ lib/deflate_decompress.c
|
||||
+ lib/adler32.c
|
||||
+ lib/zlib_compress.c
|
||||
+ lib/zlib_decompress.c)
|
||||
+ # don't need these
|
||||
+ # lib/crc32.c
|
||||
+ # lib/gzip_compress.c
|
||||
+ # lib/gzip_decompress.c
|
||||
+ file(READ ${deflate_SOURCE_DIR}/lib/lib_common.h DEFLATE_HIDE)
|
||||
+ string(REPLACE "visibility(\"default\")" "visibility(\"hidden\")" DEFLATE_HIDE "${DEFLATE_HIDE}")
|
||||
+ string(REPLACE "__declspec(dllexport)" "/**/" DEFLATE_HIDE "${DEFLATE_HIDE}")
|
||||
+ file(WRITE ${deflate_SOURCE_DIR}/lib/lib_common.h "${DEFLATE_HIDE}")
|
||||
|
||||
- # cmake makes fetch content name lowercase for the properties (to deflate)
|
||||
- list(TRANSFORM EXR_DEFLATE_SOURCES PREPEND ${deflate_SOURCE_DIR}/)
|
||||
- set(EXR_DEFLATE_INCLUDE_DIR ${deflate_SOURCE_DIR})
|
||||
- set(EXR_DEFLATE_LIB)
|
||||
-else()
|
||||
- set(EXR_DEFLATE_INCLUDE_DIR)
|
||||
- set(EXR_DEFLATE_LIB ${deflate_LIBRARIES})
|
||||
- # set EXR_DEFATE_LDFLAGS for OpenEXR.pc.in for static build
|
||||
- if (BUILD_SHARED_LIBS)
|
||||
- set(EXR_DEFLATE_LDFLAGS "")
|
||||
+ # cmake makes fetch content name lowercase for the properties (to deflate)
|
||||
+ list(TRANSFORM EXR_DEFLATE_SOURCES PREPEND ${deflate_SOURCE_DIR}/)
|
||||
+ set(EXR_DEFLATE_INCLUDE_DIR ${deflate_SOURCE_DIR})
|
||||
+ set(EXR_DEFLATE_LIB)
|
||||
else()
|
||||
- set(EXR_DEFLATE_LDFLAGS "-l${deflate_LIBRARIES}")
|
||||
+ set(EXR_DEFLATE_INCLUDE_DIR)
|
||||
+ set(EXR_DEFLATE_LIB ${deflate_LIBRARIES})
|
||||
+ # set EXR_DEFATE_LDFLAGS for OpenEXR.pc.in for static build
|
||||
+ if (BUILD_SHARED_LIBS)
|
||||
+ set(EXR_DEFLATE_LDFLAGS "")
|
||||
+ else()
|
||||
+ set(EXR_DEFLATE_LDFLAGS "-l${deflate_LIBRARIES}")
|
||||
+ endif()
|
||||
+ set(EXR_DEFLATE_SOURCES)
|
||||
endif()
|
||||
- set(EXR_DEFLATE_SOURCES)
|
||||
endif()
|
||||
-
|
||||
#######################################
|
||||
# Find or install Imath
|
||||
#######################################
|
||||
@@ -21,20 +21,3 @@ diff -Naur orig/src/cmake/compiler.cmake external_openimageio/src/cmake/compiler
|
||||
endif (MSVC)
|
||||
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD"
|
||||
diff --git a/src/libOpenImageIO/imageioplugin.cpp b/src/libOpenImageIO/imageioplugin.cpp
|
||||
index 9ad45042e..d2a0210ff 100644
|
||||
--- a/src/libOpenImageIO/imageioplugin.cpp
|
||||
+++ b/src/libOpenImageIO/imageioplugin.cpp
|
||||
@@ -469,12 +469,6 @@ pvt::catalog_all_plugins(std::string searchpath)
|
||||
|
||||
std::unique_lock<std::recursive_mutex> lock(imageio_mutex);
|
||||
append_if_env_exists(searchpath, "OIIO_LIBRARY_PATH", true);
|
||||
-#ifdef __APPLE__
|
||||
- append_if_env_exists(searchpath, "DYLD_LIBRARY_PATH");
|
||||
-#endif
|
||||
-#if defined(__linux__) || defined(__FreeBSD__)
|
||||
- append_if_env_exists(searchpath, "LD_LIBRARY_PATH");
|
||||
-#endif
|
||||
|
||||
size_t patlen = pattern.length();
|
||||
std::vector<std::string> dirs;
|
||||
|
||||
Reference in New Issue
Block a user