Accepting request 911959 from home:pgajdos:openexr3
- version update to 3.1.1 3.1.1 * Patch release that fixes build failures on various systems, introduces CMake CMAKE_CROSSCOMPILING_EMULATOR support, and fixes a few other minor issues. 3.1 * The 3.1 release of OpenEXR introduces a new library, OpenEXRCore, which is the result of a significant re-thinking of how OpenEXR manages file I/O and provides access to image data. It begins to address long-standing scalability issues with multithreaded image reading and writing. 3.0.1 Major release with major build restructing, security improvements, and new features: * Restructuring: - The IlmBase/PyIlmBase submodules have been separated into the Imath project, now included by OpenEXR via a CMake submodule dependency, fetched automatically via CMake's FetchContent if necessary. - The library is now called ``libOpenEXR`` (instead of ``libIlmImf``). No header files have been renamed, they retain the ``Imf`` prefix. - Symbol linkage visibility is limited to specific public symbols. * Build improvements: - No more simultaneous static/shared build option. - Community-provided support for bazel. * New Features: - ID Manifest Attributes, as described in ["A Scheme for Storing Object ID Manifests in OpenEXR Images"](https://doi.org/10.1145/3233085.3233086), Peter Hillman, OBS-URL: https://build.opensuse.org/request/show/911959 OBS-URL: https://build.opensuse.org/package/show/graphics/openexr?expand=0&rev=70
This commit is contained in:
341
openexr.spec
341
openexr.spec
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file
|
||||
# spec file for package openexr
|
||||
#
|
||||
# Copyright (c) 2021 SUSE LLC
|
||||
#
|
||||
@@ -17,63 +17,29 @@
|
||||
|
||||
|
||||
%define prjname openexr
|
||||
%define flavor @BUILD_FLAVOR@%{nil}
|
||||
%if "%{flavor}" == ""
|
||||
%define flavor openexr
|
||||
%endif
|
||||
|
||||
# perhaps you want to build against corresponding ilmbase build
|
||||
%define asan_build 0
|
||||
# perhaps you want to build against corresponding Imath build
|
||||
%define debug_build 0
|
||||
%define sonum 25
|
||||
%global so_suffix -2_5
|
||||
Name: %{flavor}
|
||||
Version: 2.5.7
|
||||
%define sonum 30
|
||||
%global so_suffix -3_1
|
||||
Name: openexr
|
||||
Version: 3.1.1
|
||||
Release: 0
|
||||
%if "%{flavor}" == "openexr"
|
||||
Summary: Utilities for working with HDR images in OpenEXR format
|
||||
License: BSD-3-Clause
|
||||
Group: Development/Libraries/C and C++
|
||||
%endif
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
Summary: Base library for ILM software (OpenEXR)
|
||||
License: BSD-3-Clause
|
||||
Group: Development/Libraries/C and C++
|
||||
%endif
|
||||
URL: http://www.openexr.com/
|
||||
Source0: https://github.com/openexr/openexr/archive/v%{version}.tar.gz
|
||||
Source2: baselibs.conf
|
||||
Patch1: 0001-Use-absolute-CMAKE_INSTALL_FULL_LIBDIR-for-libdir-in.patch
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: pkgconfig
|
||||
%if "%{flavor}" == "openexr"
|
||||
BuildRequires: cmake >= 3.12
|
||||
BuildRequires: fltk-devel
|
||||
BuildRequires: freeglut-devel
|
||||
BuildRequires: pkgconfig(IlmBase) == %{version}
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(Imath)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
%endif
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
BuildRequires: libtool
|
||||
%endif
|
||||
%if "%{flavor}" == "openexr"
|
||||
Obsoletes: OpenEXR <= 1.6.1
|
||||
Provides: OpenEXR = %{version}
|
||||
%endif
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
Obsoletes: IlmBase <= 1.0.1
|
||||
Provides: IlmBase = %{version}
|
||||
%endif
|
||||
%if %{asan_build} || %{debug_build}
|
||||
BuildRequires: ilmbase-debugsource
|
||||
BuildRequires: libHalf%{so_suffix}-%{sonum}-debuginfo
|
||||
BuildRequires: libIex%{so_suffix}-%{sonum}-debuginfo
|
||||
BuildRequires: libIexMath%{so_suffix}-%{sonum}-debuginfo
|
||||
BuildRequires: libIlmThread%{so_suffix}-%{sonum}-debuginfo
|
||||
BuildRequires: libImath%{so_suffix}-%{sonum}-debuginfo
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "openexr"
|
||||
|
||||
%description
|
||||
OpenEXR is a high dynamic-range (HDR) image file format developed by
|
||||
@@ -88,35 +54,69 @@ contains a set of utilities to work with this format.
|
||||
* exr2aces, converter to ACES format
|
||||
* exrmultiview, combine two or more images into one multi-view
|
||||
|
||||
%package -n libIlmImf%{so_suffix}-%{sonum}
|
||||
%package -n libIex%{so_suffix}-%{sonum}
|
||||
Summary: Exception handling library for OpenEXR
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libIex%{so_suffix}-%{sonum}
|
||||
OpenEXR is a high dynamic-range (HDR) image file format developed by
|
||||
Industrial Light & Magic for use in computer imaging applications.
|
||||
|
||||
This package contains shared library libIex
|
||||
|
||||
%package -n libIlmThread%{so_suffix}-%{sonum}
|
||||
Summary: Thread abstraction library for OpenEXR
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libIlmThread%{so_suffix}-%{sonum}
|
||||
OpenEXR is a high dynamic-range (HDR) image file format developed by
|
||||
Industrial Light & Magic for use in computer imaging applications.
|
||||
|
||||
This package contains shared library libIlmThread
|
||||
|
||||
%package -n libOpenEXR%{so_suffix}-%{sonum}
|
||||
Summary: Library to Handle EXR Pictures in 16-Bit Floating-Point Format
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libIlmImf%{so_suffix}-%{sonum}
|
||||
%description -n libOpenEXR%{so_suffix}-%{sonum}
|
||||
OpenEXR is a high dynamic-range (HDR) image file format developed by
|
||||
Industrial Light & Magic for use in computer imaging applications.
|
||||
|
||||
This package contains shared library libIlmImf
|
||||
This package contains shared library libOpenEXR
|
||||
|
||||
%package -n libIlmImfUtil%{so_suffix}-%{sonum}
|
||||
%package -n libOpenEXRCore%{so_suffix}-%{sonum}
|
||||
Summary: Library to Handle EXR Pictures in 16-Bit Floating-Point Format
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libOpenEXRCore%{so_suffix}-%{sonum}
|
||||
OpenEXR is a high dynamic-range (HDR) image file format developed by
|
||||
Industrial Light & Magic for use in computer imaging applications.
|
||||
|
||||
This package contains shared library libOpenEXRCore
|
||||
|
||||
%package -n libOpenEXRUtil%{so_suffix}-%{sonum}
|
||||
Summary: Library to simplify development of OpenEXR utilities
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libIlmImfUtil%{so_suffix}-%{sonum}
|
||||
%description -n libOpenEXRUtil%{so_suffix}-%{sonum}
|
||||
OpenEXR is a high dynamic-range (HDR) image file format developed by
|
||||
Industrial Light & Magic for use in computer imaging applications.
|
||||
|
||||
This package contains shared library libIlmImfUtil
|
||||
This package contains shared library libOpenEXRUtil
|
||||
|
||||
%package devel
|
||||
Summary: Development files for the 16-bit FP EXR picture handling library
|
||||
License: BSD-3-Clause AND GPL-2.0-or-later
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: ilmbase-devel >= 2.3.0
|
||||
Requires: libIlmImf%{so_suffix}-%{sonum} = %{version}
|
||||
Requires: libIlmImfUtil%{so_suffix}-%{sonum} = %{version}
|
||||
Requires: Imath-devel
|
||||
Requires: libOpenEXR%{so_suffix}-%{sonum} = %{version}
|
||||
Requires: libOpenEXRCore%{so_suffix}-%{sonum} = %{version}
|
||||
Requires: libOpenEXRUtil%{so_suffix}-%{sonum} = %{version}
|
||||
Requires: pkgconfig
|
||||
Requires: pkgconfig(zlib)
|
||||
Obsoletes: OpenEXR-devel <= 1.6.1
|
||||
@@ -143,148 +143,23 @@ Industrial Light & Magic for use in computer imaging applications.
|
||||
|
||||
This package contains documentation.
|
||||
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
|
||||
%description
|
||||
Base library for Industrial Light & Magic software (OpenEXR).
|
||||
|
||||
* Half is a class that encapsulates our 16-bit floating-point
|
||||
format.
|
||||
|
||||
* IlmThread is a thread abstraction library for use with OpenEXR and
|
||||
other software packages. It currently supports pthreads and
|
||||
Windows threads.
|
||||
|
||||
* Imath implements 2D and 3D vectors, 3x3 and 4x4 matrices,
|
||||
quaternions and other useful 2D and 3D math functions.
|
||||
|
||||
* Iex is an exception-handling library.
|
||||
|
||||
%package devel
|
||||
Summary: Base library for ILM software (OpenEXR)
|
||||
# Renamed to libilmbase6 to met the Shared Library Policy
|
||||
License: BSD-3-Clause AND GPL-2.0-or-later
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libHalf%{so_suffix}-%{sonum}
|
||||
Requires: libIex%{so_suffix}-%{sonum}
|
||||
Requires: libIexMath%{so_suffix}-%{sonum}
|
||||
Requires: libIlmThread%{so_suffix}-%{sonum}
|
||||
Requires: libImath%{so_suffix}-%{sonum}
|
||||
Requires: libstdc++-devel
|
||||
|
||||
%description devel
|
||||
Devel files for ilmbase
|
||||
Base library for Industrial Light & Magic software (OpenEXR).
|
||||
|
||||
%package -n libHalf%{so_suffix}-%{sonum}
|
||||
Summary: 16-bit floating-point encapsulation class for OpenEXR
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libHalf%{so_suffix}-%{sonum}
|
||||
%{summary}.
|
||||
|
||||
%package -n libIexMath%{so_suffix}-%{sonum}
|
||||
Summary: Exception-based vector/matrix library for OpenEXR
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libIexMath%{so_suffix}-%{sonum}
|
||||
%{summary}.
|
||||
|
||||
%package -n libIex%{so_suffix}-%{sonum}
|
||||
Summary: Exception handling library for OpenEXR
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libIex%{so_suffix}-%{sonum}
|
||||
%{summary}.
|
||||
|
||||
%package -n libIlmThread%{so_suffix}-%{sonum}
|
||||
Summary: Thread abstraction library for OpenEXR
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libIlmThread%{so_suffix}-%{sonum}
|
||||
%{summary}.
|
||||
|
||||
%package -n libImath%{so_suffix}-%{sonum}
|
||||
Summary: Vector/matrix library for OpenEXR
|
||||
License: BSD-3-Clause
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libImath%{so_suffix}-%{sonum}
|
||||
%{summary}.
|
||||
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -q -n %{prjname}-%{version}
|
||||
%patch1 -p1
|
||||
%setup -q -n %{name}-%{version}
|
||||
|
||||
%build
|
||||
%if "%{flavor}" == "openexr"
|
||||
pushd OpenEXR
|
||||
export PTHREAD_LIBS="-lpthread"
|
||||
%if %{debug_build}
|
||||
export CXXFLAGS="%{optflags} -O0"
|
||||
%endif
|
||||
%cmake \
|
||||
-DCMAKE_INSTALL_DOCDIR="%{_docdir}/%{name}"
|
||||
%if %{asan_build}
|
||||
vmemlimit=$(ulimit -v)
|
||||
if [ $vmemlimit != unlimited ]; then
|
||||
echo "ulimit -v has to be unlimited (currently $vmemlimit) to run ASAN build"
|
||||
exit 1
|
||||
fi
|
||||
for i in $(find -name Makefile); do
|
||||
sed -i -e 's/\(^CXXFLAGS.*\)/\1 -fsanitize=address/' \
|
||||
-e 's/\(^LIBS =.*\)/\1 -lasan/' \
|
||||
$i
|
||||
done
|
||||
%endif
|
||||
%cmake_build
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
pushd IlmBase
|
||||
%cmake
|
||||
%if %{asan_build}
|
||||
vmemlimit=$(ulimit -v)
|
||||
if [ $vmemlimit != unlimited ]; then
|
||||
echo "ulimit -v has to be unlimited (currently $vmemlimit) to run ASAN build"
|
||||
exit 1
|
||||
fi
|
||||
for i in $(find -name Makefile); do
|
||||
sed -i -e 's/\(^CXXFLAGS.*\)/\1 -fsanitize=address/' \
|
||||
-e 's/\(^LIBS =.*\)/\1 -lasan/' \
|
||||
$i
|
||||
done
|
||||
%endif
|
||||
make %{?_smp_mflags}
|
||||
popd
|
||||
%endif
|
||||
|
||||
%install
|
||||
%if "%{flavor}" == "openexr"
|
||||
pushd OpenEXR
|
||||
%cmake_install
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
pushd IlmBase
|
||||
%cmake_install
|
||||
popd
|
||||
%endif
|
||||
|
||||
%check
|
||||
%if "%{flavor}" == "openexr"
|
||||
%ifnarch i586 ppc ppc64 s390 s390x
|
||||
pushd OpenEXR
|
||||
export LD_LIBRARY_PATH="%{buildroot}/%{_libdir}"
|
||||
# tests can take longer than the default timeout of 25 minutes
|
||||
%if 0%{?suse_version} < 1550
|
||||
@@ -294,34 +169,7 @@ export LD_LIBRARY_PATH="%{buildroot}/%{_libdir}"
|
||||
%else
|
||||
%ctest --timeout 3600
|
||||
%endif
|
||||
popd
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
# https://github.com/openexr/openexr/issues/570
|
||||
%ifnarch i586
|
||||
pushd IlmBase
|
||||
export LD_LIBRARY_PATH="$PWD/build/Imath:$PWD/build/Iex:$PWD/build/Half:$LD_LIBRARY_PATH"
|
||||
%ctest
|
||||
popd
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "openexr"
|
||||
%post -n libIlmImf%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libIlmImf%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
|
||||
%post -n libIlmImfUtil%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libIlmImfUtil%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
%post -n libHalf%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libHalf%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
|
||||
%post -n libIexMath%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libIexMath%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
|
||||
%post -n libIex%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libIex%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
@@ -329,16 +177,21 @@ popd
|
||||
%post -n libIlmThread%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libIlmThread%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
|
||||
%post -n libImath%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libImath%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%endif
|
||||
%post -n libOpenEXR%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libOpenEXR%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
|
||||
%post -n libOpenEXRCore%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libOpenEXRCore%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
|
||||
%post -n libOpenEXRUtil%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
%postun -n libOpenEXRUtil%{so_suffix}-%{sonum} -p /sbin/ldconfig
|
||||
|
||||
%if "%{flavor}" == "openexr"
|
||||
%files
|
||||
%license LICENSE.md
|
||||
%doc CHANGES.md CODE_OF_CONDUCT.md CODEOWNERS CONTRIBUTING.md CONTRIBUTORS.md README.md SECURITY.md
|
||||
%{_bindir}/exrenvmap
|
||||
%{_bindir}/exrheader
|
||||
%{_bindir}/exrinfo
|
||||
%{_bindir}/exrmakepreview
|
||||
%{_bindir}/exrmaketiled
|
||||
%{_bindir}/exrstdattr
|
||||
@@ -348,10 +201,16 @@ popd
|
||||
|
||||
%files devel
|
||||
%{_includedir}/OpenEXR
|
||||
%{_libdir}/libIlmImf.so
|
||||
%{_libdir}/libIlmImf%{so_suffix}.so
|
||||
%{_libdir}/libIlmImfUtil.so
|
||||
%{_libdir}/libIlmImfUtil%{so_suffix}.so
|
||||
%{_libdir}/libIex.so
|
||||
%{_libdir}/libIex%{so_suffix}.so
|
||||
%{_libdir}/libIlmThread.so
|
||||
%{_libdir}/libIlmThread%{so_suffix}.so
|
||||
%{_libdir}/libOpenEXR.so
|
||||
%{_libdir}/libOpenEXR%{so_suffix}.so
|
||||
%{_libdir}/libOpenEXRCore.so
|
||||
%{_libdir}/libOpenEXRCore%{so_suffix}.so
|
||||
%{_libdir}/libOpenEXRUtil.so
|
||||
%{_libdir}/libOpenEXRUtil%{so_suffix}.so
|
||||
%{_libdir}/pkgconfig/OpenEXR.pc
|
||||
%dir %{_libdir}/cmake/OpenEXR
|
||||
%{_libdir}/cmake/OpenEXR/*.cmake
|
||||
@@ -360,48 +219,24 @@ popd
|
||||
%{_docdir}/%{name}
|
||||
%exclude %{_docdir}/%{name}/{CHANGES.md,CODE_OF_CONDUCT.md,CODEOWNERS,CONTRIBUTING.md,CONTRIBUTORS.md,README.md,SECURITY.md}
|
||||
|
||||
%files -n libIlmImf%{so_suffix}-%{sonum}
|
||||
%license LICENSE.md
|
||||
%{_libdir}/libIlmImf-*.so.*
|
||||
|
||||
%files -n libIlmImfUtil%{so_suffix}-%{sonum}
|
||||
%license LICENSE.md
|
||||
%{_libdir}/libIlmImfUtil-*.so.*
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "ilmbase"
|
||||
%files devel
|
||||
%doc CHANGES.md CODE_OF_CONDUCT.md CODEOWNERS CONTRIBUTING.md CONTRIBUTORS.md README.md SECURITY.md
|
||||
%license LICENSE.md
|
||||
%{_includedir}/OpenEXR
|
||||
%{_libdir}/libHalf.so
|
||||
%{_libdir}/libHalf%{so_suffix}.so
|
||||
%{_libdir}/libIex.so
|
||||
%{_libdir}/libIex%{so_suffix}.so
|
||||
%{_libdir}/libImath.so
|
||||
%{_libdir}/libImath%{so_suffix}.so
|
||||
%{_libdir}/libIlmThread.so
|
||||
%{_libdir}/libIlmThread%{so_suffix}.so
|
||||
%{_libdir}/libIexMath.so
|
||||
%{_libdir}/libIexMath%{so_suffix}.so
|
||||
%{_libdir}/pkgconfig/IlmBase.pc
|
||||
%dir %{_libdir}/cmake/IlmBase/
|
||||
%{_libdir}/cmake/IlmBase/*.cmake
|
||||
|
||||
%files -n libHalf%{so_suffix}-%{sonum}
|
||||
%{_libdir}/libHalf%{so_suffix}.so.*
|
||||
|
||||
%files -n libIexMath%{so_suffix}-%{sonum}
|
||||
%{_libdir}/libIexMath%{so_suffix}.so.*
|
||||
|
||||
%files -n libIex%{so_suffix}-%{sonum}
|
||||
%{_libdir}/libIex%{so_suffix}.so.*
|
||||
%license LICENSE.md
|
||||
%{_libdir}/libIex-*.so.*
|
||||
|
||||
%files -n libIlmThread%{so_suffix}-%{sonum}
|
||||
%{_libdir}/libIlmThread%{so_suffix}.so.*
|
||||
%license LICENSE.md
|
||||
%{_libdir}/libIlmThread-*.so.*
|
||||
|
||||
%files -n libImath%{so_suffix}-%{sonum}
|
||||
%{_libdir}/libImath%{so_suffix}.so.*
|
||||
%endif
|
||||
%files -n libOpenEXR%{so_suffix}-%{sonum}
|
||||
%license LICENSE.md
|
||||
%{_libdir}/libOpenEXR-*.so.*
|
||||
|
||||
%files -n libOpenEXRCore%{so_suffix}-%{sonum}
|
||||
%license LICENSE.md
|
||||
%{_libdir}/libOpenEXRCore-*.so.*
|
||||
|
||||
%files -n libOpenEXRUtil%{so_suffix}-%{sonum}
|
||||
%license LICENSE.md
|
||||
%{_libdir}/libOpenEXRUtil-*.so.*
|
||||
|
||||
%changelog
|
||||
|
Reference in New Issue
Block a user