%bcond_with bootstrap
%bcond_with external_pugixml

%global subname oiio

Name:           OpenImageIO
Version:        2.4.10.0
Release:        1%{?_dist_release}
Summary:        Library for reading and writing images
Group:          system
Vendor:         Project Vine
Distribution:   Vine Linux

License:        BSD
URL:            https://sites.google.com/site/openimageio/home
Source0:        https://github.com/OpenImageIO/oiio/archive/v%{version}.tar.gz#/oiio-%{version}.tar.gz
# Images for test suite
#Source1:        oiio-images.tar.gz

BuildRequires:  cmake
BuildRequires:  git
BuildRequires:  txt2man
BuildRequires:  qt5-qtbase-devel
BuildRequires:  fmt-devel
BuildRequires:  robin-map-devel
BuildRequires:  libboost-devel
BuildRequires:  libboost-python3
BuildRequires:  libboost-filesystem
BuildRequires:  libboost-chrono
#BuildRequires:  glew-devel
BuildRequires:  OpenEXR-devel
BuildRequires:  python3-devel
BuildRequires:  python3-rpm-macros
# BuildRequires:  openssl-devel
BuildRequires:  libpng-devel libtiff-devel openjpeg2-devel giflib-devel
BuildRequires:  libwebp-devel
BuildRequires:  Field3D-devel
BuildRequires:  hdf5-devel
BuildRequires:  zlib-devel
BuildRequires:  jasper-devel
BuildRequires:  LibRaw-devel
%if %{with external_pugixml}
BuildRequires:  pugixml-devel
%endif
BuildRequires:  pybind11-devel

%if %{without bootstrap}
# WARNING: OpenColorIO and OpenImageIO are cross dependent.
# If an ABI incompatible update is done in one, the other also needs to be
# rebuilt.
BuildRequires:  OpenColorIO-devel
%endif

Obsoletes:      python-OpenImageIO

# We don't want to provide private python extension libs
%{?filter_setup:
%filter_provides_in %{python3_sitearch}/.*\.so$
%filter_setup
}

%description
OpenImageIO is a library for reading and writing images, and a bunch of related
classes, utilities, and applications. Main features include:
- Extremely simple but powerful ImageInput and ImageOutput APIs for reading and
  writing 2D images that is format agnostic.
- Format plugins for TIFF, JPEG/JFIF, OpenEXR, PNG, HDR/RGBE, Targa, JPEG-2000,
  DPX, Cineon, FITS, BMP, ICO, RMan Zfile, Softimage PIC, DDS, SGI,
  PNM/PPM/PGM/PBM, Field3d.
- An ImageCache class that transparently manages a cache so that it can access
  truly vast amounts of image data.


%package -n python3-%{name}
Summary:        Python 3 bindings for %{name}
Group:          programming
Requires:       %{name} = %{version}-%{release}

%description -n python3-%{name}
Python3 bindings for %{name}.


%package utils
Summary:        Command line utilities for %{name}
Group:          graphics
Requires:       %{name} = %{version}-%{release}

%description utils
Command-line tools to manipulate and get information on images using the
%{name} library.


%package iv
Summary:        %{name} based image viewer
Group:          graphics
Requires:       %{name} = %{version}-%{release}

%description iv
A really nice image viewer, iv, based on %{name} classes (and so will work
with any formats for which plugins are available).


%package devel
Summary:        Documentation for %{name}
Group:          programming
Requires:       %{name} = %{version}-%{release}

%description devel
Development files for package %{name}


%debug_package


%prep
%setup -q -n oiio-%{version}

%if %{with external_pugixml}
# Remove bundled pugixml
rm -f src/include/OpenImageIO/pugixml.hpp \
      src/include/OpenImageIO/pugiconfig.hpp \
      src/libutil/OpenImageIO/pugixml.cpp 
%endif

# Remove bundled tbb
%{__rm} -rf src/include/tbb

# Install test images
#rm -rf ../oiio-images && mkdir ../oiio-images && pushd ../oiio-images
#tar --strip-components=1 -xzf %{SOURCE1}


%build
%{__rm} -rf %{_vpath_builddir}
# CMAKE_SKIP_RPATH is OK here because it is set to FALSE internally and causes
# CMAKE_INSTALL_RPATH to be cleared, which is the desiered result.
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
       -DCMAKE_CXX_STANDARD=17 \
       -DCMAKE_SKIP_RPATH:BOOL=TRUE \
       -DBUILDSTATIC=OFF \
       -DLINKSTATIC=OFF \
       -DPYTHON_VERSION=%{python3_version} \
       -DINSTALL_DOCS:BOOL=FALSE \
       -DINSTALL_FONTS:BOOL=FALSE \
%if %{with external_pugixml}
       -DUSE_EXTERNAL_PUGIXML:BOOL=TRUE \
%endif
       -DUSE_TBB:BOOL=FALSE \
       -DUSE_OPENSSL:BOOL=TRUE \
       -DSTOP_ON_WARNING:BOOL=FALSE \
       -DJPEG_INCLUDE_DIR=%{_includedir} \
       -DOPENJPEG_INCLUDE_DIR=$(pkg-config --variable=includedir libopenjp2) \
       -DOpenGL_GL_PREFERENCE=GLVND \
       -DVERBOSE=TRUE

%cmake_build


%install
%cmake_install

# # Move man pages to the right directory
# mkdir -p %{buildroot}%{_mandir}/man1
# cp -a src/doc/*.1 %{buildroot}%{_mandir}/man1


%files
%license LICENSE*
%doc CHANGES.md CONTRIBUTING.md README.md
%{_libdir}/libOpenImageIO.so.*
%{_libdir}/libOpenImageIO_Util.so.*

%files -n python3-%{name}
%{python3_sitearch}/OpenImageIO

%files utils
%exclude %{_bindir}/iv
%{_bindir}/*
# %exclude %{_mandir}/man1/iv.1.gz
# %{_mandir}/man1/*.1.gz

%files iv
%{_bindir}/iv
# %{_mandir}/man1/iv.1.gz

%files devel
%{_libdir}/libOpenImageIO.so
%{_libdir}/libOpenImageIO_Util.so
%dir %{_libdir}/pkgconfig
%{_libdir}/pkgconfig/OpenImageIO.pc
%dir %{_libdir}/cmake/OpenImageIO
%{_libdir}/cmake/OpenImageIO/*
%{_includedir}/*


%changelog
* Mon Apr 10 2023 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.4.10.0-1
- new upstream release.

* Thu Mar 02 2023 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.4.9.0-1
- new upstream release.

* Wed Sep 01 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.2.18.0-1
- new upstream release.
- dropped ldconfig scriptlets.

* Sat Feb 20 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.2.11.1-1
- new upstream release.

* Sat Dec 12 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.2.9.0-1
- new upstream release.

* Fri Sep 04 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.2.6.1-1
- new upstream release.

* Sat Apr 25 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.1.10.1-1
- new upstream release.
- built with boost-1.72.0.

* Sat Oct 26 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.0.11-1
- new upstream release.

* Sun Sep 08 2019 Toshiaki Ara <ara_t@384.jp> 1.8.17-1
- update to 1.8.17

* Tue Nov 06 2018 Toshiaki Ara <ara_t@384.jp> 1.8.16-1
- update to 1.8.16
- change BuildRequires: qt4-devel to qt5-qtbase-devel
- drop BuildRequires: openssl-devel

* Fri Aug 24 2018 Toshiaki Ara <ara_t@384.jp> 1.7.19-3
- update to 1.7.19
- using macro

* Sat Aug 04 2018 Toshiaki Ara <ara_t@384.jp> 1.7.17-2
- rebuild with hdf5-1.8.20

* Mon Jan 08 2018 Toshiaki Ara <ara_t@384.jp> 1.7.17-1
- update to 1.7.17

* Thu Jun 30 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.6.14-3
- rebuilt with LibRaw-0.17.2.

* Tue Jun 28 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.6.14-2
- rebuild with gcc-5.4.0

* Mon Jun 13 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.6.14-1
- new upstream release

* Fri May 06 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.6.13-1
- new upstream release
- remove Patch0
- create python-%%{name} subpackage

* Thu Oct 15 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.15-2
- rebuild with glew-1.13.0

* Sun Jan 18 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.15-1
- initial build for Vine Linux
- add Patch0 (oiio-Release-1.4.15-sign-compare.patch)


* Wed Nov 26 2014 Rex Dieter <rdieter@fedoraproject.org> 1.4.15-2
- rebuild (openexr)

* Tue Nov 25 2014 Richard Shaw <hobbes1069@gmail.com> - 1.4.15-1
- Update to latest upstream release.

* Fri Nov 14 2014 Richard Shaw <hobbes1069@gmail.com> - 1.4.14-1
- Update to latest upstream release.

* Fri Sep  5 2014 Richard Shaw <hobbes1069@gmail.com> - 1.4.12-4
- Rebuild for Field3D 1.4.3.

* Thu Sep 04 2014 Orion Poplawski <orion@cora.nwra.com> - 1.4.12-3
- Rebuild for pugixml 1.4

* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Fri Aug  1 2014 Richard Shaw <hobbes1069@gmail.com> - 1.4.12-1
- Update to latest upstream release.

* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.7-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Fri May 23 2014 Petr Machata <pmachata@redhat.com> - 1.4.7-3
- Rebuild for boost 1.55.0

* Fri May 23 2014 David Tardon <dtardon@redhat.com> - 1.4.7-2
- rebuild for boost 1.55.0

* Mon May 19 2014 Richard Shaw <hobbes1069@gmail.com> - 1.4.7-1
- Update to latest upstream release.

* Tue Jan  7 2014 Richard Shaw <hobbes1069@gmail.com> - 1.3.10-1
- Update to latest upstream release.
- Add libgif as build requirement.

* Wed Nov 27 2013 Rex Dieter <rdieter@fedoraproject.org> - 1.2.3-3
- rebuild (openexr)

* Mon Nov 18 2013 Dave Airlie <airlied@redhat.com> - 1.2.3-2
- rebuilt for GLEW 1.10

* Wed Nov  6 2013 Richard Shaw <hobbes1069@gmail.com> - 1.2.3-1
- Update to latest upstream release.
- Fix ppc builds (BZ#1021977).
- Add conditionals to build requirements for EPEL 6.

* Wed Oct  2 2013 Richard Shaw <hobbes1069@gmail.com> - 1.2.2-1
- Update to latest upstream release.

* Sun Sep 08 2013 Rex Dieter <rdieter@fedoraproject.org> 1.2.1-2
- rebuild (ilmbase/openexr)

* Thu Aug  8 2013 Richard Shaw <hobbes1069@gmail.com> - 1.2.1-1
- Update to latest upstream release.

* Fri Aug 02 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Sun Jul 28 2013 Petr Machata <pmachata@redhat.com> - 1.2.0-2
- Rebuild for boost 1.54.0
