[packages/OpenImageIO] - updated to 2.4.14.0 (new sonames); field3d and socket plugins are gone, added openvdb

qboosh qboosh at pld-linux.org
Tue Aug 22 22:42:12 CEST 2023


commit f42f60ac2c5d743e22d00359abcaa2b3a794a5a5
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue Aug 22 22:37:42 2023 +0200

    - updated to 2.4.14.0 (new sonames); field3d and socket plugins are gone, added openvdb

 OpenImageIO-system-libcineon.patch |  32 +++++++----
 OpenImageIO.spec                   | 108 +++++++++++++++++++++----------------
 no-clang-format.patch              |  66 ++++-------------------
 3 files changed, 95 insertions(+), 111 deletions(-)
---
diff --git a/OpenImageIO.spec b/OpenImageIO.spec
index ce57cc9..5c893df 100644
--- a/OpenImageIO.spec
+++ b/OpenImageIO.spec
@@ -1,6 +1,6 @@
 # TODO:
-# - OpenVDB >= 5.0  https://www.openvdb.org/
 # - Nuke >= 7.0?  https://www.foundry.com/products/nuke/ (proprietary)
+# - R3DSDK? https://www.red.com/downloads/r3d-sdk (proprietary)
 # - package fonts?
 # /usr/share/fonts/OpenImageIO/DroidSans-Bold.ttf
 # /usr/share/fonts/OpenImageIO/DroidSans.ttf
@@ -15,64 +15,78 @@
 # Conditional build:
 %bcond_without	ocio		# OpenColorIO support in library
 %bcond_without	opencv		# OpenCV support in library
-%bcond_with	tbb		# Threading Building Blocks
+%bcond_without	openvdb		# OpenVDB plugin
+%bcond_with	qt6		# Qt6 instead of Qt5
+%bcond_without	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
+%ifnarch %{ix86} %{x8664} %{arm} aarch64 ia64 ppc ppc64
 %undefine	with_tbb
 %endif
+%if %{without tbb}
+%undefine	with_openvdb
+%endif
 #
 Summary:	Library for reading and writing images
 Summary(pl.UTF-8):	Biblioteka do odczytu i zapisu obrazów
 Name:		OpenImageIO
-Version:	2.3.21.0
-Release:	7
-License:	BSD
+Version:	2.4.14.0
+Release:	1
+License:	Apache v2.0
 Group:		Libraries
 #Source0Download: https://github.com/OpenImageIO/oiio/releases
 Source0:	https://github.com/OpenImageIO/oiio/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5:	a5def3fc51a35b09f251bc32a11c24da
+# Source0-md5:	cc0e320302622783dfe16ac6ae1946b3
 Patch2:		%{name}-system-libcineon.patch
 Patch3:		no-clang-format.patch
 URL:		https://github.com/OpenImageIO/oiio
-BuildRequires:	Field3D-devel
+BuildRequires:	Imath-devel >= 3.0.0
 %{?with_ocio:BuildRequires:	OpenColorIO-devel}
 BuildRequires:	OpenEXR-devel >= 3.0.0
 BuildRequires:	OpenGL-devel
+%if %{with qt6}
+BuildRequires:	Qt6Core-devel >= 6
+BuildRequires:	Qt6Gui-devel >= 6
+BuildRequires:	Qt6OpenGLWidgets-devel >= 6
+BuildRequires:	Qt6Widgets-devel >= 6
+%else
 BuildRequires:	Qt5Core-devel >= 5.6
 BuildRequires:	Qt5Gui-devel >= 5.6
 BuildRequires:	Qt5OpenGL-devel >= 5.6
 BuildRequires:	Qt5Widgets-devel >= 5.6
+%endif
 # filesystem, regex, system, thread
-BuildRequires:	boost-devel >= 1.53
-BuildRequires:	boost-python3-devel >= 1.53
+BuildRequires:	boost-devel >= 1.66
+BuildRequires:	boost-python3-devel >= 1.66
 BuildRequires:	bzip2-devel
 BuildRequires:	cmake >= 3.12
 BuildRequires:	dcmtk-devel >= 3.6.1
-BuildRequires:	ffmpeg-devel >= 2.6
+BuildRequires:	ffmpeg-devel >= 3.0
 BuildRequires:	freetype-devel >= 2.0
-BuildRequires:	giflib-devel
+BuildRequires:	giflib-devel >= 5.0
 BuildRequires:	glew-devel >= 1.5.1
 BuildRequires:	hdf5-devel
 BuildRequires:	jasper-devel
 BuildRequires:	libcineon-devel
-BuildRequires:	libheif-devel
+BuildRequires:	libfmt-devel >= 9.0
+BuildRequires:	libheif-devel >= 1.7
 BuildRequires:	libjpeg-devel
 BuildRequires:	libpng-devel
 BuildRequires:	libraw-devel >= 0.18
 BuildRequires:	libstdc++-devel >= 6:4.7
-BuildRequires:	libtiff-devel >= 3.9
+BuildRequires:	libtiff-devel >= 4.0
 BuildRequires:	libwebp-devel
-%{?with_opencv:BuildRequires:	opencv-devel >= 2.0}
+%{?with_opencv:BuildRequires:	opencv-devel >= 3.0}
 BuildRequires:	openjpeg2-devel >= 2.4
+%{?with_openvdb:BuildRequires:	openvdb-devel >= 5.0}
 BuildRequires:	ptex-devel >= 2.1
-BuildRequires:	pugixml-devel
+BuildRequires:	pugixml-devel >= 1.8
 BuildRequires:	python3-devel >= 1:2.7
 BuildRequires:	python3-pybind11 >= 2.2.0
-BuildRequires:	robin-map-devel
+BuildRequires:	robin-map-devel >= 0.6.2
 BuildRequires:	rpm-build >= 4.6
 BuildRequires:	rpmbuild(macros) >= 1.605
 BuildRequires:	squish-devel >= 1.10
@@ -80,6 +94,7 @@ BuildRequires:	squish-devel >= 1.10
 BuildRequires:	txt2man
 BuildRequires:	zlib-devel
 Requires:	OpenEXR >= 3.0.0
+Obsoletes:	OpenImageIO-plugin-field3d < 2.4
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -91,7 +106,7 @@ implemented by DLL/DSO plugins.
 
 Currently there are 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, WebP.
+Softimage PIC, DDS, SGI, PNM/PPM/PGM/PBM, OpenVDB, WebP.
 
 %description -l pl.UTF-8
 OpenImageIO to biblioteka do odczytu i zapisu obrazów oraz wiele
@@ -102,13 +117,14 @@ są implementowane przez wtyczki DLL/DSO.
 
 Obecnie istnieją wtyczki obsługujące formaty: 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, WebP.
+RMan Zfile, Softimage PIC, DDS, SGI, PNM/PPM/PGM/PBM, OpenVDB, WebP.
 
 %package devel
 Summary:	Header files for OpenImageIO library
 Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki OpenImageIO
 Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
+Requires:	libfmt-devel >= 9.0
 Requires:	libstdc++-devel >= 6:4.7
 
 %description devel
@@ -173,7 +189,7 @@ 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
+Requires:	ffmpeg-libs >= 3.0
 
 %description plugin-ffmpeg
 OpenImageIO plugin to read FFmpeg files.
@@ -181,23 +197,12 @@ 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
-Group:		Libraries
-Requires:	%{name} = %{version}-%{release}
-
-%description plugin-field3d
-OpenImageIO plugin to read Field3D files.
-
-%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}
+Requires:	giflib >= 5.0
 
 %description plugin-gif
 OpenImageIO plugin to read GIF files.
@@ -210,6 +215,7 @@ Summary:	HEIF plugin for OpenImageIO library
 Summary(pl.UTF-8):	Wtyczka HEIF dla biblioteki OpenImageIO
 Group:		Libraries
 Requires:	%{name} = %{version}-%{release}
+Requires:	libheif >= 1.7
 
 %description plugin-heif
 OpenImageIO plugin to read HEIF files.
@@ -268,6 +274,19 @@ OpenImageIO plugin to read and write OpenEXR files.
 %description plugin-openexr -l pl.UTF-8
 Wtyczka biblioteki OpenImageIO czytająca i zapisująca pliki OpenEXR.
 
+%package plugin-openvdb
+Summary:	OpenVDB plugin for OpenImageIO library
+Summary(pl.UTF-8):	Wtyczka OpenVDB dla biblioteki OpenImageIO
+Group:		Libraries
+Requires:	%{name} = %{version}-%{release}
+Requires:	openvdb >= 5.0
+
+%description plugin-openvdb
+OpenImageIO plugin to read OpenVDB files.
+
+%description plugin-openvdb -l pl.UTF-8
+Wtyczka biblioteki OpenImageIO czytająca pliki OpenVDB.
+
 %package plugin-png
 Summary:	PNG plugin for OpenImageIO library
 Summary(pl.UTF-8):	Wtyczka PNG dla biblioteki OpenImageIO
@@ -335,7 +354,7 @@ 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
+Requires:	libtiff >= 4.0
 
 %description plugin-tiff
 OpenImageIO plugin to read and write TIFF files.
@@ -380,8 +399,6 @@ Wiązanie Pythona do biblioteki OpenImageIO.
 %patch2 -p1
 %patch3 -p1
 
-%{__rm} -r src/dds.imageio/squish
-
 %build
 install -d build
 cd build
@@ -389,14 +406,12 @@ cd build
 	-DCMAKE_INSTALL_MANDIR=%{_mandir}/man1 \
 	-DEMBEDPLUGINS=OFF \
 	-DINCLUDE_INSTALL_DIR=%{_includedir}/%{name} \
+	-DINTERNALIZE_FMT=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 \
@@ -427,7 +442,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc CHANGES.md CREDITS.md LICENSE.md README.md
+%doc CHANGES.md CREDITS.md GOVERNANCE.md LICENSE-BSD.md README.md RELICENSING.md
 %attr(755,root,root) %{_bindir}/iconvert
 %attr(755,root,root) %{_bindir}/idiff
 %attr(755,root,root) %{_bindir}/igrep
@@ -435,9 +450,9 @@ rm -rf $RPM_BUILD_ROOT
 %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.2.3
+%attr(755,root,root) %ghost %{_libdir}/libOpenImageIO.so.2.4
 %attr(755,root,root) %{_libdir}/libOpenImageIO_Util.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libOpenImageIO_Util.so.2.3
+%attr(755,root,root) %ghost %{_libdir}/libOpenImageIO_Util.so.2.4
 %attr(755,root,root) %{_libdir}/bmp.imageio.so
 %attr(755,root,root) %{_libdir}/fits.imageio.so
 %attr(755,root,root) %{_libdir}/hdr.imageio.so
@@ -445,7 +460,6 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/pnm.imageio.so
 %attr(755,root,root) %{_libdir}/rla.imageio.so
 %attr(755,root,root) %{_libdir}/sgi.imageio.so
-%attr(755,root,root) %{_libdir}/socket.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
@@ -486,10 +500,6 @@ rm -rf $RPM_BUILD_ROOT
 %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
@@ -514,6 +524,12 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/openexr.imageio.so
 
+%if %{with openvdb}
+%files plugin-openvdb
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/openvdb.imageio.so
+%endif
+
 %files plugin-png
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/png.imageio.so
diff --git a/OpenImageIO-system-libcineon.patch b/OpenImageIO-system-libcineon.patch
index 0cf62bf..61d6dd7 100644
--- a/OpenImageIO-system-libcineon.patch
+++ b/OpenImageIO-system-libcineon.patch
@@ -1,16 +1,19 @@
-diff -urNp -x '*.orig' oiio-Release-2.0.13.org/src/cineon.imageio/CMakeLists.txt oiio-Release-2.0.13/src/cineon.imageio/CMakeLists.txt
---- oiio-Release-2.0.13.org/src/cineon.imageio/CMakeLists.txt	2019-12-03 23:28:14.000000000 +0100
-+++ oiio-Release-2.0.13/src/cineon.imageio/CMakeLists.txt	2021-03-07 10:21:59.867138452 +0100
-@@ -1,4 +1,2 @@
+--- oiio-2.4.14.0/src/cineon.imageio/CMakeLists.txt.orig	2023-08-21 21:11:54.336404839 +0200
++++ oiio-2.4.14.0/src/cineon.imageio/CMakeLists.txt	2023-08-21 21:26:52.004875084 +0200
+@@ -3,9 +3,7 @@
+ # https://github.com/OpenImageIO/oiio
+ 
  add_oiio_plugin (cineoninput.cpp
 -                 libcineon/Cineon.cpp libcineon/OutStream.cpp libcineon/Codec.cpp
--                 libcineon/Reader.cpp libcineon/Writer.cpp libcineon/CineonHeader.cpp
+-                 libcineon/Reader.cpp libcineon/CineonHeader.cpp
 -                 libcineon/ElementReadStream.cpp libcineon/InStream.cpp)
 +                 LINK_LIBRARIES cineon)
-diff -urNp -x '*.orig' oiio-Release-2.0.13.org/src/cineon.imageio/cineoninput.cpp oiio-Release-2.0.13/src/cineon.imageio/cineoninput.cpp
---- oiio-Release-2.0.13.org/src/cineon.imageio/cineoninput.cpp	2019-12-03 23:28:14.000000000 +0100
-+++ oiio-Release-2.0.13/src/cineon.imageio/cineoninput.cpp	2021-03-07 10:21:59.867138452 +0100
-@@ -28,7 +28,7 @@
+ 
+ # Note: OIIO doesn't support cineon output, so we don't compile
+ # libcineon/Writer.cpp
+--- oiio-2.4.14.0/src/cineon.imageio/cineoninput.cpp.orig	2023-08-01 22:15:24.000000000 +0200
++++ oiio-2.4.14.0/src/cineon.imageio/cineoninput.cpp	2023-08-22 17:46:26.265122755 +0200
+@@ -4,7 +4,7 @@
  
  #include <cmath>
  
@@ -19,3 +22,14 @@ diff -urNp -x '*.orig' oiio-Release-2.0.13.org/src/cineon.imageio/cineoninput.cp
  
  #include <OpenImageIO/dassert.h>
  #include <OpenImageIO/imageio.h>
+@@ -337,8 +337,8 @@ CineonInput::open(const std::string& nam
+         // FIXME: do something about the time zone
+     }
+     {
+-        char filmedge[17];
+-        m_cin.header.FilmEdgeCode(filmedge, sizeof(filmedge));
++        char filmedge[3+3+3+10+10+1]; // should be 17 (2+2+2+6+4+NUL), but be safe in case of out-of-range values
++        m_cin.header.FilmEdgeCode(filmedge);
+         if (filmedge[0])
+             m_spec.attribute("cineon:FilmEdgeCode", filmedge);
+     }
diff --git a/no-clang-format.patch b/no-clang-format.patch
index a474243..3935380 100644
--- a/no-clang-format.patch
+++ b/no-clang-format.patch
@@ -1,57 +1,11 @@
---- oiio-2.3.12.0/src/cmake/compiler.cmake.orig	2022-02-05 17:02:29.480576995 +0100
-+++ oiio-2.3.12.0/src/cmake/compiler.cmake	2022-02-05 17:03:59.121664048 +0100
-@@ -432,54 +432,6 @@
- 
- 
- ###########################################################################
--# clang-format options
--#
--# clang-format is a source code reformatter that is part of the LLVM tools.
--# It can be used to check adherence to project code formatting rules and
--# correct any deviations. If clang-format is found on the system, a
--# "clang-format" build target will trigger a reformatting.
--#
--# Note: skip all of this checking, setup, and cmake-format target if this
--# is being built as a subproject.
--if (PROJECT_IS_TOP_LEVEL)
--    set (CLANG_FORMAT_EXE_HINT "" CACHE PATH "clang-format executable's directory (will search if not specified")
--    set (CLANG_FORMAT_INCLUDES "src/*.h" "src/*.cpp"
--        CACHE STRING "Glob patterns to include for clang-format")
--    set (CLANG_FORMAT_EXCLUDES "*pugixml*" "*SHA1*" "*/farmhash.cpp"
--                               "src/dpx.imageio/libdpx/*"
--                               "src/cineon.imageio/libcineon/*"
--                               "src/dds.imageio/squish/*"
--                               "src/gif.imageio/gif.h"
--                               "src/hdr.imageio/rgbe.cpp"
--                               "src/libutil/stb_sprintf.h"
--         CACHE STRING "Glob patterns to exclude for clang-format")
--    find_program (CLANG_FORMAT_EXE
--                  NAMES clang-format bin/clang-format
--                  HINTS ${CLANG_FORMAT_EXE_HINT} ENV CLANG_FORMAT_EXE_HINT
--                        ENV LLVM_DIRECTORY
--                  NO_DEFAULT_PATH
--                  DOC "Path to clang-format executable")
--    find_program (CLANG_FORMAT_EXE NAMES clang-format bin/clang-format)
--    if (CLANG_FORMAT_EXE)
--        message (STATUS "clang-format found: ${CLANG_FORMAT_EXE}")
--        # Start with the list of files to include when formatting...
--        file (GLOB_RECURSE FILES_TO_FORMAT ${CLANG_FORMAT_INCLUDES})
--        # ... then process any list of excludes we are given
--        foreach (_pat ${CLANG_FORMAT_EXCLUDES})
--            file (GLOB_RECURSE _excl ${_pat})
--            list (REMOVE_ITEM FILES_TO_FORMAT ${_excl})
--        endforeach ()
--        #message (STATUS "clang-format file list: ${FILES_TO_FORMAT}")
--        file (COPY ${CMAKE_CURRENT_SOURCE_DIR}/.clang-format
--              DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
--        add_custom_target (clang-format
--            COMMAND "${CLANG_FORMAT_EXE}" -i -style=file ${FILES_TO_FORMAT} )
--    else ()
--        message (STATUS "clang-format not found.")
--    endif ()
--endif ()
--
--###########################################################################
- # Another way to sneak in custom compiler and DSO linking flags.
+--- oiio-2.4.14.0/src/cmake/compiler.cmake.orig	2023-08-21 21:27:17.401404166 +0200
++++ oiio-2.4.14.0/src/cmake/compiler.cmake	2023-08-21 21:28:41.787613674 +0200
+@@ -508,7 +508,7 @@ endif ()
  #
- set (EXTRA_CPP_ARGS "" CACHE STRING "Extra C++ command line definitions")
+ # Note: skip all of this checking, setup, and cmake-format target if this
+ # is being built as a subproject.
+-if (PROJECT_IS_TOP_LEVEL)
++if (FALSE)
+     set (CLANG_FORMAT_EXE_HINT "" CACHE PATH "clang-format executable's directory (will search if not specified")
+     set (CLANG_FORMAT_INCLUDES "src/*.h" "src/*.cpp"
+         CACHE STRING "Glob patterns to include for clang-format")
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/OpenImageIO.git/commitdiff/f42f60ac2c5d743e22d00359abcaa2b3a794a5a5



More information about the pld-cvs-commit mailing list