diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..744e503 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + ilmbase + diff --git a/baselibs.conf b/baselibs.conf index 2116423..e582e93 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,3 +1,9 @@ libIlmImf-2_5-25 libIlmImfUtil-2_5-25 obsoletes "OpenEXR- < " +libHalf-2_5-25 +libImath-2_5-25 +libIlmThread-2_5-25 +libIexMath-2_5-25 +libIex-2_5-25 + obsoletes "IlmBase- < " diff --git a/openexr.changes b/openexr.changes index 483c21b..47cd063 100644 --- a/openexr.changes +++ b/openexr.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Thu Jan 7 11:00:00 UTC 2021 - pgajdos@suse.com + +- merge also baselibs.conf +- modified sources + % baselibs.conf + +------------------------------------------------------------------- +Tue Jan 5 13:09:22 UTC 2021 - pgajdos@suse.com + +- merge ilmbase and openexr source packages into one _multibuild +- added sources + + _multibuild + +------------------------------------------------------------------- +Tue Jan 5 09:03:28 UTC 2021 - pgajdos@suse.com + +- version update to 2.5.4 + * Patch release with various bug/sanitizer/security fixes, primarily + related to reading corrupted input files. + ------------------------------------------------------------------- Wed Sep 30 06:55:23 UTC 2020 - pgajdos@suse.com diff --git a/openexr.spec b/openexr.spec index 4e8994c..c8fdb34 100644 --- a/openexr.spec +++ b/openexr.spec @@ -1,7 +1,7 @@ # # spec file for package openexr # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,30 +16,54 @@ # +%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 %define debug_build 0 %define sonum 25 %global so_suffix -2_5 -Name: openexr -Version: 2.5.3 +Name: %{flavor} +Version: 2.5.4 Release: 0 +%if "%{flavor}" == "openexr" Summary: Utilities for working with HDR images in OpenEXR format License: BSD-3-Clause -Group: Productivity/Graphics/Other +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: fltk-devel -BuildRequires: freeglut-devel BuildRequires: gcc-c++ BuildRequires: pkgconfig +%if "%{flavor}" == "openexr" +BuildRequires: fltk-devel +BuildRequires: freeglut-devel BuildRequires: pkgconfig(IlmBase) == %{version} 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 @@ -49,6 +73,8 @@ 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 Industrial Light & Magic for use in computer imaging applications. This package @@ -64,6 +90,7 @@ contains a set of utilities to work with this format. %package -n libIlmImf%{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} @@ -74,6 +101,7 @@ This package contains shared library libIlmImf %package -n libIlmImfUtil%{so_suffix}-%{sonum} Summary: Library to simplify development of OpenEXR utilities +License: BSD-3-Clause Group: System/Libraries %description -n libIlmImfUtil%{so_suffix}-%{sonum} @@ -84,6 +112,7 @@ This package contains shared library libIlmImfUtil %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} @@ -103,6 +132,7 @@ This package contains header files. %package doc Summary: Documentation for the 16-bit FP EXR picture handling library +License: BSD-3-Clause Group: Documentation/Other Obsoletes: OpenEXR-doc <= 1.6.1 Provides: OpenEXR-doc = %{version} @@ -113,11 +143,89 @@ 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 +%setup -q -n %{prjname}-%{version} %patch1 -p1 %build +%if "%{flavor}" == "openexr" pushd OpenEXR export PTHREAD_LIBS="-lpthread" %if %{debug_build} @@ -139,13 +247,42 @@ 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}" @@ -159,13 +296,44 @@ export LD_LIBRARY_PATH="%{buildroot}/%{_libdir}" %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 + +%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 + +%if "%{flavor}" == "openexr" %files %license LICENSE.md %doc CHANGES.md CODE_OF_CONDUCT.md CODEOWNERS CONTRIBUTING.md CONTRIBUTORS.md README.md SECURITY.md @@ -199,5 +367,41 @@ popd %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.* + +%files -n libIlmThread%{so_suffix}-%{sonum} +%{_libdir}/libIlmThread%{so_suffix}.so.* + +%files -n libImath%{so_suffix}-%{sonum} +%{_libdir}/libImath%{so_suffix}.so.* +%endif %changelog diff --git a/v2.5.3.tar.gz b/v2.5.3.tar.gz deleted file mode 100644 index 9660e58..0000000 --- a/v2.5.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6a6525e6e3907715c6a55887716d7e42d09b54d2457323fcee35a0376960bebf -size 27534825 diff --git a/v2.5.4.tar.gz b/v2.5.4.tar.gz new file mode 100644 index 0000000..3d56a84 --- /dev/null +++ b/v2.5.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dba19e9c6720c6f64fbc8b9d1867eaa75da6438109b941eefdc75ed141b6576d +size 27535491