License relicensed BSD-3-Clause -> Apache-2.0 in OpenCV 4.5 (Aug 2020).
Add OPENCV_LICENSE_FILES and OPENCV_CVE_PRODUCT for SBOM / CVE tooling.

CMake options synced to 4.13.0 via configure_helper.py:
- Drop options removed since 4.0 (WITH_LIBV4L/NGRAPH/PLAIDML/TENGINE/
  UNICAP/FREETYPE/GIGEAPI/IPP_A/INF_ENGINE, BUILD_opencv_python2,
  BUILD_IPP_IW).
- Pin all new OCV_OPTIONs (WITH_AVIF/OBSENSOR/OAK/OPENVINO/ONNX/
  FLATBUFFERS/KLEIDICV/...) to OFF for reproducibility across archs.
- Switch ARM intrinsics gating from ENABLE_NEON/VFPV3 to the unified
  CPU_BASELINE_REQUIRE/DISABLE framework.
- Fix PYTHON_LIBRARY (pointed at /bin/python instead of the .so);
  migrate to PYTHON3_LIBRARY / PYTHON3_PACKAGES_PATH.
- WITH_LAPACK=OFF; the previous "ON" was a no-op due to the
  conflicting CMAKE_DISABLE_FIND_PACKAGE_LAPACK override.

Tune for embedded:
- WITH_PTHREADS_PF=ON: enables multi-core cv::parallel_for_ (all
  threading backends were OFF, so it was effectively single-threaded).
- CV_TRACE / WITH_ITT / BUILD_ITT / OPENCV_ENABLE_ALLOCATOR_STATS=OFF:
  drop instrumentation overhead and dead tracing hooks.

Kconfig (opencv.in):
- Drop OPENCV_EXAMPLES; examples don't belong in an embedded rootfs
  and cpp samples now require modules we deliberately exclude (gapi).
- Drop OPENCV_V4L_LIBV4L2; OpenCV stopped using libv4l in 4.0, the
  V4L backend talks to /dev/videoX via raw kernel ioctls.
- Fix dependency selects: IMGCODECS/DNN now select IMGPROC; OPENCV_V4L
  and OPENCV_GSTREAMER select OPENCV_VIDEOIO (not OPENCV_VIDEO, which
  is the analysis module, not the I/O backend).

Signed-off-by: Artur Wiebe <[email protected]>
---
 rules/opencv.in   |  36 ++------------
 rules/opencv.make | 119 ++++++++++++++++++++++++++--------------------
 2 files changed, 73 insertions(+), 82 deletions(-)

diff --git a/rules/opencv.in b/rules/opencv.in
index 08a0422ac..f6387ab14 100644
--- a/rules/opencv.in
+++ b/rules/opencv.in
@@ -14,9 +14,7 @@ menuconfig OPENCV
        select QT5_GUI                  if OPENCV_QT
        select GSTREAMER1               if OPENCV_GSTREAMER
        select GST_PLUGINS_BASE1        if OPENCV_GSTREAMER
-       select V4L_UTILS                if OPENCV_V4L_LIBV4L2
-       select V4L_UTILS_LIBV4L2        if OPENCV_V4L_LIBV4L2
-       select PYTHON3_NUMPY    if OPENCV_PYTHON
+       select PYTHON3_NUMPY            if OPENCV_PYTHON
        help
          Open Source Computer Vision Library
 
@@ -59,6 +57,7 @@ config OPENCV_IMGPROC
 config OPENCV_IMGCODECS
        bool
        prompt "imgcodecs"
+       select OPENCV_IMGPROC
        help
          Image Codecs
 
@@ -88,7 +87,6 @@ config OPENCV_STITCHING
        prompt "stitching"
        select OPENCV_CALIB3D
        select OPENCV_FEATURES2D
-       select OPENCV_OBJDETECT
        help
          Images stitching
 
@@ -109,31 +107,24 @@ config OPENCV_VIDEOIO
 config OPENCV_DNN
        bool
        prompt "DNN"
+       select OPENCV_IMGPROC
        help
          Deep Neural Network Library
 
 config OPENCV_GSTREAMER
        bool
        prompt "gstreamer"
+       select OPENCV_VIDEOIO
        help
          Gstreamer Support
 
 config OPENCV_V4L
        bool
        prompt "v4l"
-       select OPENCV_VIDEO
+       select OPENCV_VIDEOIO
        help
          Video4Linux Support
 
-config OPENCV_V4L_LIBV4L2
-       bool
-       prompt "libv4l2"
-       depends on OPENCV_V4L
-       help
-         For embedded use cases it often makes sense to explicitly not
-         use libv4l, because the colorspace conversions in software adds
-         unexpected overhead.
-
 config OPENCV_QT
        bool
        prompt "qt"
@@ -146,21 +137,4 @@ config OPENCV_PYTHON
        help
          Python bindings
 
-config OPENCV_EXAMPLES
-       bool
-       prompt "Build Examples"
-       select OPENCV_IMGPROC
-       select OPENCV_FLANN
-       select OPENCV_IMGCODECS
-       select OPENCV_VIDEOIO
-       select OPENCV_HIGHGUI
-       select OPENCV_ML
-       select OPENCV_VIDEO
-       select OPENCV_OBJDETECT
-       select OPENCV_PHOTO
-       select OPENCV_FEATURES2D
-       select OPENCV_CALIB3D
-       select OPENCV_STITCHING
-       help
-         Build the OpenCV example applications and install them into 
/usr/share/opencv/examples.
 endif
diff --git a/rules/opencv.make b/rules/opencv.make
index f4a044307..1b7daec26 100644
--- a/rules/opencv.make
+++ b/rules/opencv.make
@@ -17,22 +17,20 @@ PACKAGES-$(PTXCONF_OPENCV) += opencv
 # Paths and names
 #
 
-OPENCV_VERSION := 4.4.0
-OPENCV_MD5     := 4b00f5cdb1cf393c4a84696362c5a72a
-OPENCV         := opencv-$(OPENCV_VERSION)
-OPENCV_SUFFIX  := zip
-OPENCV_URL     := \
+OPENCV_VERSION         := 4.13.0
+OPENCV_MD5             := 3774391cd16823fd4c51078cfee36e8b
+OPENCV                 := opencv-$(OPENCV_VERSION)
+OPENCV_SUFFIX          := zip
+OPENCV_URL             := \
        $(call ptx/mirror, SF, 
opencvlibrary/opencv-unix/$(OPENCV_VERSION)/$(OPENCV).$(OPENCV_SUFFIX)) \
        
https://github.com/opencv/opencv/archive/$(OPENCV_VERSION).$(OPENCV_SUFFIX)
-OPENCV_SOURCE  := $(SRCDIR)/$(OPENCV).$(OPENCV_SUFFIX)
-OPENCV_DIR     := $(BUILDDIR)/$(OPENCV)
-OPENCV_LICENSE := BSD
-OPENCV_BUILD_DIR := $(OPENCV_DIR)-build
-
-ifdef PTXCONF_OPENCV_EXAMPLES
-# the examples are installed from the build tree
-OPENCV_DEVPKG  := NO
-endif
+OPENCV_SOURCE          := $(SRCDIR)/$(OPENCV).$(OPENCV_SUFFIX)
+OPENCV_DIR             := $(BUILDDIR)/$(OPENCV)
+OPENCV_BUILD_DIR       := $(OPENCV_DIR)-build
+OPENCV_LICENSE         := Apache-2.0
+OPENCV_LICENSE_FILES   := \
+       file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
+OPENCV_CVE_PRODUCT     := opencv
 
 # ----------------------------------------------------------------------------
 # Prepare
@@ -52,17 +50,16 @@ OPENCV_CONF_TOOL    := cmake
 # Variables that are not shown by configure_helper.py are added at the end.
 OPENCV_CONF_OPT                := \
        $(CROSS_CMAKE_USR) \
-       -DANT_EXECUTABLE= \
        -DBUILD_CUDA_STUBS=OFF \
        -DBUILD_DOCS=OFF \
-       -DBUILD_EXAMPLES=$(call ptx/onoff, PTXCONF_OPENCV_EXAMPLES) \
-       -DBUILD_IPP_IW=ON \
-       -DBUILD_ITT=ON \
+       -DBUILD_EXAMPLES=OFF \
+       -DBUILD_ITT=OFF \
        -DBUILD_JASPER=OFF \
        -DBUILD_JAVA=OFF \
        -DBUILD_JPEG=OFF \
        -DBUILD_LIST= \
        -DBUILD_OPENEXR=OFF \
+       -DBUILD_OPENJPEG=OFF \
        -DBUILD_PACKAGE=OFF \
        -DBUILD_PERF_TESTS=OFF \
        -DBUILD_PNG=OFF \
@@ -82,27 +79,30 @@ OPENCV_CONF_OPT             := \
        -DBUILD_opencv_dnn=$(call ptx/onoff,PTXCONF_OPENCV_DNN) \
        -DBUILD_opencv_features2d=$(call ptx/onoff,PTXCONF_OPENCV_FEATURES2D) \
        -DBUILD_opencv_flann=$(call ptx/onoff,PTXCONF_OPENCV_FLANN) \
-       -DBUILD_opencv_highgui=$(call ptx/onoff,PTXCONF_OPENCV_HIGHGUI)  \
+       -DBUILD_opencv_highgui=$(call ptx/onoff,PTXCONF_OPENCV_HIGHGUI) \
        -DBUILD_opencv_imgcodecs=$(call ptx/onoff,PTXCONF_OPENCV_IMGCODECS) \
        -DBUILD_opencv_imgproc=$(call ptx/onoff,PTXCONF_OPENCV_IMGPROC) \
        -DBUILD_opencv_java_bindings_generator=ON \
        -DBUILD_opencv_js=OFF \
+       -DBUILD_opencv_js_bindings_generator=ON \
        -DBUILD_opencv_ml=$(call ptx/onoff,PTXCONF_OPENCV_ML) \
+       -DBUILD_opencv_objc_bindings_generator=OFF \
        -DBUILD_opencv_objdetect=$(call ptx/onoff,PTXCONF_OPENCV_OBJDETECT) \
        -DBUILD_opencv_photo=$(call ptx/onoff,PTXCONF_OPENCV_PHOTO) \
        -DBUILD_opencv_python3=$(call ptx/onoff,PTXCONF_OPENCV_PYTHON) \
        -DBUILD_opencv_python_bindings_generator=$(call 
ptx/onoff,PTXCONF_OPENCV_PYTHON) \
        -DBUILD_opencv_python_tests=ON \
        -DBUILD_opencv_stitching=$(call ptx/onoff,PTXCONF_OPENCV_STITCHING) \
-       -DBUILD_opencv_ts=OFF \
        -DBUILD_opencv_video=$(call ptx/onoff,PTXCONF_OPENCV_VIDEO) \
        -DBUILD_opencv_videoio=$(call ptx/onoff,PTXCONF_OPENCV_VIDEOIO) \
        -DBUILD_opencv_world=OFF \
        -DCPU_BASELINE=DETECT \
+       -DCPU_BASELINE_DISABLE=VFPV3 \
+       -DCPU_BASELINE_REQUIRE=$(call ptx/ifdef,PTXCONF_ARCH_ARM_NEON,NEON,) \
        -DCPU_DISPATCH= \
        -DCV_DISABLE_OPTIMIZATION=OFF \
        -DCV_ENABLE_INTRINSICS=ON \
-       -DCV_TRACE=ON \
+       -DCV_TRACE=OFF \
        -DENABLE_BUILD_HARDENING=OFF \
        -DENABLE_CCACHE=OFF \
        -DENABLE_CONFIG_VERIFICATION=OFF \
@@ -112,116 +112,133 @@ OPENCV_CONF_OPT         := \
        -DENABLE_IMPL_COLLECTION=OFF \
        -DENABLE_INSTRUMENTATION=OFF \
        -DENABLE_LTO=OFF \
-       -DENABLE_NEON=$(call ptx/onoff,PTXCONF_ARCH_ARM_NEON) \
        -DENABLE_NOISY_WARNINGS=OFF \
        -DENABLE_OMIT_FRAME_POINTER=ON \
        -DENABLE_PIC=ON \
        -DENABLE_PROFILING=OFF \
        -DENABLE_SOLUTION_FOLDERS=OFF \
-       -DENABLE_VFPV3=OFF \
        -DEXECUTABLE_OUTPUT_PATH=$(OPENCV_BUILD_DIR)/bin \
        -DGENERATE_ABI_DESCRIPTOR=OFF \
        -DINSTALL_CREATE_DISTRIB=OFF \
-       -DINSTALL_C_EXAMPLES=$(call ptx/onoff,PTXCONF_OPENCV_EXAMPLES) \
+       -DINSTALL_C_EXAMPLES=OFF \
        -DINSTALL_PYTHON_EXAMPLES=OFF \
        -DINSTALL_TESTS=OFF \
        -DINSTALL_TO_MANGLED_PATHS=OFF \
        -DMKL_WITH_OPENMP=OFF \
        -DMKL_WITH_TBB=OFF \
+       -DOBSENSOR_USE_ORBBEC_SDK=OFF \
+       -DOPENCV_DNN_BACKEND_DEFAULT= \
        -DOPENCV_DNN_CUDA=OFF \
        -DOPENCV_DNN_OPENCL=ON \
+       -DOPENCV_DNN_OPENVINO=OFF \
+       -DOPENCV_DNN_PERF_CAFFE=OFF \
+       -DOPENCV_DNN_PERF_CLCAFFE=OFF \
+       -DOPENCV_DNN_TFLITE=OFF \
+       -DOPENCV_DISABLE_ENV_SUPPORT=OFF \
+       -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=OFF \
        -DOPENCV_DOWNLOAD_PATH=$(OPENCV_DIR)/.cache \
        -DOPENCV_DUMP_HOOKS_FLOW=OFF \
-       -DOPENCV_ENABLE_ALLOCATOR_STATS=ON \
+       -DOPENCV_ENABLE_ALLOCATOR_STATS=OFF \
        -DOPENCV_ENABLE_ATOMIC_LONG_LONG=ON \
        -DOPENCV_ENABLE_MEMALIGN=ON \
        -DOPENCV_ENABLE_MEMORY_SANITIZER=OFF \
        -DOPENCV_ENABLE_NONFREE=OFF \
        -DOPENCV_EXTRA_MODULES_PATH= \
        -DOPENCV_FORCE_3RDPARTY_BUILD=OFF \
+       -DOPENCV_FORCE_PYTHON_LIBS=OFF \
        -DOPENCV_GENERATE_PKGCONFIG=ON \
        -DOPENCV_GENERATE_SETUPVARS=ON \
        -DOPENCV_IPP_GAUSSIAN_BLUR=OFF \
        
-DOPENCV_MATHJAX_RELPATH=https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0 \
        -DOPENCV_PYTHON3_VERSION=$(PYTHON3_MAJORMINOR) \
        -DOPENCV_WARNINGS_ARE_ERRORS=OFF \
+       -DPARALLEL_ENABLE_PLUGINS=ON \
        -DPROTOBUF_UPDATE_FILES=OFF \
        
-DPYTHON3_EXECUTABLE=$(PTXDIST_SYSROOT_CROSS)/usr/bin/python$(PYTHON3_MAJORMINOR)
 \
+       -DPYTHON3_LIMITED_API=OFF \
        
-DPYTHON3_NUMPY_INCLUDE_DIRS=$(PTXDIST_SYSROOT_TARGET)$(PYTHON3_SITEPACKAGES)/numpy/core/include/
 \
        -DWITH_1394=OFF \
        -DWITH_ADE=OFF \
        -DWITH_ARAVIS=OFF \
+       -DWITH_AVIF=OFF \
+       -DWITH_CANN=OFF \
        -DWITH_CAROTENE=OFF \
        -DWITH_CLP=OFF \
-       -DWITH_CUBLAS=OFF \
        -DWITH_CUDA=OFF \
-       -DWITH_CUFFT=OFF \
        -DWITH_EIGEN=OFF \
+       -DWITH_FASTCV=OFF \
        -DWITH_FFMPEG=OFF \
+       -DWITH_FLATBUFFERS=OFF \
+       -DWITH_FRAMEBUFFER=OFF \
+       -DWITH_FRAMEBUFFER_XVFB=OFF \
        -DWITH_FREETYPE=OFF \
        -DWITH_GDAL=OFF \
        -DWITH_GDCM=OFF \
-       -DWITH_GIGEAPI=OFF \
        -DWITH_GPHOTO2=OFF \
        -DWITH_GSTREAMER=$(call ptx/onoff,PTXCONF_OPENCV_GSTREAMER) \
        -DWITH_GTK=OFF \
        -DWITH_GTK_2_X=OFF \
+       -DWITH_HAL_RVV=OFF \
        -DWITH_HALIDE=OFF \
        -DWITH_HPX=OFF \
+       -DWITH_IMGCODEC_GIF=OFF \
        -DWITH_IMGCODEC_HDR=ON \
        -DWITH_IMGCODEC_PFM=ON \
        -DWITH_IMGCODEC_PXM=ON \
        -DWITH_IMGCODEC_SUNRASTER=ON \
-       -DWITH_INF_ENGINE=OFF \
        -DWITH_IPP=OFF \
-       -DWITH_IPP_A=OFF \
-       -DWITH_ITT=ON \
+       -DWITH_ITT=OFF \
        -DWITH_JASPER=OFF \
        -DWITH_JPEG=ON \
-       -DWITH_LAPACK=ON \
+       -DWITH_JPEGXL=OFF \
+       -DWITH_KLEIDICV=OFF \
+       -DWITH_LAPACK=OFF \
        -DWITH_LIBREALSENSE=OFF \
-       -DWITH_LIBV4L=$(call ptx/onoff,PTXCONF_OPENCV_V4L_LIBV4L2) \
        -DWITH_MFX=OFF \
-       -DWITH_NGRAPH=OFF \
-       -DWITH_NVCUVID=OFF \
+       -DWITH_NDSRVP=OFF \
+       -DWITH_OAK=OFF \
+       -DWITH_OBSENSOR=OFF \
+       -DWITH_ONNX=OFF \
        -DWITH_OPENCL=ON \
+       -DWITH_OPENCL_SVM=OFF \
        -DWITH_OPENCLAMDBLAS=OFF \
        -DWITH_OPENCLAMDFFT=OFF \
-       -DWITH_OPENCL_SVM=OFF \
        -DWITH_OPENEXR=OFF \
        -DWITH_OPENGL=OFF \
        -DWITH_OPENJPEG=OFF \
        -DWITH_OPENMP=OFF \
        -DWITH_OPENNI=OFF \
        -DWITH_OPENNI2=OFF \
+       -DWITH_OPENVINO=OFF \
        -DWITH_OPENVX=OFF \
        -DWITH_PLAIDML=OFF \
        -DWITH_PNG=ON \
        -DWITH_PROTOBUF=ON \
-       -DWITH_PTHREADS_PF=OFF \
+       -DWITH_PTHREADS_PF=ON \
        -DWITH_PVAPI=OFF \
        -DWITH_QT=$(call ptx/ifdef,PTXCONF_OPENCV_QT,5,OFF) \
        -DWITH_QUIRC=ON \
+       -DWITH_SPNG=OFF \
        -DWITH_TBB=OFF \
-       -DWITH_TENGINE=OFF \
        -DWITH_TIFF=OFF \
-       -DWITH_UNICAP=OFF \
+       -DWITH_TIMVX=OFF \
+       -DWITH_UEYE=OFF \
        -DWITH_V4L=$(call ptx/onoff,PTXCONF_OPENCV_V4L) \
        -DWITH_VA=OFF \
        -DWITH_VA_INTEL=OFF \
        -DWITH_VULKAN=OFF \
+       -DWITH_WAYLAND=OFF \
+       -DWITH_WEBNN=OFF \
        -DWITH_WEBP=OFF \
        -DWITH_XIMEA=OFF \
        -DWITH_XINE=OFF \
-       -Dopencv_dnn_PERF_CAFFE=OFF \
-       -Dopencv_dnn_PERF_CLCAFFE=OFF \
+       -DWITH_ZLIB_NG=OFF \
        \
-       -DCMAKE_SKIP_RPATH=ON \
-       -DBUILD_opencv_python2=OFF \
-       
-DPYTHON_INCLUDE_DIR=$(PTXDIST_SYSROOT_TARGET)/usr/include/python$(PYTHON3_MAJORMINOR)
 \
-       
-DPYTHON_LIBRARY=$(PTXDIST_SYSROOT_TARGET)/bin/python$(PYTHON3_MAJORMINOR) \
-       -DOPENCV_PYTHON3_INSTALL_PATH=$(PYTHON3_SITEPACKAGES) \
-       -DOPENCV_SKIP_PYTHON_LOADER=ON \
+       -DPYTHON3_INCLUDE_DIR2= \
+       -DPYTHON3_LIBRARY_DEBUG= \
+       
-DPYTHON3_INCLUDE_DIR=$(PTXDIST_SYSROOT_TARGET)/usr/include/python$(PYTHON3_MAJORMINOR)
 \
+       
-DPYTHON3_LIBRARY=$(PTXDIST_SYSROOT_TARGET)/usr/lib/libpython$(PYTHON3_MAJORMINOR).so
 \
+       -DPYTHON3_PACKAGES_PATH=$(PYTHON3_SITEPACKAGES) \
        -DOPENCV_LAPACK_FIND_PACKAGE_ONLY=ON \
        -DCMAKE_DISABLE_FIND_PACKAGE_LAPACK=ON
 
@@ -261,12 +278,12 @@ $(STATEDIR)/opencv.targetinstall:
 
        @$(foreach lib, $(OPENCV_LIBS-y), \
                $(call install_lib, opencv, 0, 0, 0644, $(lib))$(ptx/nl))
-ifdef PTXCONF_OPENCV_EXAMPLES
-       @$(call install_tree, opencv, 0, 0, $(OPENCV_BUILD_DIR)/bin, /bin)
-endif
+
 ifdef PTXCONF_OPENCV_PYTHON
-       @$(call install_tree, opencv, 0, 0, -, $(PYTHON3_SITEPACKAGES))
+       @$(call install_glob, opencv, 0, 0, -, \
+               $(PYTHON3_SITEPACKAGES), *.so *.py, */load_config_py2.py)
 endif
+
        @$(call install_finish, opencv)
        @$(call touch)
 
-- 
2.54.0


Reply via email to