Skip to content

Commit

Permalink
Update OpenImageIO to 2.5.13.1 and OpenEXR to 3.2.4 (#983)
Browse files Browse the repository at this point in the history
* Fix Build Installer workflow so it fails when test results don't match 2.5.0 results.
* Update OpenImageIO to 2.5.13.1
* Update OpenEXR to 3.2.4

Signed-off-by: Aaron Colwell <300262+acolwell@users.noreply.github.com>
  • Loading branch information
acolwell committed Jul 20, 2024
1 parent 7df36b4 commit 73e7dd8
Show file tree
Hide file tree
Showing 12 changed files with 122 additions and 253 deletions.
1 change: 1 addition & 0 deletions .github/workflows/build_installer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ jobs:
echo "Test results match 2.5.0 release : PASS"
else
echo "Test results match 2.5.0 release : FAILED"
exit 1
fi
win-installer-breakpad:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
Description: OpenEXR image library
Version: @OPENEXR_VERSION@

-Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR${libsuffix} -lOpenEXRUtil${libsuffix} -lOpenEXRCore${libsuffix} -lIex${libsuffix} -lIlmThread${libsuffix} @EXR_DEFLATE_LDFLAGS@
+Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR -lOpenEXRUtil -lOpenEXRCore -lIex -lIlmThread @EXR_DEFLATE_LDFLAGS@
-Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR${libsuffix} -lOpenEXRUtil${libsuffix} -lOpenEXRCore${libsuffix} -lIex${libsuffix} -lIlmThread${libsuffix}
+Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR -lOpenEXRUtil -lOpenEXRCore -lIex -lIlmThread
Cflags: -I${includedir} -I${OpenEXR_includedir} @exr_pthread_cflags@
Requires: Imath
Libs.private: @zlib_link@
Requires.private: @EXR_DEFLATE_PKGCONFIG_REQUIRES@
--- a/cmake/OpenEXRLibraryDefine.cmake
+++ b/cmake/OpenEXRLibraryDefine.cmake
@@ -49,7 +49,9 @@
Expand Down
30 changes: 16 additions & 14 deletions tools/MINGW-packages/mingw-w64-openexr/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,18 @@
_realname=openexr
pkgbase=mingw-w64-natron_${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-natron_${_realname}")
pkgver=3.2.1
pkgver=3.2.4
pkgrel=99.1
pkgdesc='A high dynamic-range image file format library (mingw-w64)'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
url="https://www.openexr.com/"
msys2_repository_url='https://github.com/AcademySoftwareFoundation/openexr'
msys2_references=(
"pypi: OpenEXR"
"cpe: cpe:/a:ilm:openexr"
"cpe: cpe:/a:openexr:openexr"
)
license=('spdx:BSD-3-Clause')
depends=("${MINGW_PACKAGE_PREFIX}-natron_imath"
"${MINGW_PACKAGE_PREFIX}-libdeflate"
Expand All @@ -28,8 +34,8 @@ replaces=(
source=("https://github.com/openexr/openexr/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz"
0006-cmake-soversion.patch
0007-export-TypedAttribute-value.patch)
sha256sums=('61e175aa2203399fb3c8c2288752fbea3c2637680d50b6e306ea5f8ffdd46a9b'
'a5ce463815e8d05c879dbe6a255e9f8ac2697cd3ef4242dac1e5cb331f78ed02'
sha256sums=('81e6518f2c4656fdeaf18a018f135e96a96e7f66dbe1c1f05860dd94772176cc'
'5653da878ebbf5f3087bb529213931b48e151aef082b34e19d189e22be0411e7'
'204777b48cde1c4d390789f10c5e429d5295be701f68a7937a90d0ecf271c048')

# Helper macros to help make tasks easier #
Expand Down Expand Up @@ -59,10 +65,6 @@ build() {
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi

if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
extra_config+=("-DOPENEXR_BUILD_TOOLS=OFF")
fi

CXXFLAGS+=" -Wno-ignored-attributes"

MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
Expand All @@ -72,18 +74,18 @@ build() {
${extra_config[@]} \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=OFF \
-DOPENEXR_INSTALL_EXAMPLES=OFF \
-DOPENEXR_BUILD_EXAMPLES=OFF \
../${_realname}-${pkgver}

${MINGW_PREFIX}/bin/cmake --build .
}

#check() {
# cd "${srcdir}/build-${MSYSTEM}"
# ${MINGW_PREFIX}/bin/cmake -DBUILD_TESTING=ON ../${_realname}-${pkgver}
# ${MINGW_PREFIX}/bin/cmake --build .
# ${MINGW_PREFIX}/bin/ctest.exe ./ || true
#}
check() {
cd "${srcdir}/build-${MSYSTEM}"
${MINGW_PREFIX}/bin/cmake -DBUILD_TESTING=ON ../${_realname}-${pkgver}
${MINGW_PREFIX}/bin/cmake --build .
${MINGW_PREFIX}/bin/ctest.exe ./ || true
}

package() {
cd "${srcdir}/build-${MSYSTEM}"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
--- a/src/include/OpenImageIO/typedesc.h.orig 2014-01-12 23:34:55.402417300 +0000
+++ b/src/include/OpenImageIO/typedesc.h 2014-01-12 23:35:17.974708400 +0000
@@ -47,6 +47,13 @@
struct OIIO_API TypeDesc {
/// BASETYPE is a simple enum describing the base data types that
/// correspond (mostly) to the C/C++ built-in types.
+// ansidecl.h contains:
+// #if defined (__STDC__) || defined(__cplusplus) .. || defined(_WIN32)
+// "#define PTR void *"
+#ifdef PTR
+#define PTR_OLD_DEFINE PTR
+#undef PTR
+#endif
enum BASETYPE {
UNKNOWN, ///< unknown type
NONE, ///< void/no type
@@ -79,6 +79,10 @@
PTR, ///< A pointer value.
LASTBASE
};
+// Set PTR back what it previously contained.
+#ifdef PTR_OLD_DEFINE
+#define PTR PTR_OLD_DEFINE
+#endif

/// AGGREGATE describes whether our TypeDesc is a simple scalar of one
/// of the BASETYPE's, or one of several simple aggregates.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/src/include/OpenImageIO/simd.h
+++ b/src/include/OpenImageIO/simd.h
@@ -77,7 +77,7 @@

#if defined(__CUDA_ARCH__)
// Cuda -- don't include any of these headers
-#elif defined(_WIN32)
+#elif defined(_MSC_VER) || (defined(__MINGW32__) && !defined(__aarch64__))
# include <intrin.h>
#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) || defined(__e2k__)
# include <x86intrin.h>
100 changes: 59 additions & 41 deletions tools/MINGW-packages/mingw-w64-openimageio/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -3,103 +3,119 @@
_realname=openimageio
pkgbase=mingw-w64-natron_${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-natron_${_realname}"
pkgver=2.4.13.0
pkgver=2.5.13.1
pkgrel=99.1
pkgdesc="A library for reading and writing images, including classes, utilities, and applications (mingw-w64)"
arch=('any')
url="http://www.openimageio.org/"
license=("BSD-3")
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://www.openimageio.org/"
msys2_repository_url="https://github.com/AcademySoftwareFoundation/OpenImageIO"
msys2_references=(
'archlinux: openimageio'
'gentoo: media-libs/openimageio'
"cpe: cpe:/a:openimageio:openimageio"
)
license=('spdx:Apache-2.0')
depends=("${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-bzip2"
"${MINGW_PACKAGE_PREFIX}-freetype"
"${MINGW_PACKAGE_PREFIX}-fmt"
"${MINGW_PACKAGE_PREFIX}-jasper"
"${MINGW_PACKAGE_PREFIX}-giflib"
"${MINGW_PACKAGE_PREFIX}-libheif"
"${MINGW_PACKAGE_PREFIX}-libjpeg"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-natron_libraw-gpl2"
"${MINGW_PACKAGE_PREFIX}-libwebp"
"${MINGW_PACKAGE_PREFIX}-libtiff"
"${MINGW_PACKAGE_PREFIX}-libwebp"
"${MINGW_PACKAGE_PREFIX}-natron_opencolorio-git"
"${MINGW_PACKAGE_PREFIX}-natron_openexr"
"${MINGW_PACKAGE_PREFIX}-libheif"
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
"${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-cc"
"git")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-fmt"
"${MINGW_PACKAGE_PREFIX}-robin-map")
options=('strip' 'buildflags' '!debug')
source=(${_realname}-${pkgver}.tar.gz::https://github.com/OpenImageIO/oiio/archive/v${pkgver}.tar.gz
git+https://github.com/OpenImageIO/oiio-images.git
oiio-2.1.10-boost.diff
source=(https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz
0000-workaround-ansidecl-h-PTR-define-conflict.patch
0001-Fix-building-on-mingw-w64-aarch64.patch
oiio-2.0.8-invalidatespec.patch
oiio-2.2.14-libraw.diff
oiio-2.4.13.0-thread-shutdown.patch # Remove when updating to a future 2.5 release that has these changes.
)
sha256sums=('bb10a7ab6dff5dae2c6d854e9da38136546232235913237e8b1b3c99abb7dd0b'
'SKIP'
'e8aec185fd20a6e5cdf77a7155fcaedb301c07bd806f73bd30dfc75af721ac83'
sha256sums=('0fbaec6c15215e11cf4545128c4d64eaa97b461cb9b5fb8a76f9a7d35c99e3df'
'9e4e21333676268a91c0f4e7676aeab7658e5f748e7e5cfe43a92f0fd7931229'
'91bd9a6a07f448a6dd8d1ff9a1c8cefaedb8cdd77029b84b6fc02fe9a7cf71f0'
'd9c2e066ce0e94404d31fd649341cc0ee03faf9b4023dfcdf5cf59fbbf466127'
'89e21326d6445304293bcedc3a52bfa1dfec9b769b397f6a312ca27d1de93423'
'3847eba62ac7a689c4c70b814461583d9c6e921259dd0343b17509d8b35d6f0f'
'59d8b06e11945fd703c1db354457ca2aedda3d48402d89e47f376ff90a17255e'
)

# Helper macros to help make tasks easier #
apply_patch_with_msg() {
for _patch in "$@"
do
msg2 "Applying ${_patch}"
patch -Nbp1 -i "${srcdir}/${_patch}"
done
}

prepare() {
cd ${srcdir}/OpenImageIO-${pkgver}
#patch -p0 -i ${srcdir}/oiio-2.1.10-boost.diff
patch -p1 -i ${srcdir}/oiio-2.0.8-invalidatespec.patch
patch -p0 -i ${srcdir}/oiio-2.2.14-libraw.diff
patch -p1 -i ${srcdir}/oiio-2.4.13.0-thread-shutdown.patch
apply_patch_with_msg \
0000-workaround-ansidecl-h-PTR-define-conflict.patch \
0001-Fix-building-on-mingw-w64-aarch64.patch \
oiio-2.0.8-invalidatespec.patch \
oiio-2.2.14-libraw.diff
}

build() {
[[ -d "${srcdir}"/build-${MSYSTEM} ]] && rm -rf "${srcdir}"/build-${MSYSTEM}
mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM}

declare -a extra_config
if check_option "debug" "n"; then
extra_config+=("-DCMAKE_BUILD_TYPE=Release")
else
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi

[[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}"
mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST}

MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
PKG_CONFIG_PATH="${MINGW_PREFIX}/libraw-gpl2/lib/pkgconfig:${PKG_CONFIG_PATH}" \
${MINGW_PREFIX}/bin/cmake.exe \
-Wno-dev \
-G"MSYS Makefiles" \
-G"Ninja" \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DUSE_FFMPEG=OFF \
-DUSE_OPENJPEG=ON \
-DCMAKE_DLL_NAME_WITH_SOVERSION=ON \
-DCMAKE_CXX_STANDARD=14 \
-DUSE_FREETYPE=ON \
-DUSE_OPENCV=OFF \
-DUSE_FIELD3D=OFF \
-DUSE_OPENSSL=OFF \
-DUSE_OPENGL=OFF \
-DUSE_QT=OFF \
-DUSE_FFMPEG=OFF \
-DUSE_EXTERNAL_PUGIXML=OFF \
-DOIIO_BUILD_TESTS=OFF \
-DBUILD_TESTING=OFF \
-DSTOP_ON_WARNING=OFF \
-DUSE_GIF=ON \
-DUSE_HEIF=ON \
-DUSE_OPENJPEG=ON \
-DUSE_LIBRAW=ON \
-DUSE_NUKE=OFF \
-DSTOP_ON_WARNING=OFF \
-DLibRaw_ROOT="${MINGW_PREFIX}/libraw-gpl2" \
-DBOOST_ROOT=${MINGW_PREFIX} \
-DOpenJPEG_ROOT=${MINGW_PREFIX} \
-DOPENJPEG_INCLUDE_DIR=`pkg-config --variable=includedir libopenjp2` \
-DUSE_QT=OFF \
-DUSE_PYTHON=OFF \
-DUSE_PYTHON3=OFF \
-DUSE_PTEX=OFF \
-DUSE_EXTERNAL_PUGIXML=OFF \
-DOIIO_BUILD_TESTS=OFF \
-DCMAKE_CXX_STANDARD=14 \
-DCMAKE_SHARED_LINKER_FLAGS=" -Wl,--export-all-symbols -Wl,--enable-auto-import " \
${extra_config} \
../OpenImageIO-${pkgver}
make

${MINGW_PREFIX}/bin/cmake --build .
}

package() {
cd "${srcdir}"/build-${MINGW_CHOST}
#make DESTDIR=${pkgdir} install
cd "${srcdir}"/build-${MSYSTEM}

DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install .

local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
Expand All @@ -112,4 +128,6 @@ package() {
sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
sed -e "s|${MINGW_PREFIX}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
done

install -Dm644 ${srcdir}/OpenImageIO-${pkgver}/LICENSE.md "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.md"
}
20 changes: 0 additions & 20 deletions tools/MINGW-packages/mingw-w64-openimageio/oiio-2.1.10-boost.diff

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/raw.imageio/rawinput.cpp.orig 2021-06-26 18:09:54.016303700 +0200
+++ src/raw.imageio/rawinput.cpp 2021-06-26 18:13:58.549159600 +0200
--- a/src/raw.imageio/rawinput.cpp.orig 2021-06-26 18:09:54.016303700 +0200
+++ b/src/raw.imageio/rawinput.cpp 2021-06-26 18:13:58.549159600 +0200
@@ -368,7 +368,7 @@
m_processor->imgdata.params.user_flip
= config.get_int_attribute("raw:user_flip", -1);
Expand Down
Loading

0 comments on commit 73e7dd8

Please sign in to comment.