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.
tomopy fails because source/libtomo/accel/macros.hh:144
unconditionally includes <opencv2/imgproc/types_c.h> to get legacy
C-API type macros (CV_8UC1 etc.) for the tomo-accel CUDA/OpenCV
target. The compile command already points at the renamed tree
correctly (g++ is invoked with -isystem /usr/include/opencv5), so
this is not a pkg-config or include-path problem: types_c.h and the
rest of the C API it belongs to were dropped entirely in OpenCV 5,
so the header no longer exists anywhere under opencv5. The failure
aborts the whole tomo-accel target: cxx/sirt.cc, cxx/mlem.cc,
cxx/common.cc, their .cu counterparts under gpu/, and the
CUDA-only gpu/utils.cu all hit the same missing header, taking
down dh_auto_build. The maintainer should remove the types_c.h
include from macros.hh, source the CV_8UC1-style macros from
opencv2/core/hal/interface.h instead, and guard any remaining
legacy include on CV_VERSION_MAJOR < 5.
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[4]: Leaving directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
[ 70%] Built target tomo-recon
[ 73%] Linking C shared library ../../../libtomo-gridrec.so
cd /build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14/source/libtomo/gridrec
&& /usr/bin/cmake -E cmake_link_script
CMakeFiles/tomo-gridrec.dir/link.txt --verbose=1
make[4]: Leaving directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
[ 73%] Built target tomo-gridrec
[ 75%] Linking C shared library ../../../libtomo-misc.so
cd /build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14/source/libtomo/misc
&& /usr/bin/cmake -E cmake_link_script
CMakeFiles/tomo-misc.dir/link.txt --verbose=1
make[4]: Leaving directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
[ 75%] Built target tomo-misc
[ 78%] Linking CXX static library ../../../libptl.a
cd /build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14/source/PTL/source
&& /usr/bin/cmake -P
CMakeFiles/ptl-static.dir/cmake_clean_target.cmake
cd /build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14/source/PTL/source
&& /usr/bin/cmake -E cmake_link_script
CMakeFiles/ptl-static.dir/link.txt --verbose=1
/usr/bin/x86_64-linux-gnu-ranlib ../../../libptl.a
make[4]: Leaving directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
[ 78%] Built target ptl-static
make -f source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make
source/libtomo/accel/CMakeFiles/tomo-accel.dir/depend
make[4]: Entering directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
make[4]: Leaving directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
make -f source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make
source/libtomo/accel/CMakeFiles/tomo-accel.dir/build
make[4]: Entering directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
[ 80%] Building CXX object
source/libtomo/accel/CMakeFiles/tomo-accel.dir/cxx/sirt.cc.o
[ 82%] Building CXX object
source/libtomo/accel/CMakeFiles/tomo-accel.dir/cxx/common.cc.o
[ 85%] Building CXX object
source/libtomo/accel/CMakeFiles/tomo-accel.dir/cxx/mlem.cc.o
[ 87%] Building CUDA object
source/libtomo/accel/CMakeFiles/tomo-accel.dir/gpu/common.cu.o
[ 90%] Building CUDA object
source/libtomo/accel/CMakeFiles/tomo-accel.dir/gpu/mlem.cu.o
[ 92%] Building CUDA object
source/libtomo/accel/CMakeFiles/tomo-accel.dir/gpu/sirt.cu.o
[ 95%] Building CUDA object
source/libtomo/accel/CMakeFiles/tomo-accel.dir/gpu/utils.cu.o
In file included from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/constants.hh:47,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/common.hh:42,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/cxx/sirt.cc:40:
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/macros.hh:144:14:
fatal error: opencv2/imgproc/types_c.h: No such file or directory
144 | # include <opencv2/imgproc/types_c.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/constants.hh:47,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/common.hh:42,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/cxx/mlem.cc:40:
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/macros.hh:144:14:
fatal error: opencv2/imgproc/types_c.h: No such file or directory
144 | # include <opencv2/imgproc/types_c.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
compilation terminated.
make[4]: *** [source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make:110:
source/libtomo/accel/CMakeFiles/tomo-accel.dir/cxx/sirt.cc.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: *** [source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make:96:
source/libtomo/accel/CMakeFiles/tomo-accel.dir/cxx/mlem.cc.o] Error 1
In file included from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/constants.hh:47,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/common.hh:42,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/cxx/common.cc:40:
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/macros.hh:144:14:
fatal error: opencv2/imgproc/types_c.h: No such file or directory
144 | # include <opencv2/imgproc/types_c.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make:82:
source/libtomo/accel/CMakeFiles/tomo-accel.dir/cxx/common.cc.o] Error
1
In file included from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/constants.hh:47,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/common.hh:42,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/gpu/sirt.cu:40:
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/macros.hh:144:14:
fatal error: opencv2/imgproc/types_c.h: No such file or directory
144 | # include <opencv2/imgproc/types_c.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make:155:
source/libtomo/accel/CMakeFiles/tomo-accel.dir/gpu/sirt.cu.o] Error 1
In file included from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/constants.hh:47,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/common.hh:42,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/gpu/common.cu:40:
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/macros.hh:144:14:
fatal error: opencv2/imgproc/types_c.h: No such file or directory
144 | # include <opencv2/imgproc/types_c.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/constants.hh:47,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/common.hh:42,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/gpu/utils.cu:42:
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/macros.hh:144:14:
fatal error: opencv2/imgproc/types_c.h: No such file or directory
144 | # include <opencv2/imgproc/types_c.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make:170:
source/libtomo/accel/CMakeFiles/tomo-accel.dir/gpu/utils.cu.o] Error 1
make[4]: *** [source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make:125:
source/libtomo/accel/CMakeFiles/tomo-accel.dir/gpu/common.cu.o] Error
1
In file included from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/constants.hh:47,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/common.hh:42,
from
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/gpu/mlem.cu:40:
/build/reproducible-path/tomopy-1.15.3+ds1/source/libtomo/accel/macros.hh:144:14:
fatal error: opencv2/imgproc/types_c.h: No such file or directory
144 | # include <opencv2/imgproc/types_c.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [source/libtomo/accel/CMakeFiles/tomo-accel.dir/build.make:140:
source/libtomo/accel/CMakeFiles/tomo-accel.dir/gpu/mlem.cu.o] Error 1
make[4]: Leaving directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
make[3]: *** [CMakeFiles/Makefile2:438:
source/libtomo/accel/CMakeFiles/tomo-accel.dir/all] Error 2
make[3]: Leaving directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
make[2]: *** [Makefile:139: all] Error 2
make[2]: Leaving directory
'/build/reproducible-path/tomopy-1.15.3+ds1/obj-x86_64-linux-gnu-py3.14'
dh_auto_build: error: cd obj-x86_64-linux-gnu-py3.14 && make -j40
INSTALL="install --strip-program=true" VERBOSE=1 returned exit code 2
make[1]: *** [debian/rules:49: override_dh_auto_build] Error 25
make[1]: Leaving directory '/build/reproducible-path/tomopy-1.15.3+ds1'
make: *** [debian/rules:36: binary] Error 2
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