#1147684#5
Date:
2026-09-14 11:19:43 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.

ros-image-transport-plugins fails because the header it includes is not
its own but a dependency's:
compressed_depth_image_transport/src/codec.cpp:42 and
src/compressed_depth_publisher.cpp:36 include cv_bridge/cv_bridge.h, and
it is that system header, at /usr/include/cv_bridge/cv_bridge.h:45, that
does "#include <opencv2/imgproc/types_c.h>". OpenCV 5 no longer ships this
legacy C-API compatibility header under /usr/include/opencv5, so every
translation unit that pulls in cv_bridge.h fails to compile regardless of
what ros-image-transport-plugins's own CMakeLists.txt or include paths do.
Because the package never includes types_c.h itself, this cannot be fixed
from this source tree; the actionable step is to track the cv_bridge
package being rebuilt to stop requiring opencv2/imgproc/types_c.h
(replacing it with the OpenCV 5 C++ Mat-based equivalents) and only then
retry this build, or add a versioned build-dependency on the fixed
cv_bridge once it exists.

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.


  make  -f CMakeFiles/compressed_depth_image_transport_gencfg.dir/build.make
CMakeFiles/compressed_depth_image_transport_gencfg.dir/build
  make[3]: Entering directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  Generating reconfiguration files for CompressedDepthPublisher in
compressed_depth_image_transport
  Wrote header file in
/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/_devel/include/compressed_depth_image_transport/CompressedDepthPublisherConfig.h
  make[3]: Leaving directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  [  7%] Built target compressed_depth_image_transport_gencfg
  make  -f CMakeFiles/compressed_depth_image_transport.dir/build.make
CMakeFiles/compressed_depth_image_transport.dir/depend
  make  -f CMakeFiles/compressed_depth_image_transport_test.dir/build.make
CMakeFiles/compressed_depth_image_transport_test.dir/depend
  make[3]: Entering directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  make[3]: Entering directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  make[3]: Leaving directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  make  -f CMakeFiles/compressed_depth_image_transport_test.dir/build.make
CMakeFiles/compressed_depth_image_transport_test.dir/build
  make[3]: Leaving directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  make  -f CMakeFiles/compressed_depth_image_transport.dir/build.make
CMakeFiles/compressed_depth_image_transport.dir/build
  make[3]: Entering directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  make[3]: Entering directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  [ 15%] Building CXX object
CMakeFiles/compressed_depth_image_transport_test.dir/src/compressed_depth_subscriber.cpp.o
  [ 23%] Building CXX object
CMakeFiles/compressed_depth_image_transport_test.dir/src/compressed_depth_publisher.cpp.o
  [ 30%] Building CXX object
CMakeFiles/compressed_depth_image_transport.dir/src/compressed_depth_publisher.cpp.o
  [ 38%] Building CXX object
CMakeFiles/compressed_depth_image_transport.dir/src/codec.cpp.o
  [ 53%] Building CXX object
CMakeFiles/compressed_depth_image_transport.dir/src/compressed_depth_subscriber.cpp.o
  [ 53%] Building CXX object
CMakeFiles/compressed_depth_image_transport.dir/src/manifest.cpp.o
  [ 61%] Building CXX object
CMakeFiles/compressed_depth_image_transport_test.dir/src/manifest.cpp.o
  [ 69%] Building CXX object
CMakeFiles/compressed_depth_image_transport.dir/src/rvl_codec.cpp.o
  [ 76%] Building CXX object
CMakeFiles/compressed_depth_image_transport_test.dir/src/codec.cpp.o
  [ 84%] Building CXX object
CMakeFiles/compressed_depth_image_transport_test.dir/src/rvl_codec.cpp.o
  In file included from
/build/reproducible-path/ros-image-transport-plugins-1.15.0/compressed_depth_image_transport/src/codec.cpp:42:
  /usr/include/cv_bridge/cv_bridge.h:45:10: fatal error:
opencv2/imgproc/types_c.h: No such file or directory
     45 | #include <opencv2/imgproc/types_c.h>
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  make[3]: *** [CMakeFiles/compressed_depth_image_transport.dir/build.make:124:
CMakeFiles/compressed_depth_image_transport.dir/src/codec.cpp.o] Error
1
  make[3]: *** Waiting for unfinished jobs....
  In file included from
/build/reproducible-path/ros-image-transport-plugins-1.15.0/compressed_depth_image_transport/src/codec.cpp:42:
  /usr/include/cv_bridge/cv_bridge.h:45:10: fatal error:
opencv2/imgproc/types_c.h: No such file or directory
     45 | #include <opencv2/imgproc/types_c.h>
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  make[3]: *** [CMakeFiles/compressed_depth_image_transport_test.dir/build.make:124:
CMakeFiles/compressed_depth_image_transport_test.dir/src/codec.cpp.o]
Error 1
  make[3]: *** Waiting for unfinished jobs....
  In file included from
/build/reproducible-path/ros-image-transport-plugins-1.15.0/compressed_depth_image_transport/src/compressed_depth_publisher.cpp:36:
  /usr/include/cv_bridge/cv_bridge.h:45:10: fatal error:
opencv2/imgproc/types_c.h: No such file or directory
     45 | #include <opencv2/imgproc/types_c.h>
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from
/build/reproducible-path/ros-image-transport-plugins-1.15.0/compressed_depth_image_transport/src/compressed_depth_publisher.cpp:36:
  /usr/include/cv_bridge/cv_bridge.h:45:10: fatal error:
opencv2/imgproc/types_c.h: No such file or directory
     45 | #include <opencv2/imgproc/types_c.h>
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  make[3]: *** [CMakeFiles/compressed_depth_image_transport_test.dir/build.make:82:
CMakeFiles/compressed_depth_image_transport_test.dir/src/compressed_depth_publisher.cpp.o]
Error 1
  make[3]: *** [CMakeFiles/compressed_depth_image_transport.dir/build.make:82:
CMakeFiles/compressed_depth_image_transport.dir/src/compressed_depth_publisher.cpp.o]
Error 1
  make[3]: Leaving directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  make[2]: *** [CMakeFiles/Makefile2:1026:
CMakeFiles/compressed_depth_image_transport_test.dir/all] Error 2
  make[2]: *** Waiting for unfinished jobs....
  make[3]: Leaving directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  make[2]: *** [CMakeFiles/Makefile2:994:
CMakeFiles/compressed_depth_image_transport.dir/all] Error 2
  make[2]: Leaving directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  make[1]: *** [Makefile:149: all] Error 2
  make[1]: Leaving directory
'/build/reproducible-path/ros-image-transport-plugins-1.15.0/obj-x86_64-linux-gnu/compressed_depth_image_transport'
  dh_auto_build: error: cd
obj-x86_64-linux-gnu/compressed_depth_image_transport && make -j40
INSTALL="install --strip-program=true" VERBOSE=1 returned exit code 2
  dh_auto_install: error: rosbuilder --sourcedir . --builddir
obj-x86_64-linux-gnu --destdir
/build/reproducible-path/ros-image-transport-plugins-1.15.0/debian/tmp
returned exit code 25
  make: *** [debian/rules:7: 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