#
# spec file for package openexr
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%global so_suffix -2_2-23
# tests should run at least during local build
# but do expect a HUGE number of memory, so beware
%bcond_with tests
Name:           openexr
Version:        2.2.1
Release:        1.2
Summary:        Utilities for work with HDR images in OpenEXR format
License:        BSD-3-Clause
Group:          Productivity/Graphics/Other
Url:            http://www.openexr.com/
Source0:        http://download.savannah.nongnu.org/releases/%{name}/%{name}-%{version}.tar.gz
Source1:        http://download.savannah.nongnu.org/releases/%{name}/%{name}-%{version}.tar.gz.sig
Source2:        baselibs.conf
Source3:        openexr.keyring
BuildRequires:  automake
BuildRequires:  fltk-devel
BuildRequires:  freeglut-devel
BuildRequires:  gcc-c++
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(IlmBase) >= 2.2.0
BuildRequires:  pkgconfig(zlib)
Obsoletes:      OpenEXR <= 1.6.1
Provides:       OpenEXR = %{version}

%description
OpenEXR is a high dynamic-range (HDR) image file format developed by
Industrial Light & Magic for use in computer imaging applications. This package
contains a set of utilities to work with this format.

* exrheader, a utility for dumping header information
* exrstdattr, a utility for modifying OpenEXR standard attributes
* exrmaketiled, for generating tiled and rip/mipmapped images
* exrenvmap, for creating OpenEXR environment maps
* exrmakepreview, for creating preview images for OpenEXR files
* exr2aces, converter to ACES format
* exrmultiview, combine two or more images into one multi-view

%package -n libIlmImf%{so_suffix}
Summary:        Library to Handle EXR Pictures in 16-Bit Floating-Point Format
Group:          Development/Libraries/C and C++

%description -n libIlmImf%{so_suffix}
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

%post -n libIlmImf%{so_suffix} -p /sbin/ldconfig
%postun -n libIlmImf%{so_suffix} -p /sbin/ldconfig

%files -n libIlmImf%{so_suffix}
%doc COPYING
%{_libdir}/libIlmImf-*.so.*

%package -n libIlmImfUtil%{so_suffix}
Summary:        Library to simplify development of OpenEXR utilities
Group:          Development/Libraries/C and C++

%description -n libIlmImfUtil%{so_suffix}
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

%post -n libIlmImfUtil%{so_suffix} -p /sbin/ldconfig
%postun -n libIlmImfUtil%{so_suffix} -p /sbin/ldconfig

%files -n libIlmImfUtil%{so_suffix}
%doc COPYING
%{_libdir}/libIlmImfUtil-*.so.*

%package devel
Summary:        Library to Handle EXR Pictures (16-bit floating-point format)
Group:          Development/Libraries/C and C++
Requires:       libIlmImf%{so_suffix} = %{version}
Requires:       libIlmImfUtil%{so_suffix} = %{version}
Requires:       libilmbase-devel
Requires:       pkgconfig
Requires:       pkgconfig(zlib)
Obsoletes:      OpenEXR-devel <= 1.6.1
Provides:       OpenEXR-devel = %{version}
Obsoletes:      libopenexr-devel <= 1.7.0
Provides:       libopenexr-devel = %{version}

%description devel
OpenEXR is a high dynamic-range (HDR) image file format developed by
Industrial Light & Magic for use in computer imaging applications.

This package contains header files.

%package doc
Summary:        Library to Handle EXR Pictures in 16-Bit Floating-Point Format
Group:          Development/Libraries/C and C++
Obsoletes:      OpenEXR-doc <= 1.6.1
Provides:       OpenEXR-doc = %{version}

%description doc
OpenEXR is a high dynamic-range (HDR) image file format developed by
Industrial Light & Magic for use in computer imaging applications.

This package contains a documentation

%prep
%setup -q

# poor man's fdupes
if cmp COPYING LICENSE; then
    rm -rf LICENSE
    ln -sf COPYING LICENSE
fi

# remove non-linux file
rm README.OSX

%build
export PTHREAD_LIBS="-lpthread"
%configure \
   --disable-static \
   --with-pic \
   --enable-large-stack \
   --enable-imfexamples \
   --enable-imffuzztest \
   --enable-imfhugetest
make %{?_smp_mflags}

%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print

install -d -m 0755 %{buildroot}%{_defaultdocdir}/
mv %{buildroot}%{_datadir}/doc/OpenEXR-2* %{buildroot}%{_defaultdocdir}/%{name}-%{version}

%check
%if %{with tests}
make %{?_smp_mflags} check
%endif

%files
%doc AUTHORS ChangeLog COPYING LICENSE NEWS README*
%{_bindir}/exrenvmap
%{_bindir}/exrheader
%{_bindir}/exrmakepreview
%{_bindir}/exrmaketiled
%{_bindir}/exrstdattr
%{_bindir}/exrmultiview
%{_bindir}/exrmultipart

%files devel
%{_includedir}/OpenEXR
%{_libdir}/libIlmImf.so
%{_libdir}/libIlmImfUtil.so
%{_libdir}/pkgconfig/OpenEXR.pc
%{_datadir}/aclocal/openexr.m4

%files doc
%{_docdir}/%{name}-%{version}

%changelog
* Mon Jan 15 2018 avindra@opensuse.org
- Update to 2.2.1
  * Fix reported OpenEXR security vulnerabilities: CVE-2017-9110,
    CVE-2017-9111, CVE-2017-9112, CVE-2017-9113, CVE-2017-9114,
    CVE-2017-9115 and CVE-2017-9116
- pgajdos@suse.com: but really seem to fix only:
  CVE-2017-9110 [bsc#1040107], CVE-2017-9114 [bsc#1040114],
  CVE-2017-9116 [bsc#1040116], CVE-2017-12596 [bsc#1052522]; for
  the rest of issues see [bsc#1040109], [bsc#1040112],
  [bsc#1040113], [bsc#1040114], [bsc#1040115], and [bsc#1061305]
* Wed Jul 12 2017 tchvatal@suse.com
- Cleanup a bit with spec-cleaner
* Thu Jan 29 2015 mlin@suse.com
- Update to 2.2.0
  * DreamWorks Lossy Compression A new high quality, high performance lossy
    compression codec contributed by DreamWorks Animation. This codec allows
    control over variable lossiness to balance visual quality and file size.
    This contribution also includes performance improvements that speed up
    the PIZ codec.
  * IlmImfUtil A new library intended to aid in development of image file
    manipulation utilities that support the many types of OpenEXR images.
  * This release also includes improvements to cross-platform build support
    using CMake.
- Bumped the soname, and now we have libIlmImf and libIlmImfUtil
- Removed openexr-2.1.0-headers.patch
- Updated openexr.keyring from the savannah project page.
* Tue Aug 26 2014 fcrozat@suse.com
- Add obsoletes to baselibs.conf.
* Thu Apr 24 2014 dmueller@suse.com
- remove dependency on gpg-offline (blocks rebuilds and
  tarball integrity is checked by source-validator anyway)
* Thu Nov 28 2013 toganm@opensuse.org
- add openexr-2.1.0-headers.patch to install
  ImfDeepImageStateAttribute.h header too
* Wed Nov 27 2013 mvyskocil@suse.com
- update to 2.1.0
  This release includes a refactoring of the optimised read paths for RGBA
  data, optimisations for some of the python bindings to Imath, improvements to
  the cmake build environment as well as additional documentation describing
  deep data in more detail.
- make tests conditional, enable fuzz test and huge test
* Mon Jul 15 2013 mvyskocil@suse.com
- update to 2.0.1
  This is a maintenance push that predominantly addresses edge case
  failures in the optimisation code paths by temporarily disabling the
  feature. For more details, please refer to the
  /usr/share/doc/packages/openexr/ChangeLog
- add gpg-offline based verification
* Sat Apr 20 2013 coolo@suse.com
- fix library deps
* Fri Apr 12 2013 mvyskocil@suse.com
- update to 2.0.0
  * Deep Data support - Pixels can now store a variable-length list of samples.
  The main rationale behind deep images is to enable the storage of multiple
  values at different depths for each pixel. OpenEXR 2.0 supports both
  hard-surface and volumetric representations for Deep Compositing workflows.
  * Multi-part Image Files - With OpenEXR 2.0, files can now contain a number
  of separate, but related, data parts in one file. Access to any part is
  independent of the others, pixels from parts that are not required in the
  current operation don't need to be accessed, resulting in quicker read
  times when accessing only a subset of channels. The multipart interface
  also incorporates support for Stereo images where views are stored in
  separate parts. This makes stereo OpenEXR 2.0 files significantly faster to
  work with than the previous multiview support in OpenEXR.
  * Optimized pixel reading - decoding RGB(A) scanline images has been
  accelerated on SSE processors providing a significant speedup when reading
  both old and new format images, including multipart and multiview files.
  * Namespacing - The library introduces versioned namespaces to avoid
  conflicts between packages compiled with different versions of the library.
- obsoleted
    openexr-suse-docdir.patch (moved in install phase)
    openexr-disable-tests.patch
* Thu Sep 27 2012 cfarrell@suse.com
- license update: BSD-3-Clause
  No GPL licensed files found in the package
* Thu Sep 27 2012 idonmez@suse.com
- Update baselibs.conf
* Thu Aug  2 2012 mvyskocil@suse.cz
- Update to 1.7.1
  * Updated the .so verison to 7.
  * obsoletes openexr-includes.patch
- require new ilmbase-devel for build
- rename libopenexr-devel to openexr devel to be compatible
  with renamed ilmbase package
* Tue Apr 24 2012 mvyskocil@suse.cz
- disable the test at all, as running them in OBS seems not to be
  reliable
* Sun Jan 29 2012 jengelh@medozas.de
- Remove redundant tags/sections per specfile guideline suggestions
* Mon Oct 31 2011 mvyskocil@suse.cz
- openexr-disable-tests.patch - disable broken tests prevents a build
  in Factory
* Wed Jul 27 2011 dmueller@suse.de
- remove explicit libdrm buildrequires
* Tue Mar  8 2011 jengelh@medozas.de
- Use %%_smp_mflags for parallel build
* Mon Aug  9 2010 mvyskocil@suse.cz
- Update to 1.7.0 - bugfix release, multiviewer support
  * obsoletes CVE-2009-1720 support
  * built with --enable-larget-stack and test
- Renammed to be more comfortable with Shared Library policy
  * openexr - main (source package) contains tools in bindir, it provides and
    obsoletes the old OpenEXR symbol
  * libIlmImf6 - contains the openexr library
  * libopenexr-devel - contains the headers, Provides and Obsoletes the
    OpenEXR-devel symbol
  * openexr-doc - documentation
* Fri Dec 18 2009 jengelh@medozas.de
- add baselibs.conf as a source
* Tue Aug  4 2009 mvyskocil@suse.cz
- fixed bnc#527539:  VUL-0: OpenEXR: [ MDVSA-2009:190 ] OpenEXR
  used patches from Mandriva
  * CVE-2009-1720
  * CVE-2009-1721
* Mon Mar  2 2009 crrodriguez@suse.de
- save 6.7MB by removing static libraries and "la" files
* Wed Dec 10 2008 olh@suse.de
- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
  (bnc#437293)
* Thu Oct 30 2008 olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
* Thu Apr 10 2008 ro@suse.de
- added baselibs.conf file to build xxbit packages
  for multilib support
* Wed Oct 31 2007 mvyskocil@suse.cz
- update to 1.6.1
- fix buid, add docu subpackage with documentation and examples
* Sat May 19 2007 stbinner@suse.de
- fix linking of new IlmThread lib versus libpthread
* Mon May 14 2007 ltinkl@suse.cz
- update to 1.4.6
- fix build, fix packaging examples and doc
- added missing Requires
* Tue Jan 16 2007 meissner@suse.de
- fixed RPM_OPT_FLAGS
* Mon Jun 12 2006 dmueller@suse.de
- fix shared lib dependencies
- fix installed headers
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Mon Nov  7 2005 sndirsch@suse.de
- make use of mesa-devel-packages macro in neededforbuild
* Wed Nov  2 2005 dmueller@suse.de
- don't build as root
* Wed May 25 2005 adrian@suse.de
- update to version 1.2.2
* Mon May 23 2005 schwab@suse.de
- Fix missing declaration.
* Thu Jan 13 2005 ro@suse.de
- try to fix docu installation
* Mon Jun 28 2004 adrian@suse.de
- initial package of version 1.2.1