Add python3-setuptools dependency for python 3.12
[platform/upstream/opencv.git] / packaging / opencv.spec
index 4a4369a..ef060a1 100644 (file)
@@ -1,25 +1,42 @@
+%if 0%{?_with_da_profile}%{?CV_VIDEOIO_BACKEND_GSTREAMER}
+%define support_gstreamer 1
+%else
+%define support_gstreamer 0
+%endif
+
 Name: opencv
 Summary: OpenCV library
-Version: 4.2.0
-Release: 3
+Version: 4.7.0
+Release: 7
 Group: Development/Libraries
-License: BSD-3-Clause and LGPL-2.1+
+License: Apache-2.0
 Source0: %{name}-%{version}.tar.gz
-Source100: opencv-contrib420.tar.gz
+Source100: opencv-contrib-%{version}.tar.gz
+# In cmake/OpenCVDetectPython.cmake, python packages are installed
+# in lib/ regardless of i586, armv7l, x86_64, aarch64, riscv64
+# So, this patch installs the python packages in:
+# lib64/ if x86_64 or aarch64
+# lib/ if i586 or armv7l
+Source1001: 1001-TIZEN-OPENCV-PYTHON3-LIB64-PATH.patch
 
 BuildRequires:  cmake
 BuildRequires:  pkg-config
 BuildRequires:  libjpeg-turbo-devel
 BuildRequires:  libpng-devel
 BuildRequires:  libtiff-devel
-BuildRequires:  gstreamer
-BuildRequires:  gst-plugins-base
-BuildRequires:  gst-plugins-good
+BuildRequires:  pkgconfig(gstreamer-1.0)
+BuildRequires:  pkgconfig(gstreamer-plugins-base-1.0)
 BuildRequires:  libavutil-devel
 BuildRequires:  libavcodec-devel
 BuildRequires:  libavformat-devel
 BuildRequires:  libswscale-devel
-
+BuildRequires:  pkgconfig(libwebp)
+#support python3
+%if "%{?profile}" != "tv"
+BuildRequires:  python3-devel
+BuildRequires:  python3-setuptools
+BuildRequires:  python3-numpy-devel
+%endif
 
 Requires(post):  /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
@@ -35,10 +52,23 @@ Requires:    %{name} = %{version}-%{release}
 %description devel
 The Open Computer Vision Library (Dev) includes various algorithms for computer vision problems.
 
+%if "%{?profile}" != "tv"
+%package -n python3-opencv
+Summary:    OpenCV Python3 Library
+Group:      Development/Libraries
+Requires:   %{name} = %{version}-%{release}
+
+%description -n python3-opencv
+The Open Computer Vision Library (Python3) includes various algorithms for computre vision problems.
+%endif
+
 %prep
 %setup -q
 %setup -q -T -D -a 100
 
+cp %{SOURCE1001} .
+patch -p1 < %{SOURCE1001}
+
 %build
 %ifarch aarch64
 ARCH=aarch64
@@ -52,10 +82,16 @@ ARCH=x86_64
 %ifarch %ix86
 ARCH=i386
 %endif
+%ifarch riscv64
+ARCH=riscv64
+%endif
 
 # compatibility to opencv3
 sed -i 's/opencv4.pc/opencv.pc/g' cmake/OpenCVGenPkgconfig.cmake
 
+# FFMPEG's TIZEN_FEATURE_LIBAV feature.
+export CFLAGS+=" -DTIZEN_FEATURE_LIBAV"
+export CXXFLAGS+=" -DTIZEN_FEATURE_LIBAV"
 
 mkdir -p build
 cd build
@@ -80,7 +116,12 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_opencv_objdetect=ON \
        -DBUILD_opencv_photo=ON \
        -DBUILD_opencv_python2=OFF \
+%if "%{?profile}" != "tv"
+       -DBUILD_opencv_python3=ON \
+%else
        -DBUILD_opencv_python3=OFF \
+       -DPARALLEL_ENABLE_PLUGINS=OFF \
+%endif
        -DBUILD_opencv_shape=OFF \
        -DBUILD_opencv_stitching=OFF \
        -DBUILD_opencv_superres=OFF \
@@ -89,7 +130,6 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_opencv_videoio=ON \
        -DBUILD_opencv_videostab=OFF \
        -DBUILD_opencv_world=OFF \
-       -DBUILD_opencv_python=OFF \
        -DBUILD_opencv_viz=OFF \
        -DOPENCV_EXTRA_MODULES_PATH=../opencv-contrib/modules \
        -DBUILD_opencv_aruco=OFF \
@@ -111,10 +151,10 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_opencv_img_hash=OFF \
        -DBUILD_opencv_line_descriptor=OFF \
        -DBUILD_opencv_matlab=OFF \
-       -DBUILD_opencv_optflow=OFF \
+       -DBUILD_opencv_optflow=ON \
        -DBUILD_opencv_ovis=OFF \
        -DBUILD_opencv_phase_unwrapping=OFF \
-       -DBUILD_opencv_plot=OFF \
+       -DBUILD_opencv_plot=ON \
        -DBUILD_opencv_quality=OFF \
        -DBUILD_opencv_reg=OFF \
        -DBUILD_opencv_rgbd=OFF \
@@ -122,7 +162,6 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_opencv_sfm=OFF \
        -DBUILD_opencv_shape=OFF \
        -DBUILD_opencv_stereo=OFF \
-       -DBUILD_opencv_stitching=OFF \
        -DBUILD_opencv_structured_light=OFF \
        -DBUILD_opencv_superres=OFF \
        -DBUILD_opencv_surface_matching=OFF \
@@ -131,9 +170,15 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_opencv_videostab=OFF \
        -DBUILD_opencv_viz=OFF \
        -DBUILD_opencv_xfeatures2d=ON \
-       -DBUILD_opencv_ximgproc=OFF \
+       -DBUILD_opencv_ximgproc=ON \
        -DBUILD_opencv_xobjdetect=OFF \
        -DBUILD_opencv_xphoto=OFF \
+       -DBUILD_opencv_wechat_qrcode=OFF \
+       -DBUILD_opencv_barcode=OFF \
+       -DBUILD_opencv_intensity_transform=OFF \
+       -DBUILD_opencv_mcc=OFF \
+       -DBUILD_opencv_rapid=OFF \
+       -DOPENCV_FORCE_3RDPARTY_BUILD=OFF \
        -DBUILD_ZLIB=OFF \
        -DBUILD_TIFF=OFF \
        -DBUILD_JASPER=OFF \
@@ -142,6 +187,7 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_WEBP=OFF \
        -DBUILD_OPENEXR=OFF \
        -DBUILD_TBB=OFF \
+       -DBUILD_OPENJPEG=OFF \
        -DBUILD_SHARED_LIBS=ON \
        -DBUILD_opencv_apps=OFF \
        -DBUILD_opencv_js=OFF \
@@ -175,7 +221,8 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DWITH_INTELPERC=OFF \
        -DWITH_IPP=OFF \
        -DWITH_JASPER=OFF \
-       -DWITH_WEBP=OFF \
+       -DWITH_OPENJPEG=OFF \
+       -DWITH_WEBP=ON \
        -DWITH_MSMF=OFF \
        -DWITH_NVCUVID=OFF \
        -DWITH_OPENCL=OFF \
@@ -195,7 +242,12 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DWITH_VTK=OFF \
        -DWITH_WIN32UI=OFF \
        -DWITH_XIMEA=OFF \
+       -DWITH_QUIRC=OFF \
+%if 0%{?support_gstreamer}
+       -DWITH_GSTREAMER=ON \
+%else
        -DWITH_GSTREAMER=OFF \
+%endif
        -DWITH_V4L=ON \
        -DWITH_GTK=OFF \
        -DWITH_MATLAB=OFF \
@@ -205,6 +257,7 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
        -DWITH_LAPACK=OFF \
        -DWITH_OPENVX=OFF \
        -DWITH_PROTOBUF=ON \
+       -DWITH_ADE=OFF \
        -DINSTALL_C_EXAMPLES=OFF \
        -DINSTALL_PYTHON_EXAMPLES=OFF \
        -DINSTALL_TESTS=OFF \
@@ -259,9 +312,9 @@ fi
 %files
 %manifest opencv.manifest
 %defattr(-,root,root,-)
-%license LICENSE LICENSE.LGPL-2.1+
-%{_libdir}/*.so.*
-%{_libdir}/cmake/opencv4/*.cmake
+%license LICENSE
+%{_libdir}/*.so*
+
 /usr/share/licenses/opencv4/*
 /usr/share/opencv4/haarcascades/*frontalface_alt*
 /usr/share/opencv4/haarcascades/*smile*
@@ -283,8 +336,15 @@ fi
 %exclude /usr/share/opencv4/lbpcascades/*silverware*
 %exclude /usr/share/opencv4/*.supp
 
+%if "%{?profile}" != "tv"
+%files -n python3-opencv
+%{python3_sitearch}/cv2/*.py
+%{python3_sitearch}/cv2/*/*.py
+%{python3_sitearch}/cv2/*/*.so
+%endif
+
 %files devel
 /usr/include/*
 %{_libdir}/pkgconfig/*.pc
-%{_libdir}/*.so
+%{_libdir}/cmake/opencv4/*.cmake
 %doc