diff options
Diffstat (limited to 'media-libs/openimageio/files/openimageio-1.6.18-repair-breaks-after-boost-python-1.65-changes.patch')
-rw-r--r-- | media-libs/openimageio/files/openimageio-1.6.18-repair-breaks-after-boost-python-1.65-changes.patch | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/media-libs/openimageio/files/openimageio-1.6.18-repair-breaks-after-boost-python-1.65-changes.patch b/media-libs/openimageio/files/openimageio-1.6.18-repair-breaks-after-boost-python-1.65-changes.patch deleted file mode 100644 index 622890e981ef..000000000000 --- a/media-libs/openimageio/files/openimageio-1.6.18-repair-breaks-after-boost-python-1.65-changes.patch +++ /dev/null @@ -1,251 +0,0 @@ -From 03eca9df5082e97f3b157ce7d1d86ef76016e52b Mon Sep 17 00:00:00 2001 -From: Jonathan Scruggs <j.scruggs@gmail.com> -Date: Thu, 28 Sep 2017 16:00:16 +0100 -Subject: [PATCH 3/3] oiio/RB-1.6: Repair breaks after boost python 1.65 - changes (#1753) - -Alas, the new Boost 1.65 moves some boost python material from one -namespace to another in a way that breaks compatibility related to -support for numpy arrays. This breaks the build, including all of -our MacOS-based TravisCI tests, which of course pick up the latest -Boost via Homebrew. - -Backported from: -https://github.com/OpenImageIO/oiio/commit/57f294df7430a860c60612c28235730fd429ea0d ---- - src/python/py_imagebuf.cpp | 22 +++++++++++++++------- - src/python/py_imageoutput.cpp | 10 +++++----- - src/python/py_oiio.cpp | 22 +++++++++++++++++++--- - src/python/py_oiio.h | 23 +++++++---------------- - 4 files changed, 46 insertions(+), 31 deletions(-) - -diff --git a/src/python/py_imagebuf.cpp b/src/python/py_imagebuf.cpp -index 28a8c537..fa271fe2 100644 ---- a/src/python/py_imagebuf.cpp -+++ b/src/python/py_imagebuf.cpp -@@ -329,7 +329,7 @@ BOOST_PYTHON_FUNCTION_OVERLOADS(ImageBuf_get_pixels_bt_overloads, - - - bool --ImageBuf_set_pixels_tuple (ImageBuf &buf, ROI roi, tuple data) -+ImageBuf_set_pixels_tuple (ImageBuf &buf, ROI roi, const tuple& data) - { - if (! roi.defined()) - roi = buf.roi(); -@@ -347,8 +347,13 @@ ImageBuf_set_pixels_tuple (ImageBuf &buf, ROI roi, tuple data) - - - bool --ImageBuf_set_pixels_array (ImageBuf &buf, ROI roi, numeric::array data) -+ImageBuf_set_pixels_array (ImageBuf &buf, ROI roi, const object& data) - { -+ // If it's a tuple, we handle that with the other function -+ extract<tuple> tup (data); -+ if (tup.check()) -+ return ImageBuf_set_pixels_tuple (buf, roi, tup()); -+ - if (! roi.defined()) - roi = buf.roi(); - roi.chend = std::min (roi.chend, buf.nchannels()+1); -@@ -356,13 +361,16 @@ ImageBuf_set_pixels_array (ImageBuf &buf, ROI roi, numeric::array data) - if (size == 0) - return true; // done - -- TypeDesc type; -- size_t pylen = 0; -- const void *addr = python_array_address (data, type, pylen); -- if (!addr || size > pylen) -+ TypeDesc elementtype; -+ size_t numelements; -+ const void* addr = python_array_address (data, elementtype, numelements); -+ if (!addr || size > numelements) - return false; // Not enough data to fill our ROI - -- buf.set_pixels (roi, type, addr); -+ std::vector<float> vals (numelements); -+ convert_types (elementtype, addr, TypeDesc::TypeFloat, vals.data(), -+ int(numelements)); -+ buf.set_pixels (roi, TypeDesc::TypeFloat, &vals[0]); - return true; - } - -diff --git a/src/python/py_imageoutput.cpp b/src/python/py_imageoutput.cpp -index 1c2e5f3c..2203aac4 100644 ---- a/src/python/py_imageoutput.cpp -+++ b/src/python/py_imageoutput.cpp -@@ -112,7 +112,7 @@ ImageOutputWrap::make_read_buffer (object &buffer, imagesize_t size) - - - bool --ImageOutputWrap::write_scanline_array (int y, int z, numeric::array &buffer) -+ImageOutputWrap::write_scanline_array (int y, int z, object &buffer) - { - TypeDesc format; - size_t numelements = 0; -@@ -154,7 +154,7 @@ ImageOutputWrap::write_scanline_bt (int y, int z, TypeDesc::BASETYPE format, - - bool - ImageOutputWrap::write_scanlines_array (int ybegin, int yend, int z, -- numeric::array &buffer) -+ object &buffer) - { - TypeDesc format; - size_t numelements = 0; -@@ -199,7 +199,7 @@ ImageOutputWrap::write_scanlines_bt (int ybegin, int yend, int z, - - bool - ImageOutputWrap::write_tile_array (int x, int y, int z, -- numeric::array &buffer) -+ object &buffer) - { - TypeDesc format; - size_t numelements = 0; -@@ -243,7 +243,7 @@ ImageOutputWrap::write_tile_bt (int x, int y, int z, TypeDesc::BASETYPE format, - bool - ImageOutputWrap::write_tiles_array (int xbegin, int xend, int ybegin, int yend, - int zbegin, int zend, -- numeric::array &buffer) -+ object &buffer) - { - TypeDesc format; - size_t numelements = 0; -@@ -290,7 +290,7 @@ ImageOutputWrap::write_tiles_bt (int xbegin, int xend, int ybegin, int yend, - - - bool --ImageOutputWrap::write_image_array (numeric::array &buffer) -+ImageOutputWrap::write_image_array (object &buffer) - { - TypeDesc format; - size_t numelements = 0; -diff --git a/src/python/py_oiio.cpp b/src/python/py_oiio.cpp -index bc10803c..5e965089 100644 ---- a/src/python/py_oiio.cpp -+++ b/src/python/py_oiio.cpp -@@ -78,6 +78,13 @@ typedesc_from_python_array_code (char code) - } - - -+std::string -+object_classname (const object& obj) -+{ -+ return extract<std::string>(obj.attr("__class__").attr("__name__")); -+} -+ -+ - - object - C_array_to_Python_array (const char *data, TypeDesc type, size_t size) -@@ -313,11 +320,18 @@ oiio_get_string_attribute_d (const char *name, const char *defaultval) - - - const void * --python_array_address (numeric::array &data, TypeDesc &elementtype, -+python_array_address (const object &data, TypeDesc &elementtype, - size_t &numelements) - { - // Figure out the type of the array -- object tcobj = data.attr("typecode"); -+ object tcobj; -+ try { -+ tcobj = data.attr("typecode"); -+ } catch(...) { -+ return NULL; -+ } -+ if (! tcobj) -+ return NULL; - extract<char> tce (tcobj); - char typecode = tce.check() ? (char)tce : 0; - elementtype = typedesc_from_python_array_code (typecode); -@@ -395,7 +409,9 @@ OIIO_DECLARE_PYMODULE(OIIO_PYMODULE_NAME) { - scope().attr("VERSION_PATCH") = OIIO_VERSION_PATCH; - scope().attr("INTRO_STRING") = OIIO_INTRO_STRING; - -- boost::python::numeric::array::set_module_and_type("array", "array"); -+ #if BOOST_VERSION < 106500 -+ boost::python::numeric::array::set_module_and_type("array", "array"); -+ #endif - } - - } // namespace PyOpenImageIO -diff --git a/src/python/py_oiio.h b/src/python/py_oiio.h -index febe2f9e..9fc04d06 100644 ---- a/src/python/py_oiio.h -+++ b/src/python/py_oiio.h -@@ -68,12 +68,13 @@ bool PyProgressCallback(void*, float); - object C_array_to_Python_array (const char *data, TypeDesc type, size_t size); - const char * python_array_code (TypeDesc format); - TypeDesc typedesc_from_python_array_code (char code); -+std::string object_classname (const object& obj); - - - // Given python array 'data', figure out its element type and number of - // elements, and return the memory address of its contents. Return NULL as - // the address for an error. --const void * python_array_address (numeric::array &data, TypeDesc &elementtype, -+const void * python_array_address (const object &data, TypeDesc &elementtype, - size_t &numelements); - - -@@ -105,16 +106,6 @@ void py_to_stdvector (std::vector<T> &vals, const tuple &tup) - - - --// Suck up a tuple of presumed T values into a vector<T> --template<typename T> --void py_to_stdvector (std::vector<T> &vals, const numeric::array &arr) --{ -- for (int i = 0, e = len(arr); i < e; ++i) -- vals.push_back (extract<T>(arr[i])); --} -- -- -- - // Convert an array of T values into either tuple. FUNC is a conversion - // function such as PyInt_FromLong, PyFloat_FromDouble, or - // PyString_FromString. -@@ -312,12 +303,12 @@ public: - stride_t xstride=AutoStride); - bool write_scanline_bt (int, int, TypeDesc::BASETYPE, - boost::python::object&, stride_t xstride=AutoStride); -- bool write_scanline_array (int, int, numeric::array&); -+ bool write_scanline_array (int, int, object&); - bool write_scanlines (int, int, int, TypeDesc, boost::python::object&, - stride_t xstride=AutoStride); - bool write_scanlines_bt (int, int, int, TypeDesc::BASETYPE, - boost::python::object&, stride_t xstride=AutoStride); -- bool write_scanlines_array (int, int, int, numeric::array&); -+ bool write_scanlines_array (int, int, int, object&); - bool write_tile (int, int, int, TypeDesc, boost::python::object&, - stride_t xstride=AutoStride, stride_t ystride=AutoStride, - stride_t zstride=AutoStride); -@@ -325,7 +316,7 @@ public: - boost::python::object&, stride_t xstride=AutoStride, - stride_t ystride=AutoStride, - stride_t zstride=AutoStride); -- bool write_tile_array (int, int, int, numeric::array&); -+ bool write_tile_array (int, int, int, object&); - bool write_tiles (int, int, int, int, int, int, - TypeDesc, boost::python::object&, - stride_t xstride=AutoStride, stride_t ystride=AutoStride, -@@ -335,7 +326,7 @@ public: - stride_t xstride=AutoStride, - stride_t ystride=AutoStride, - stride_t zstride=AutoStride); -- bool write_tiles_array (int, int, int, int, int, int, numeric::array&); -+ bool write_tiles_array (int, int, int, int, int, int, object&); - bool write_image (TypeDesc format, object &buffer, - stride_t xstride=AutoStride, - stride_t ystride=AutoStride, -@@ -344,7 +335,7 @@ public: - stride_t xstride=AutoStride, - stride_t ystride=AutoStride, - stride_t zstride=AutoStride); -- bool write_image_array (numeric::array &buffer); -+ bool write_image_array (object &buffer); - bool write_deep_scanlines (int ybegin, int yend, int z, - const DeepData &deepdata); - bool write_deep_tiles (int xbegin, int xend, int ybegin, int yend, --- -2.14.2 - |