mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Artur Wiebe via ptxdist <ptxdist@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Artur Wiebe <artur@4wiebe.de>
Subject: [ptxdist] [PATCH] opencv: version bump 4.4.0 -> 4.13.0
Date: Mon, 11 May 2026 15:41:55 +0200	[thread overview]
Message-ID: <20260511134155.1285859-1-artur@4wiebe.de> (raw)

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 <artur@4wiebe.de>
---
 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	other threads:[~2026-05-11 13:42 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260511134155.1285859-1-artur@4wiebe.de \
    --to=ptxdist@pengutronix.de \
    --cc=artur@4wiebe.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox