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.
In kquickimageeditor's case, CMakeLists.txt:38 calls
find_package(OpenCV 4.7) with a hard version constraint. CMake finds
only /usr/lib/x86_64-linux-gnu/cmake/opencv5/OpenCVConfig.cmake (version
5.0.0) and rejects it because 5.0.0 does not satisfy the requested
4.7, so configure fails before any OpenCV symbols are even used. The
maintainer should drop the fixed "4.7" version pin (or change it to a
range/minimum such as find_package(OpenCV 4.7...5.0)) so the opencv5
config is accepted, and verify against opencv5's pkg-config name
(opencv5) and header path (/usr/include/opencv5) if any code paths
depend on the old opencv4 layout.
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.
In most cases this is unintended, check if you included GNUInstallDirs
before KDEInstallDirs. Some third party modules include GNUInstallDirs too
so eg. find_package(Qt6 ...) is equivalent to include(GNUInstallDirs). If
you set CMAKE_INSTALL_LOCALSTATEDIR deliberately before including
KDEInstallDirs its recommended to use KDE_INSTALL_LOCALSTATEDIR instead to
suppress this message.
Call Stack (most recent call first):
/usr/share/ECM/kde-modules/KDEInstallDirsCommon.cmake:220 (_define_relative)
/usr/share/ECM/kde-modules/KDEInstallDirsCommon.cmake:288 (_define_absolute)
/usr/share/ECM/kde-modules/KDEInstallDirs6.cmake:203 (include)
/usr/share/ECM/kde-modules/KDEInstallDirs.cmake:17 (include)
CMakeLists.txt:19 (include)
CMake Warning at
/usr/share/ECM/kde-modules/KDEInstallDirsCommon.cmake:169 (message):
KDE_INSTALL_SYSCONFDIR got its value from CMAKE_INSTALL_SYSCONFDIR. In
most cases this is unintended, check if you included GNUInstallDirs before
KDEInstallDirs. Some third party modules include GNUInstallDirs too so eg.
find_package(Qt6 ...) is equivalent to include(GNUInstallDirs). If you set
CMAKE_INSTALL_SYSCONFDIR deliberately before including KDEInstallDirs its
recommended to use KDE_INSTALL_SYSCONFDIR instead to suppress this message.
Call Stack (most recent call first):
/usr/share/ECM/kde-modules/KDEInstallDirsCommon.cmake:220 (_define_relative)
/usr/share/ECM/kde-modules/KDEInstallDirsCommon.cmake:387 (_define_absolute)
/usr/share/ECM/kde-modules/KDEInstallDirs6.cmake:203 (include)
/usr/share/ECM/kde-modules/KDEInstallDirs.cmake:17 (include)
CMakeLists.txt:19 (include)