diff options
author | Christoph Willing <chris.willing@linux.com> | 2022-07-06 15:34:46 +1000 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2022-07-09 10:06:23 +0700 |
commit | 9498fa9629c064c673f56fbf3a71717a0ac346e7 (patch) | |
tree | 34266ddf8e16839a0a4500a669b4347bfaad9484 | |
parent | 572454e4c51b7ffd4068f34d4fd3882e9d96db78 (diff) |
graphics/Blender: Patch for openexr-3.x
Signed-off-by: Christoph Willing <chris.willing@linux.com>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r-- | graphics/Blender/Blender.SlackBuild | 4 | ||||
-rw-r--r-- | graphics/Blender/blender-3.0.1-openexr.patch | 190 |
2 files changed, 193 insertions, 1 deletions
diff --git a/graphics/Blender/Blender.SlackBuild b/graphics/Blender/Blender.SlackBuild index 6436396a755a..6b15f2804ffe 100644 --- a/graphics/Blender/Blender.SlackBuild +++ b/graphics/Blender/Blender.SlackBuild @@ -31,7 +31,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=Blender VERSION=${VERSION:-3.0.1} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -102,6 +102,8 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ +if pkg-config --atleast-version=3 OpenEXR ; then patch -p1 < $CWD/blender-3.0.1-openexr.patch ; fi + # 20220322 bkw: 32-bit needs this [ -z "$LIBDIRSUFFIX" ] && patch -p1 < $CWD/overloaded_min.diff diff --git a/graphics/Blender/blender-3.0.1-openexr.patch b/graphics/Blender/blender-3.0.1-openexr.patch new file mode 100644 index 000000000000..435498cd8a3d --- /dev/null +++ b/graphics/Blender/blender-3.0.1-openexr.patch @@ -0,0 +1,190 @@ +https://src.fedoraproject.org/rpms/blender/blob/rawhide/f/blender-openexr.patch + +--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp ++++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp +@@ -32,30 +32,31 @@ + #include <stdexcept> + #include <string> + +-#include <Iex.h> ++#include <OpenEXR/Iex.h> + #include <ImathBox.h> +-#include <ImfArray.h> +-#include <ImfChannelList.h> +-#include <ImfCompression.h> +-#include <ImfCompressionAttribute.h> +-#include <ImfIO.h> +-#include <ImfInputFile.h> +-#include <ImfOutputFile.h> +-#include <ImfPixelType.h> +-#include <ImfStandardAttributes.h> +-#include <ImfStringAttribute.h> +-#include <ImfVersion.h> +-#include <half.h> ++#include <OpenEXR/ImfArray.h> ++#include <OpenEXR/ImfFrameBuffer.h> ++#include <OpenEXR/ImfChannelList.h> ++#include <OpenEXR/ImfCompression.h> ++#include <OpenEXR/ImfCompressionAttribute.h> ++#include <OpenEXR/ImfIO.h> ++#include <OpenEXR/ImfInputFile.h> ++#include <OpenEXR/ImfOutputFile.h> ++#include <OpenEXR/ImfPixelType.h> ++#include <OpenEXR/ImfStandardAttributes.h> ++#include <OpenEXR/ImfStringAttribute.h> ++#include <OpenEXR/ImfVersion.h> ++#include <Imath/half.h> + + /* multiview/multipart */ +-#include <ImfInputPart.h> +-#include <ImfMultiPartInputFile.h> +-#include <ImfMultiPartOutputFile.h> +-#include <ImfMultiView.h> +-#include <ImfOutputPart.h> +-#include <ImfPartHelper.h> +-#include <ImfPartType.h> +-#include <ImfTiledOutputPart.h> ++#include <OpenEXR/ImfInputPart.h> ++#include <OpenEXR/ImfMultiPartInputFile.h> ++#include <OpenEXR/ImfMultiPartOutputFile.h> ++#include <OpenEXR/ImfMultiView.h> ++#include <OpenEXR/ImfOutputPart.h> ++#include <OpenEXR/ImfPartHelper.h> ++#include <OpenEXR/ImfPartType.h> ++#include <OpenEXR/ImfTiledOutputPart.h> + + #include "DNA_scene_types.h" /* For OpenEXR compression constants */ + +@@ -131,12 +132,12 @@ class IMemStream : public Imf::IStream { + return false; + } + +- Int64 tellg() override ++ uint64_t tellg() override + { + return _exrpos; + } + +- void seekg(Int64 pos) override ++ void seekg(uint64_t pos) override + { + _exrpos = pos; + } +@@ -146,8 +147,8 @@ class IMemStream : public Imf::IStream { + } + + private: +- Int64 _exrpos; +- Int64 _exrsize; ++ uint64_t _exrpos; ++ uint64_t _exrsize; + unsigned char *_exrbuf; + }; + +@@ -182,12 +183,12 @@ class IFileStream : public Imf::IStream + return check_error(); + } + +- Int64 tellg() override ++ uint64_t tellg() override + { + return std::streamoff(ifs.tellg()); + } + +- void seekg(Int64 pos) override ++ void seekg(uint64_t pos) override + { + ifs.seekg(pos); + check_error(); +@@ -231,19 +232,19 @@ class OMemStream : public OStream { + ibuf->encodedsize += n; + } + +- Int64 tellp() override ++ uint64_t tellp() override + { + return offset; + } + +- void seekp(Int64 pos) override ++ void seekp(uint64_t pos) override + { + offset = pos; + ensure_size(offset); + } + + private: +- void ensure_size(Int64 size) ++ void ensure_size(uint64_t size) + { + /* if buffer is too small increase it. */ + while (size > ibuf->encodedbuffersize) { +@@ -254,7 +255,7 @@ class OMemStream : public OStream { + } + + ImBuf *ibuf; +- Int64 offset; ++ uint64_t offset; + }; + + /* File Output Stream */ +@@ -284,12 +285,12 @@ class OFileStream : public OStream { + check_error(); + } + +- Int64 tellp() override ++ uint64_t tellp() override + { + return std::streamoff(ofs.tellp()); + } + +- void seekp(Int64 pos) override ++ void seekp(uint64_t pos) override + { + ofs.seekp(pos); + check_error(); +--- a/build_files/cmake/Modules/FindOpenEXR.cmake ++++ b/build_files/cmake/Modules/FindOpenEXR.cmake +@@ -25,6 +25,7 @@ + # see accompanying file BSD-3-Clause-license.txt for details. + #============================================================================= + ++ + # If OPENEXR_ROOT_DIR was defined in the environment, use it. + IF(NOT OPENEXR_ROOT_DIR AND NOT $ENV{OPENEXR_ROOT_DIR} STREQUAL "") + SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR}) +@@ -33,6 +34,16 @@ ENDIF() + # Old versions (before 2.0?) do not have any version string, just assuming this should be fine though. + SET(_openexr_libs_ver_init "2.0") + ++find_package(Imath CONFIG QUIET) ++if(TARGET Imath::Imath) ++SET(_openexr_FIND_COMPONENTS ++ Imath ++ Iex ++ OpenEXR ++ IlmThread ++) ++ ++else() + SET(_openexr_FIND_COMPONENTS + Half + Iex +@@ -40,6 +51,7 @@ SET(_openexr_FIND_COMPONENTS + IlmThread + Imath + ) ++endif() + + SET(_openexr_SEARCH_DIRS + ${OPENEXR_ROOT_DIR} +@@ -121,6 +133,9 @@ IF(OPENEXR_FOUND) + SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES}) + # Both include paths are needed because of dummy OSL headers mixing #include <OpenEXR/foo.h> and #include <foo.h> :( + SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR) ++ if(TARGET Imath::Imath) ++ list(APPEND OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR}/Imath) ++ endif() + ENDIF() + + MARK_AS_ADVANCED( |