Bug#1147682: os-autoinst: FTBFS with OpenCV 5.0
Aron Xu
aron at debian.org
Mon Sep 14 12:18:02 BST 2026
Source: os-autoinst
Version: 5.1782197906.2148e4c5-8
Severity: important
Tags: ftbfs
User: opencv at packages.debian.org
Usertags: opencv5-transition
Control: affects -1 src:opencv
X-Debbugs-Cc: opencv at packages.debian.org, aron at debian.org
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.
os-autoinst fails because ppmclibs/tinycv_impl.cc:18 still includes the
old double-segment legacy header <opencv2/calib3d/calib3d.hpp>, which
OpenCV 5 no longer ships. The g++ invocation already carries -isystem
/usr/include/opencv5, so CMake's module/pkg-config detection is fine;
only this #include is stale, and the build aborts at compile time with
"fatal error: opencv2/calib3d/calib3d.hpp: No such file or directory".
Since libopencv-calib3d-dev is split into calib/geometry/stereo/ptcloud,
there is probably no single flattened <opencv2/calib3d.hpp> replacement
either; the maintainer needs to check which split component(s) provide
the symbols tinycv_impl.cc actually uses (grep ppmclibs/*.cc for the same
#include pattern too), update the #include(s) accordingly, and add the
matching new -dev package(s) to debian/control's Build-Depends.
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.
-- Detecting C compile features - done
-- Checking for module 'fftw3'
-- Found fftw3, version 3.3.11
-- Checking for module 'sndfile'
-- Found sndfile, version 1.2.2
-- Perl executable: /usr/bin/perl
-- Detected Perl installvendorarch (for tinycv):
/usr/lib/x86_64-linux-gnu/perl5/5.42
-- xsubpp executable: /usr/bin/xsubpp
-- Checking for module 'theoraenc>=1.1'
-- Found theoraenc, version 1.2.0
-- Set YAMLLINT_PATH to the path of the yamllint executable to
enable YAML syntax checks.
-- Set CLANG_FORMAT_PATH to the path of the clang-format executable
to enable C++ style checks.
-- Set RUFF_PATH to the path of the ruff executable to enable python
style checks.
-- Set SHELLCHECK_PATH to the path of shellcheck to enable Shell style checks.
-- Set SH_PATH to the path of the shfmt executable to enable bash
script syntax checks.
-- Set GITLINT_PATH to the path of the gitlint executable to enable
git commit message checks.
-- Set PODSPELL_PATH/SPELL_PATH to the path of the podspell/spell
executable to enable spell checking.
-- Configuring done (1.0s)
-- Generating done (0.0s)
CMake Warning:
Manually-specified variables were not used by the project:
CMAKE_EXPORT_NO_PACKAGE_REGISTRY
CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
FETCHCONTENT_FULLY_DISCONNECTED
PKGCONFIG_EXECUTABLE
-- Build files have been written to:
/build/reproducible-path/os-autoinst-5.1782197906.2148e4c5/build
make[1]: Leaving directory
'/build/reproducible-path/os-autoinst-5.1782197906.2148e4c5'
dh_auto_build -O--buildsystem=cmake\+ninja -O--builddirectory=build
cd build && LC_ALL=C.UTF-8 ninja -j40 -v
[1/16] cd /build/reproducible-path/os-autoinst-5.1782197906.2148e4c5/build
&& mkdir -p /build/reproducible-path/os-autoinst-5.1782197906.2148e4c5/build/install-target
FAILED: [code=1] ppmclibs/CMakeFiles/tinycv.dir/tinycv_impl.cc.o
/build/reproducible-path/os-autoinst-5.1782197906.2148e4c5/ppmclibs/tinycv_impl.cc:18:10:
fatal error: opencv2/calib3d/calib3d.hpp: No such file or directory
18 | #include <opencv2/calib3d/calib3d.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
/build/reproducible-path/os-autoinst-5.1782197906.2148e4c5/videoencoder.cpp:
In function ‘int main(int, char**)’:
392 | symlink(basename(path), "qemuscreenshot/last.png");
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd build && LC_ALL=C.UTF-8 ninja -j40 -v
returned exit code 1
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with
exit status 2
--------------------------------------------------------------------------------
Please close this bug if it turns out to be a collision with another ongoing
transition rather than an OpenCV 5 problem.
Thanks,
Aron
-------------- next part --------------
A non-text attachment was scrubbed...
Name: os-autoinst_5.1782197906.2148e4c5-8_amd64-2026-09-11T19?39?52Z.build.gz
Type: application/x-gzip
Size: 58807 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20260914/55c86031/attachment-0001.bin>
More information about the debian-science-maintainers
mailing list