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