+# 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 static_libs # don't build static libraries
-%bcond_without tbb # Threading Building Blocks
+%bcond_without ocio # OpenColorIO support in library
+%bcond_without opencv # OpenCV support in library
+%bcond_with tbb # Threading Building Blocks
+#
+%ifarch i386 i486
+# https://github.com/OpenImageIO/oiio/issues/583
+%undefine with_tbb
+%endif
+%ifnarch %{ix86} %{x8664} %{arm} ia64 ppc ppc64
+%undefine with_tbb
+%endif
#
Summary: Library for reading and writing images
Summary(pl.UTF-8): Biblioteka do odczytu i zapisu obrazów
Name: OpenImageIO
-Version: 1.0.7
-Release: 0.1
+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: e939f97db2b0cac813c9e166f2353fe6
-Patch0: %{name}-link.patch
-Patch2: %{name}-hdf.patch
-Patch3: %{name}-system-squish.patch
-Patch4: %{name}-system-ptex.patch
-Patch5: %{name}-system-dpx.patch
-Patch6: %{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
-BuildRequires: OpenEXR-devel >= 1.6.1
+%{?with_ocio:BuildRequires: OpenColorIO-devel}
+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: 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: libtiff-devel
-BuildRequires: ptex-devel >= 2
-BuildRequires: python-devel >= 1:2.6
+BuildRequires: libraw-devel >= 0.18
+BuildRequires: libstdc++-devel >= 6:4.7
+BuildRequires: libtiff-devel >= 3.9
+BuildRequires: libwebp-devel
+%{?with_opencv:BuildRequires: opencv-devel >= 2.0}
+BuildRequires: openjpeg2-devel >= 2.4
+BuildRequires: ptex-devel >= 2.1
+BuildRequires: pugixml-devel
+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 >= 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
%description plugin-dpx -l pl.UTF-8
Wtyczka biblioteki OpenImageIO czytająca i zapisująca pliki DPX.
+%package plugin-ffmpeg
+Summary: FFmpeg plugin for OpenImageIO library
+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-ffmpeg -l pl.UTF-8
+Wtyczka biblioteki OpenImageIO czytająca pliki FFmpeg.
+
%package plugin-field3d
Summary: Field3D plugin for OpenImageIO library
Summary(pl.UTF-8): Wtyczka Field3D dla biblioteki OpenImageIO
%description plugin-field3d -l pl.UTF-8
Wtyczka biblioteki OpenImageIO czytająca pliki Field3D.
+%package plugin-gif
+Summary: Gif plugin for OpenImageIO library
+Summary(pl.UTF-8): Wtyczka Gif dla biblioteki OpenImageIO
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description plugin-gif
+OpenImageIO plugin to read GIF 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
information).
%description plugin-jpeg -l pl.UTF-8
-Wtyczka biblioteki OpenImageIO czytająca i zapisująca pliki JPEG
-(wraz z informacjami TIFF/EXIF).
+Wtyczka biblioteki OpenImageIO czytająca i zapisująca pliki JPEG (wraz
+z informacjami TIFF/EXIF).
%package plugin-jpeg2000
Summary: JPEG2000 plugin for OpenImageIO library
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.
%description plugin-ptex -l pl.UTF-8
Wtyczka biblioteki OpenImageIO czytająca pliki Ptex.
+%package plugin-raw
+Summary: RAW plugin for OpenImageIO library
+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.
+
+%description plugin-raw -l pl.UTF-8
+Wtyczka biblioteki OpenImageIO czytająca pliki RAW.
+
+%package plugin-webp
+Summary: WebP plugin for OpenImageIO library
+Summary(pl.UTF-8): Wtyczka WebP dla biblioteki OpenImageIO
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description plugin-webp
+OpenImageIO plugin to read and write WebP files.
+
+%description plugin-webp -l pl.UTF-8
+Wtyczka biblioteki OpenImageIO czytająca i zapisująca pliki WebP.
+
%package plugin-tiff
Summary: TIFF plugin for OpenImageIO library
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
-
-%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 OpenImageIO-oiio-0cae52b
-%patch0 -p1
+%setup -q -n oiio-%{version}
%patch2 -p1
%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%{__rm} -r src/dds.imageio/squish src/ptex.imageio/ptex
+%{__rm} -r src/dds.imageio/squish
%build
install -d build
cd build
-%cmake ../src \
+%cmake .. \
+ -DCMAKE_INSTALL_MANDIR=%{_mandir}/man1 \
-DEMBEDPLUGINS=OFF \
- -DPYLIB_INSTALL_DIR=%{py_sitedir} \
-DINCLUDE_INSTALL_DIR=%{_includedir}/%{name} \
- -DPYTHON_VERSION=%{py_ver} \
- %{!?with_tbb:-DUSE_TBB=OFF} \
+ -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=%{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}
DESTDIR=$RPM_BUILD_ROOT
# name clash with iv
-%{__mv} -f $RPM_BUILD_ROOT%{_bindir}/{iv,oiiv}
+%{__mv} $RPM_BUILD_ROOT%{_bindir}/{iv,oiiv}
+%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/{iv,oiiv}.1
# installed as %doc
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/doc/openimageio
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc CHANGES CREDITS LICENSE README
+%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}/iinfo
-%attr(755,root,root) %{_bindir}/iprocess
%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.0
+%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.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*
+%{_mandir}/man1/iinfo.1*
+%{_mandir}/man1/maketx.1*
+%{_mandir}/man1/oiiotool.1*
%files devel
%defattr(644,root,root,755)
%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}/dpx.imageio.so
+%files plugin-ffmpeg
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/ffmpeg.imageio.so
+
%files plugin-field3d
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/field3d.imageio.so
+%files plugin-gif
+%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}/ptex.imageio.so
+%files plugin-raw
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/raw.imageio.so
+
%files plugin-tiff
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/tiff.imageio.so
-%files apidocs
+%files plugin-webp
%defattr(644,root,root,755)
-%doc src/doc/openimageio.pdf
+%attr(755,root,root) %{_libdir}/webp.imageio.so
%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