#1147686 sight: FTBFS with OpenCV 5.0

#1147686#5
Date:
2026-09-14 11:23:37 UTC
From:
To:
Dear maintainer,

Your package fails to build from source against opencv 5.0.0+dfsg-1~exp1,
currently in experimental.

OpenCV 5.0 renames its entire install tree from opencv4 to opencv5 and ships
no compatibility shims:

  * pkg-config: only /usr/lib/<triplet>/pkgconfig/opencv5.pc.  There is no
                opencv4.pc and no opencv.pc.
  * headers:    /usr/include/opencv5/opencv2/..., no /usr/include/opencv4.
  * cmake:      /usr/lib/<triplet>/cmake/opencv5/OpenCVConfig.cmake.  A bare
                find_package(OpenCV) still resolves, but a pinned version
                such as find_package(OpenCV 4.7) no longer matches.
  * modules:    libopencv-calib3d-dev is split into libopencv-calib-dev,
                libopencv-geometry-dev, libopencv-stereo-dev and
                libopencv-ptcloud-dev; libopencv-features2d-dev becomes
                libopencv-features-dev.  The CMake component names change
                with them (features2d -> features).
  * geometry:   the new geometry module is not only a piece of calib3d.  It
                also absorbs shape and contour functions that used to live
                in imgproc -- contourArea, arcLength, approxPolyDP,
                boundingRect, minAreaRect, convexHull and
                getPerspectiveTransform among them -- and opencv2/opencv.hpp
                does not pull in opencv2/geometry.hpp, so code that reached
                those through the umbrella header now needs an explicit
                include of opencv2/geometry.hpp.

Sight fails because lib/geometry/vision/Dependencies.cmake:1 calls
find_package(OpenCV ... COMPONENTS calib3d aruco ...), and the
opencv5 CMake config
(/usr/lib/x86_64-linux-gnu/cmake/opencv5/OpenCVConfig.cmake:356)
reports "Could NOT find OpenCV (missing: opencv_calib3d
opencv_aruco) (found version 5.0.0)", aborting the configure
invoked from lib/geometry/vision/CMakeLists.txt:1 via
cmake/build/macros.cmake:1154. opencv_aruco is likewise missing
under that name in this opencv5 build, per the same error. The
maintainer should check which OpenCV symbols lib/geometry/vision/
actually uses (camera calibration vs. marker detection) and
replace calib3d/aruco in that find_package(OpenCV COMPONENTS ...)
call with the matching opencv5 component names, verifying the
exact aruco replacement via pkg-config --list-all | grep opencv or
the component list exported by opencv5/OpenCVConfig.cmake.

The same source builds fine in the same chroot against the OpenCV 4.10
packages currently in unstable, so this is specific to OpenCV 5.

The relevant part of the build log follows; the full log is attached.

  dh_auto_configure -- \
  -DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE \
  -DCMAKE_INSTALL_RPATH="/usr/lib/x86_64-linux-gnu/sight" \
  -Wno-dev \
  -DSIGHT_BUILD_EXAMPLES=OFF \
  -DSIGHT_BUILD_TESTS=OFF \
  -DGIT_TAG=26.0.0 \
  -DSIGHT_ARCH=x86-64 \
  -DSIGHT_BUILD_MANPAGES=ON \
  -DCMAKE_BUILD_TYPE=Release
  cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb
PKG_CONFIG=x86_64-linux-gnu-pkg-config cmake
-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None
-DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var
-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON
-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -D [...]
  -- The C compiler identification is GNU 16.2.0
  -- The CXX compiler identification is GNU 16.2.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /usr/bin/x86_64-linux-gnu-gcc - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: /usr/bin/x86_64-linux-gnu-g++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Performing Test HAVE_STDATOMIC
  -- Performing Test HAVE_STDATOMIC - Success
  -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
  CMake Warning at CMakeLists.txt:147 (message):
    CMAKE_INSTALL_PREFIX (/usr) isn't empty.Please select another folder or
    clean it before running install command.