aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Willing <chris.willing@linux.com>2022-07-06 15:34:46 +1000
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2022-07-09 10:06:23 +0700
commit9498fa9629c064c673f56fbf3a71717a0ac346e7 (patch)
tree34266ddf8e16839a0a4500a669b4347bfaad9484
parent572454e4c51b7ffd4068f34d4fd3882e9d96db78 (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.SlackBuild4
-rw-r--r--graphics/Blender/blender-3.0.1-openexr.patch190
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(