public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/opencv] opencv5: Separate per-module subpackages (#1878320)
@ 2026-08-28 13:32 Yaakov Selkowitz
0 siblings, 0 replies; only message in thread
From: Yaakov Selkowitz @ 2026-08-28 13:32 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/opencv
Branch : opencv5
Commit : b2d277d847f097b6793a7ebc55338bb9d4685638
Author : Yaakov Selkowitz <yselkowi@redhat.com>
Date : 2023-09-22T15:15:23-04:00
Stats : +110/-75 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/opencv/c/b2d277d847f097b6793a7ebc55338bb9d4685638?branch=opencv5
Log:
Separate per-module subpackages (#1878320)
---
diff --git a/opencv.spec b/opencv.spec
index a1a7e8a..e92f974 100644
--- a/opencv.spec
+++ b/opencv.spec
@@ -70,7 +70,7 @@ Version: 4.8.0
%global minorver %(foo=%{version}; a=(${foo//./ }); echo ${a[1]} )
%global padding %(digits=00; num=%{minorver}; echo ${digits:${#num}:${#digits}} )
%global abiver %(echo %{majorver}%{padding}%{minorver} )
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Collection of algorithms for computer vision
# This is normal three clause BSD.
License: BSD-3-Clause and Apache-2.0 and ISC
@@ -169,7 +169,7 @@ BuildRequires: hdf5-devel
BuildRequires: openjpeg2-devel
BuildRequires: freetype-devel
BuildRequires: harfbuzz-devel
-# Module opencv_ovis disabled because of incompatible OGRE3D version < 1.10
+# Module opencv_ovis disabled because of incompatible OGRE3D version < 1.11.5
# BuildRequires: ogre-devel
%{?with_vtk:BuildRequires: vtk-devel}
%{?with_vtk:
@@ -218,15 +218,116 @@ and Computer Vision algorithms.
Summary: OpenCV core libraries
Provides: bundled(quirc) = 1.0
Obsoletes: python2-%{name} < %{version}
+# any removed modules should be listed here
+Obsoletes: %{name}-contrib < 4.8.0-2
%description core
This package contains the OpenCV C/C++ core libraries.
+%package data
+Summary: OpenCV data
+
+%description data
+This package contains OpenCV data.
+
+
+%global opencv_devel_requires %{name}-core%{_isa} = %{version}-%{release}
+
+%define opencv_module_subpkg(m:d:) \
+%global opencv_devel_requires %{opencv_devel_requires} %{name}-%{-m*}%{_isa} = %{version}-%{release}\
+%define modulename %{-m:%{-m*}}%{!-m:%{error:Module name not defined}}\
+%define moduledesc %{-d:%{-d*}}%{!-d:%{-m*}}\
+%package %{modulename}\
+Summary: OpenCV module: %{moduledesc}\
+Requires: %{name}-core%{_isa} = %{version}-%{release}\
+\
+%description %{modulename}\
+This package contains the OpenCV %{moduledesc} module runtime.\
+\
+%files %{modulename}\
+%{_libdir}/libopencv_%{modulename}.so.{%{abiver},%{version}}
+
+# main modules
+%opencv_module_subpkg -m calib3d -d %{quote:Camera Calibration and 3D Reconstruction}
+%opencv_module_subpkg -m dnn -d %{quote:Deep Neural Network}
+%opencv_module_subpkg -m features2d -d %{quote:2D Feature Detection}
+%opencv_module_subpkg -m flann -d %{quote:Clustering and Search in Multi-dimensional Space}
+%opencv_module_subpkg -m gapi -d %{quote:Graph API}
+%opencv_module_subpkg -m highgui -d %{quote:High-level GUI}
+%opencv_module_subpkg -m imgcodecs -d %{quote:Image Encoding/Decoding}
+%opencv_module_subpkg -m imgproc -d %{quote:Image Processing}
+%opencv_module_subpkg -m ml -d %{quote:Machine Learning}
+%opencv_module_subpkg -m objdetect -d %{quote:Object Detection}
+%opencv_module_subpkg -m photo -d %{quote:Computational Photography}
+%opencv_module_subpkg -m stitching -d %{quote:Images stitching}
+%opencv_module_subpkg -m video -d %{quote:Video Analysis}
+%opencv_module_subpkg -m videoio -d %{quote:Video I/O}
+# contrib/extra modules
+%opencv_module_subpkg -m alphamat -d %{quote:Alpha Matting}
+%opencv_module_subpkg -m aruco -d %{quote:Aruco Markers}
+%opencv_module_subpkg -m bgsegm -d %{quote:Background Segmentation}
+%opencv_module_subpkg -m bioinspired -d %{quote:Biologically-inspired Vision Models}
+%opencv_module_subpkg -m ccalib -d %{quote:Custom Calibration Pattern}
+%if %{with cuda}
+%opencv_module_subpkg -m cudaarithm -d %{quote:CUDA Matrix Arithmatic}
+%opencv_module_subpkg -m cudabgsegm -d %{quote:CUDA Background Segmentation}
+%opencv_module_subpkg -m cudacodec -d %{quote:CUDA Video Encoding/Decoding}
+%opencv_module_subpkg -m cudafeatures2d -d %{quote:CUDA 2D Feature Detection}
+%opencv_module_subpkg -m cudafilters -d %{quote:CUDA Image Filtering}
+%opencv_module_subpkg -m cudaimgproc -d %{quote:CUDA Image Processing}
+%opencv_module_subpkg -m cudalegacy -d %{quote:CUDA Legacy Support}
+%opencv_module_subpkg -m cudaobjdetect -d %{quote:CUDA Object Detection}
+%opencv_module_subpkg -m cudaoptflow -d %{quote:CUDA Optical Flow}
+%opencv_module_subpkg -m cudastereo -d %{quote:CUDA Stereo Correspondance}
+%opencv_module_subpkg -m cudawarping -d %{quote:CUDA Image Warping}
+%opencv_module_subpkg -m cudev -d %{quote:CUDA Device Layer}
+%endif
+%opencv_module_subpkg -m cvv -d %{quote:Interactive Computer Vision Visual Debugging}
+%opencv_module_subpkg -m datasets -d %{quote:Datasets Framework}
+%opencv_module_subpkg -m dnn_objdetect -d %{quote:Deep Neural Network Object Detection}
+%opencv_module_subpkg -m dnn_superres -d %{quote:Deep Neural Network Super Resolution}
+%opencv_module_subpkg -m dpm -d %{quote:Deformable Part-based Models}
+%opencv_module_subpkg -m face -d %{quote:Face Analysis}
+%opencv_module_subpkg -m freetype -d %{quote:Freetype/Harfbuzz UTF-8 Strings}
+%opencv_module_subpkg -m fuzzy -d %{quote:Fuzzy Math-based Image Processing}
+%opencv_module_subpkg -m hdf -d %{quote:HDF Data Format I/O}
+%opencv_module_subpkg -m hfs -d %{quote:Heirarchical Feature Selection}
+%opencv_module_subpkg -m img_hash -d %{quote:Image Hashing}
+%opencv_module_subpkg -m intensity_transform -d %{quote:Intensity Transformation}
+%opencv_module_subpkg -m line_descriptor -d %{quote:Extracted Line Binary Descriptor}
+%opencv_module_subpkg -m mcc -d %{quote:Macbeth Chart}
+%opencv_module_subpkg -m optflow -d %{quote:Optical Flow Algorithms}
+#opencv_module_subpkg -m ovis -d %%{quote:OGRE 3D Visualiser}
+%opencv_module_subpkg -m phase_unwrapping -d %{quote:Phase Unwrapping}
+%opencv_module_subpkg -m plot -d %{quote:2D Plotting}
+%opencv_module_subpkg -m quality -d %{quote:Image Quality Analysis}
+%opencv_module_subpkg -m rapid -d %{quote:Silhouette based 3D Object Tracking}
+%opencv_module_subpkg -m reg -d %{quote:Image Registration}
+%opencv_module_subpkg -m rgbd -d %{quote:RGB-Depth Processing}
+%opencv_module_subpkg -m saliency -d %{quote:Saliency}
+%opencv_module_subpkg -m shape -d %{quote:Shape Distance and Matching}
+%opencv_module_subpkg -m stereo -d %{quote:Stereo Correspondance}
+%opencv_module_subpkg -m structured_light -d %{quote:Structed Light}
+%opencv_module_subpkg -m superres -d %{quote:Super Resolution}
+%opencv_module_subpkg -m surface_matching -d %{quote:Surface Matching}
+%opencv_module_subpkg -m text -d %{quote:Text Detection and Recognition}
+%opencv_module_subpkg -m tracking -d %{quote:Tracking}
+%opencv_module_subpkg -m videostab -d %{quote:Video Stabilization}
+%if %{with vtk}
+%opencv_module_subpkg -m viz -d %{quote:3D Visualizer}
+%endif
+%opencv_module_subpkg -m wechat_qrcode -d %{quote:WeChat QR code detector}
+%opencv_module_subpkg -m ximgproc -d %{quote:Extended Image Processing}
+%opencv_module_subpkg -m xobjdetect -d %{quote:Extended Object Detection}
+%opencv_module_subpkg -m xphoto -d %{quote:Extended Photo Processing}
+
+
%package devel
Summary: Development files for using the OpenCV library
Requires: %{name}%{_isa} = %{version}-%{release}
-Requires: %{name}-contrib%{_isa} = %{version}-%{release}
+Requires: %{name}-data%{_isa} = %{version}-%{release}
+Requires: %{opencv_devel_requires}
%description devel
This package contains the OpenCV C/C++ library and header files, as well as
@@ -267,16 +368,6 @@ Requires: %{name}-core%{_isa} = %{version}-%{release}
This package contains Java bindings for the OpenCV library.
-%package contrib
-Summary: OpenCV contributed functionality
-
-%description contrib
-This package is intended for development of so-called "extra" modules, contributed
-functionality. New modules quite often do not have stable API, and they are not
-well-tested. Thus, they shouldn't be released as a part of official OpenCV
-distribution, since the library maintains binary compatibility, and tries
-to provide decent performance and stability.
-
%prep
# autosetup doesn't work with 2 sources
# https://github.com/rpm-software-management/rpm/issues/1204
@@ -426,6 +517,9 @@ ln -s -r %{buildroot}%{_jnidir}/opencv-%{javaver}.jar %{buildroot}%{_jnidir}/ope
%files
%doc README.md
%{_bindir}/opencv_*
+
+%files data
+%license LICENSE
%dir %{_datadir}/opencv4
%{_datadir}/opencv4/haarcascades
%{_datadir}/opencv4/lbpcascades
@@ -435,21 +529,7 @@ ln -s -r %{buildroot}%{_jnidir}/opencv-%{javaver}.jar %{buildroot}%{_jnidir}/ope
%files core
%license LICENSE
%{_datadir}/licenses/opencv4/
-%{_libdir}/libopencv_calib3d.so.{%{abiver},%{version}}
%{_libdir}/libopencv_core.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_dnn.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_features2d.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_flann.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_gapi.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_highgui.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_imgcodecs.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_imgproc.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_ml.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_objdetect.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_photo.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_stitching.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_video.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_videoio.so.{%{abiver},%{version}}
%files devel
%dir %{_includedir}/opencv4
@@ -476,56 +556,11 @@ ln -s -r %{buildroot}%{_jnidir}/opencv-%{javaver}.jar %{buildroot}%{_jnidir}/ope
%{_jnidir}/opencv.jar
%endif
-%files contrib
-%{_libdir}/libopencv_alphamat.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_aruco.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_bgsegm.so.{%{abiver},%{version}}
-#%%{_libdir}/libopencv_barcode.so.{#%%{abiver},#%%{version}}
-%{_libdir}/libopencv_bioinspired.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_ccalib.so.{%{abiver},%{version}}
-%{?with_cuda:
-%{_libdir}/libopencv_cuda*.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_cudev.so.{%{abiver},%{version}}
-}
-%{_libdir}/libopencv_cvv.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_datasets.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_dnn_objdetect.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_dnn_superres.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_dpm.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_face.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_freetype.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_fuzzy.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_hdf.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_hfs.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_img_hash.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_intensity_transform.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_line_descriptor.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_mcc.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_optflow.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_phase_unwrapping.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_plot.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_quality.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_rapid.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_reg.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_rgbd.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_saliency.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_shape.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_stereo.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_structured_light.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_superres.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_surface_matching.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_text.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_tracking.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_videostab.so.{%{abiver},%{version}}
-%if %{with vtk}
-%{_libdir}/libopencv_viz.so.{%{abiver},%{version}}
-%endif
-%{_libdir}/libopencv_wechat_qrcode.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_ximgproc.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_xobjdetect.so.{%{abiver},%{version}}
-%{_libdir}/libopencv_xphoto.so.{%{abiver},%{version}}
%changelog
+* Thu Sep 14 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 4.8.0-2
+- Separate per-module subpackages (#1878320)
+
* Mon Aug 07 2023 Sérgio Basto <sergio@serjux.com> - 4.8.0-1
- Update opencv to 4.8.0
- Use bundle flatbuffers, tried build with flatbuffers from system but doesn't build
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-28 13:32 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-28 13:32 [rpms/opencv] opencv5: Separate per-module subpackages (#1878320) Yaakov Selkowitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox