+# TODO:
+# - OpenVDB >= 5.0 https://www.openvdb.org/
+# - Nuke >= 7.0? https://www.foundry.com/products/nuke/ (proprietary)
+# - package fonts?
+# /usr/share/fonts/OpenImageIO/DroidSans-Bold.ttf
+# /usr/share/fonts/OpenImageIO/DroidSans.ttf
+# /usr/share/fonts/OpenImageIO/DroidSansMono.ttf
+# /usr/share/fonts/OpenImageIO/DroidSerif-Bold.ttf
+# /usr/share/fonts/OpenImageIO/DroidSerif-BoldItalic.ttf
+# /usr/share/fonts/OpenImageIO/DroidSerif-Italic.ttf
+# /usr/share/fonts/OpenImageIO/DroidSerif.ttf
+#
# to bootstrap: build OpenColorIO --without oiio, build OpenImageIO, rebuild OpenColorIO
#
# Conditional build:
%bcond_without ocio # OpenColorIO support in library
-%bcond_without static_libs # don't build static libraries
-%bcond_without tbb # Threading Building Blocks
+%bcond_without opencv # OpenCV support in library
+%bcond_with tbb # Threading Building Blocks
#
%ifarch i386 i486
# https://github.com/OpenImageIO/oiio/issues/583
Summary: Library for reading and writing images
Summary(pl.UTF-8): Biblioteka do odczytu i zapisu obrazów
Name: OpenImageIO
-Version: 1.7.11
-Release: 2
+Version: 2.3.21.0
+Release: 3
License: BSD
Group: Libraries
-Source0: https://github.com/OpenImageIO/oiio/tarball/Release-%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: bd9338d99dff81f238e17d78c333a85e
-Patch0: %{name}-link.patch
-Patch1: %{name}-system-squish.patch
-Patch2: %{name}-system-dpx.patch
-Patch3: %{name}-system-libcineon.patch
-URL: https://sites.google.com/site/openimageio/home
+#Source0Download: https://github.com/OpenImageIO/oiio/releases
+Source0: https://github.com/OpenImageIO/oiio/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: a5def3fc51a35b09f251bc32a11c24da
+Patch2: %{name}-system-libcineon.patch
+Patch3: no-clang-format.patch
+URL: https://github.com/OpenImageIO/oiio
BuildRequires: Field3D-devel
%{?with_ocio:BuildRequires: OpenColorIO-devel}
-BuildRequires: OpenEXR-devel >= 1.6.1
+BuildRequires: OpenEXR-devel >= 3.0.0
BuildRequires: OpenGL-devel
-BuildRequires: QtCore-devel
-BuildRequires: QtGui-devel
-BuildRequires: QtOpenGL-devel
+BuildRequires: Qt5Core-devel >= 5.6
+BuildRequires: Qt5Gui-devel >= 5.6
+BuildRequires: Qt5OpenGL-devel >= 5.6
+BuildRequires: Qt5Widgets-devel >= 5.6
# filesystem, regex, system, thread
-BuildRequires: boost-devel >= 1.35
-BuildRequires: boost-python-devel >= 1.35
-BuildRequires: cmake >= 2.6
-BuildRequires: dpx-devel
-BuildRequires: ffmpeg-devel
+BuildRequires: boost-devel >= 1.53
+BuildRequires: boost-python3-devel >= 1.53
+BuildRequires: bzip2-devel
+BuildRequires: cmake >= 3.12
+BuildRequires: dcmtk-devel >= 3.6.1
+BuildRequires: ffmpeg-devel >= 2.6
+BuildRequires: freetype-devel >= 2.0
BuildRequires: giflib-devel
BuildRequires: glew-devel >= 1.5.1
BuildRequires: hdf5-devel
-BuildRequires: ilmbase-devel >= 1.0.1
BuildRequires: jasper-devel
BuildRequires: libcineon-devel
+BuildRequires: libheif-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
-BuildRequires: libraw-devel
-BuildRequires: libstdc++-devel
-BuildRequires: libtiff-devel
+BuildRequires: libraw-devel >= 0.18
+BuildRequires: libstdc++-devel >= 6:4.7
+BuildRequires: libtiff-devel >= 3.9
BuildRequires: libwebp-devel
-BuildRequires: openjpeg-devel
+%{?with_opencv:BuildRequires: opencv-devel >= 2.0}
+BuildRequires: openjpeg2-devel >= 2.4
BuildRequires: ptex-devel >= 2.1
BuildRequires: pugixml-devel
-BuildRequires: python-devel >= 1:2.6
+BuildRequires: python3-devel >= 1:2.7
+BuildRequires: python3-pybind11 >= 2.2.0
+BuildRequires: robin-map-devel
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.605
BuildRequires: squish-devel >= 1.10
-%{?with_tbb:BuildRequires: tbb-devel}
+%{?with_tbb:BuildRequires: tbb-devel >= 2018}
BuildRequires: txt2man
BuildRequires: zlib-devel
-Requires: ilmbase >= 1.0.1
+Requires: OpenEXR >= 3.0.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary(pl.UTF-8): Pliki nagłówkowe biblioteki OpenImageIO
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: libstdc++-devel
+Requires: libstdc++-devel >= 6:4.7
%description devel
Header files for OpenImageIO library.
%description plugin-cineon -l pl.UTF-8
Wtyczka biblioteki OpenImageIO czytająca pliki Cineon.
+%package plugin-dicom
+Summary: DICOM plugin for OpenImageIO library
+Summary(pl.UTF-8): Wtyczka DICOM dla biblioteki OpenImageIO
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: dcmtk >= 3.6.1
+Requires: squish >= 1.10
+
+%description plugin-dicom
+OpenImageIO plugin to read DICOM files.
+
+%description plugin-dicom -l pl.UTF-8
+Wtyczka biblioteki OpenImageIO czytająca pliki DICOM.
+
%package plugin-dds
Summary: DDS plugin for OpenImageIO library
Summary(pl.UTF-8): Wtyczka DDS dla biblioteki OpenImageIO
Summary(pl.UTF-8): Wtyczka FFmpeg dla biblioteki OpenImageIO
Group: Libraries
Requires: %{name} = %{version}-%{release}
+Requires: ffmpeg-libs >= 2.6
%description plugin-ffmpeg
OpenImageIO plugin to read FFmpeg files.
%description plugin-gif -l pl.UTF-8
Wtyczka biblioteki OpenImageIO czytająca pliki GIF.
+%package plugin-heif
+Summary: HEIF plugin for OpenImageIO library
+Summary(pl.UTF-8): Wtyczka HEIF dla biblioteki OpenImageIO
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description plugin-heif
+OpenImageIO plugin to read HEIF files.
+
+%description plugin-heif -l pl.UTF-8
+Wtyczka biblioteki OpenImageIO czytająca pliki HEIF.
+
%package plugin-ico
Summary: ICO plugin for OpenImageIO library
Summary(pl.UTF-8): Wtyczka ICO dla biblioteki OpenImageIO
Summary(pl.UTF-8): Wtyczka OpenEXR dla biblioteki OpenImageIO
Group: Libraries
Requires: %{name} = %{version}-%{release}
-Requires: OpenEXR >= 1.6.1
+Requires: OpenEXR >= 2.0
%description plugin-openexr
OpenImageIO plugin to read and write OpenEXR files.
Summary(pl.UTF-8): Wtyczka RAW dla biblioteki OpenImageIO
Group: Libraries
Requires: %{name} = %{version}-%{release}
+Requires: libraw >= 0.18
%description plugin-raw
OpenImageIO plugin to readTRAW files.
Summary(pl.UTF-8): Wtyczka TIFF dla biblioteki OpenImageIO
Group: Libraries
Requires: %{name} = %{version}-%{release}
+Requires: libtiff >= 3.9
%description plugin-tiff
OpenImageIO plugin to read and write TIFF files.
%description plugin-tiff -l pl.UTF-8
Wtyczka biblioteki OpenImageIO czytająca i zapisująca pliki TIFF.
-%package apidocs
-Summary: Programmer documentation for OpenImageIO library
-Summary(pl.UTF-8): Dokumentacja programisty do biblioteki OpenImageIO
-Group: Documentation
-%if "%{_rpmversion}" >= "5"
-BuildArch: noarch
-%endif
-
-%description apidocs
-Programmer documentation for OpenImageIO library.
-
-%description apidocs -l pl.UTF-8
-Dokumentacja programisty do biblioteki OpenImageIO.
-
%package iv
Summary: Qt/OpenImageIO-based Image Viewer
Summary(pl.UTF-8): Przeglądarka obrazków (IV) oparta o Qt i OpenImageIO
Group: X11/Applications/Graphics
Requires: %{name} = %{version}-%{release}
+Requires: Qt5Core >= 5.6
+Requires: Qt5Gui >= 5.6
+Requires: Qt5OpenGL >= 5.6
+Requires: Qt5Widgets >= 5.6
Requires: glew >= 1.5.1
%description iv
jest w stanie odczytać obrazy w dowolnym formacie, dla którego
istnieje właściwa wtyczka.
-%package -n python-OpenImageIO
+%package -n python3-OpenImageIO
Summary: Python binding for OpenImageIO library
Summary(pl.UTF-8): Wiązanie Pythona do biblioteki OpenImageIO
Group: Libraries/Python
Requires: %{name} = %{version}-%{release}
-%description -n python-OpenImageIO
+%description -n python3-OpenImageIO
Python binding for OpenImageIO library.
-%description -n python-OpenImageIO -l pl.UTF-8
+%description -n python3-OpenImageIO -l pl.UTF-8
Wiązanie Pythona do biblioteki OpenImageIO.
%prep
-%setup -q -n %{name}-oiio-6950fb8
-%patch0 -p1
-%patch1 -p1
+%setup -q -n oiio-%{version}
%patch2 -p1
%patch3 -p1
%{__rm} -r src/dds.imageio/squish
-# when using system pugixml, don't use hacked headers
-%{__rm} src/include/OpenImageIO/pugi*.{c,h}pp
%build
install -d build
cd build
-CXXFLAGS="%{rpmcxxflags} -std=c++11" \
-%cmake ../ \
-%ifarch i386 i486
- -DNOTHREADS=1 \
-%endif
+%cmake .. \
+ -DCMAKE_INSTALL_MANDIR=%{_mandir}/man1 \
-DEMBEDPLUGINS=OFF \
- -DOPENJPEG_INCLUDE_DIR=%{_includedir}/openjpeg-1.5 \
-DINCLUDE_INSTALL_DIR=%{_includedir}/%{name} \
-DLIB_INSTALL_DIR:PATH=%{_libdir} \
+ -DBUILD_TESTING=OFF \
+%ifarch i386 i486
+ -DNOTHREADS=1 \
+%endif
+ -DENABLE_FIELD3D=ON \
+ -DPYBIND11_HOME:PATH=%{py_incdir} \
-DPYLIB_INSTALL_DIR=%{py_sitedir} \
- -DPYTHON_VERSION=%{py_ver} \
+ -DPYTHON_VERSION=%{py3_ver} \
-DUSE_EXTERNAL_PUGIXML=ON \
-DSTOP_ON_WARNING=OFF \
%{!?with_ocio:-DUSE_OCIO=OFF} \
+ %{!?with_opencv:-DUSE_OPENCV=OFF} \
%{!?with_tbb:-DUSE_TBB=OFF}
%{__make}
# name clash with iv
%{__mv} $RPM_BUILD_ROOT%{_bindir}/{iv,oiiv}
+%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/{iv,oiiv}.1
# installed as %doc
-%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/OpenImageIO
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc CHANGES.md CREDITS.md LICENSE README.md
+%doc CHANGES.md CREDITS.md LICENSE.md README.md
%attr(755,root,root) %{_bindir}/iconvert
%attr(755,root,root) %{_bindir}/idiff
%attr(755,root,root) %{_bindir}/igrep
%attr(755,root,root) %{_bindir}/maketx
%attr(755,root,root) %{_bindir}/oiiotool
%attr(755,root,root) %{_libdir}/libOpenImageIO.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libOpenImageIO.so.1.7
+%attr(755,root,root) %ghost %{_libdir}/libOpenImageIO.so.2.3
%attr(755,root,root) %{_libdir}/libOpenImageIO_Util.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libOpenImageIO_Util.so.1.7
+%attr(755,root,root) %ghost %{_libdir}/libOpenImageIO_Util.so.2.3
%attr(755,root,root) %{_libdir}/bmp.imageio.so
%attr(755,root,root) %{_libdir}/fits.imageio.so
%attr(755,root,root) %{_libdir}/hdr.imageio.so
%attr(755,root,root) %{_libdir}/softimage.imageio.so
%attr(755,root,root) %{_libdir}/targa.imageio.so
%attr(755,root,root) %{_libdir}/zfile.imageio.so
+%attr(755,root,root) %{_libdir}/null.imageio.so
+%attr(755,root,root) %{_libdir}/term.imageio.so
%{_mandir}/man1/iconvert.1*
%{_mandir}/man1/idiff.1*
%{_mandir}/man1/igrep.1*
%attr(755,root,root) %{_libdir}/libOpenImageIO.so
%attr(755,root,root) %{_libdir}/libOpenImageIO_Util.so
%{_includedir}/OpenImageIO
+%{_pkgconfigdir}/OpenImageIO.pc
+%{_libdir}/cmake/OpenImageIO
%files plugin-cineon
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/cineon.imageio.so
+%files plugin-dicom
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/dicom.imageio.so
+
%files plugin-dds
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/dds.imageio.so
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/gif.imageio.so
+%files plugin-heif
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/heif.imageio.so
+
%files plugin-ico
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/ico.imageio.so
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/webp.imageio.so
-%files apidocs
-%defattr(644,root,root,755)
-%doc src/doc/openimageio.pdf
-
%files iv
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/oiiv
+%{_mandir}/man1/oiiv.1*
-%files -n python-OpenImageIO
+%files -n python3-OpenImageIO
%defattr(644,root,root,755)
-%attr(755,root,root) %{py_sitedir}/OpenImageIO.so
+%dir %{py3_sitedir}/OpenImageIO
+%attr(755,root,root) %{py3_sitedir}/OpenImageIO/OpenImageIO*.so
+%{py3_sitedir}/OpenImageIO/__init__.py