#1147675 kylin-ondevice-ai-engine-plugin: FTBFS with OpenCV 5.0

#1147675#5
Date:
2026-09-14 10:49:55 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.

In kylin-ondevice-ai-engine-plugin's case,
ondeviceembeddingengine/src/embeddingproxy.h:26 hardcodes #include
<opencv4/opencv2/opencv.hpp>, even though CMake already passes -isystem
/usr/include/opencv5 for this same target. Every other component in the
tree (ondevicevisionengine/*) includes OpenCV headers without a version
prefix and builds cleanly under that same flag, so this one header is the
outlier that still spells out the retired opencv4 directory name inside
the #include itself. The maintainer should drop the "opencv4/" path
segment and use #include <opencv2/opencv.hpp> instead, letting the
existing -isystem /usr/include/opencv5 flag resolve it, matching the
sibling engines.

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[3]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  make  -f ondevicevisionengine/ocr_triton_client/CMakeFiles/ocr_triton_client.dir/build.make
ondevicevisionengine/ocr_triton_client/CMakeFiles/ocr_triton_client.dir/build
  make  -f ondevicevisionengine/matting_triton_client/CMakeFiles/matting_triton_client.dir/build.make
ondevicevisionengine/matting_triton_client/CMakeFiles/matting_triton_client.dir/build
  make[3]: Entering directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  make[3]: Entering directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  make[3]: Entering directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  make[3]: Entering directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  make[3]: Entering directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  [  3%] Building CXX object
ondevicenlpengine/CMakeFiles/kylin-ondevice-nlp-engine.dir/ondevicenlpengine.cpp.o
  [  6%] Building CXX object
ondevicevisionengine/image_binaryzation/CMakeFiles/image_binaryzation.dir/client.cpp.o
  [  9%] Building CXX object
ondevicevisionengine/ocr_triton_client/CMakeFiles/ocr_triton_client.dir/client.cpp.o
  [ 12%] Building CXX object
ondevicevisionengine/matting_triton_client/CMakeFiles/matting_triton_client.dir/client.cpp.o
  [ 18%] Building CXX object
ondevicenlpengine/CMakeFiles/kylin-ondevice-nlp-engine.dir/nlp/llm.cpp.o
  [ 18%] Building CXX object
ondevicevisionengine/ocr_triton_client/CMakeFiles/ocr_triton_client.dir/__/utils/base64_transformer.cpp.o
  [ 21%] Building CXX object
ondevicevisionengine/docimgrec_triton_client/CMakeFiles/docimgrec_triton_client.dir/__/utils/base64_transformer.cpp.o
  [ 25%] Building CXX object
ondevicenlpengine/CMakeFiles/kylin-ondevice-nlp-engine.dir/utils/logger.cpp.o
  [ 28%] Building CXX object
ondevicevisionengine/image_binaryzation/CMakeFiles/image_binaryzation.dir/__/utils/base64_transformer.cpp.o
  [ 31%] Building CXX object
ondeviceembeddingengine/CMakeFiles/kylin-ondevice-embedding-engine.dir/ondeviceembeddingengine.cpp.o
  [ 34%] Building CXX object
ondevicevisionengine/docimgrec_triton_client/CMakeFiles/docimgrec_triton_client.dir/client.cpp.o
  [ 37%] Building CXX object
ondevicevisionengine/matting_triton_client/CMakeFiles/matting_triton_client.dir/__/utils/base64_transformer.cpp.o
  [ 40%] Building CXX object
ondeviceembeddingengine/CMakeFiles/kylin-ondevice-embedding-engine.dir/src/embeddingserver.cpp.o
  [ 43%] Building CXX object
ondeviceembeddingengine/CMakeFiles/kylin-ondevice-embedding-engine.dir/src/task.cpp.o
  [ 46%] Building CXX object
ondeviceembeddingengine/CMakeFiles/kylin-ondevice-embedding-engine.dir/src/embeddingproxy.cpp.o
  [ 50%] Building CXX object
ondeviceembeddingengine/CMakeFiles/kylin-ondevice-embedding-engine.dir/src/utils.cpp.o
  In file included from
/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondeviceembeddingengine/src/embeddingproxy.cpp:18:
  /build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondeviceembeddingengine/src/embeddingproxy.h:26:10:
fatal error: opencv4/opencv2/opencv.hpp: No such file or directory
     26 | #include <opencv4/opencv2/opencv.hpp>
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  make[3]: *** Waiting for unfinished jobs....
  In file included from
/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondeviceembeddingengine/src/embeddingserver.h:27,
                   from
/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondeviceembeddingengine/src/embeddingserver.cpp:17:
  /build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondeviceembeddingengine/src/embeddingproxy.h:26:10:
fatal error: opencv4/opencv2/opencv.hpp: No such file or directory
     26 | #include <opencv4/opencv2/opencv.hpp>
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from
/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondeviceembeddingengine/src/embeddingserver.h:27,
                   from
/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondeviceembeddingengine/ondeviceembeddingengine.cpp:19:
  /build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondeviceembeddingengine/src/embeddingproxy.h:26:10:
fatal error: opencv4/opencv2/opencv.hpp: No such file or directory
     26 | #include <opencv4/opencv2/opencv.hpp>
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  make[3]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  make[2]: *** [CMakeFiles/Makefile2:292:
ondeviceembeddingengine/CMakeFiles/kylin-ondevice-embedding-engine.dir/all]
Error 2
  make[2]: *** Waiting for unfinished jobs....
    279 |         (cv::Mat_<float>(1, 2) << 960.0f / 992.0f, 1024.0f / 992.0f);
        |                                            ^~~~~~
  In file included from /usr/include/opencv5/opencv2/core/mat.hpp:4159,
                   from /usr/include/opencv5/opencv2/core.hpp:58,
                   from /usr/include/opencv5/opencv2/opencv.hpp:52,
                   from
/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondevicevisionengine/docimgrec_triton_client/client.h:29,
                   from
/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/ondevicevisionengine/docimgrec_triton_client/client.cpp:18:
  /usr/include/opencv5/opencv2/core/mat.inl.hpp:3211:27: note: declared here
   3211 | MatCommaInitializer_<_Tp> operator << (const Mat_<_Tp>& m, T2 val)
        |                           ^~~~~~~~
  [ 53%] Linking CXX static library libmatting_triton_client.a
  /usr/bin/x86_64-linux-gnu-ar qc libmatting_triton_client.a
CMakeFiles/matting_triton_client.dir/client.cpp.o
CMakeFiles/matting_triton_client.dir/__/utils/base64_transformer.cpp.o
  /usr/bin/x86_64-linux-gnu-ranlib libmatting_triton_client.a
  make[3]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  [ 53%] Built target matting_triton_client
  [ 56%] Linking CXX static library libdocimgrec_triton_client.a
  /usr/bin/x86_64-linux-gnu-ar qc libdocimgrec_triton_client.a
CMakeFiles/docimgrec_triton_client.dir/client.cpp.o
CMakeFiles/docimgrec_triton_client.dir/__/utils/base64_transformer.cpp.o
  /usr/bin/x86_64-linux-gnu-ranlib libdocimgrec_triton_client.a
  make[3]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  [ 56%] Built target docimgrec_triton_client
  [ 59%] Linking CXX static library libimage_binaryzation.a
  /usr/bin/x86_64-linux-gnu-ar qc libimage_binaryzation.a
CMakeFiles/image_binaryzation.dir/client.cpp.o
CMakeFiles/image_binaryzation.dir/__/utils/base64_transformer.cpp.o
  /usr/bin/x86_64-linux-gnu-ranlib libimage_binaryzation.a
  make[3]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  [ 59%] Built target image_binaryzation
  [ 62%] Linking CXX static library libocr_triton_client.a
  /usr/bin/x86_64-linux-gnu-ar qc libocr_triton_client.a
CMakeFiles/ocr_triton_client.dir/client.cpp.o
CMakeFiles/ocr_triton_client.dir/__/utils/base64_transformer.cpp.o
  /usr/bin/x86_64-linux-gnu-ranlib libocr_triton_client.a
  make[3]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  [ 62%] Built target ocr_triton_client
  [ 65%] Linking CXX shared library libkylin-ondevice-nlp-engine.so
  make[3]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  [ 65%] Built target kylin-ondevice-nlp-engine
  make[2]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  make[1]: *** [Makefile:139: all] Error 2
  make[1]: Leaving directory
'/build/reproducible-path/kylin-ondevice-ai-engine-plugin-1.2.0.0/obj-x86_64-linux-gnu'
  dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j40
INSTALL="install --strip-program=true" VERBOSE=1 returned exit code 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

#1147675#12
Date:
2026-10-01 15:35:54 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
kylin-ondevice-ai-engine-plugin, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1147675@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
handsome_feng <jianfengli@ubuntukylin.com> (supplier of updated kylin-ondevice-ai-engine-plugin package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Thu, 01 Oct 2026 11:07:59 -0400
Source: kylin-ondevice-ai-engine-plugin
Architecture: source
Version: 1.2.0.1-1
Distribution: unstable
Urgency: medium
Maintainer: kylin Team <team+kylin@tracker.debian.org>
Changed-By: handsome_feng <jianfengli@ubuntukylin.com>
Closes: 1147675
Changes:
 kylin-ondevice-ai-engine-plugin (1.2.0.1-1) unstable; urgency=medium
 .
   [ zhangpan ]
   * New upstream bugfix-only release.
   * Fix build with OpenCV 5 by using the version-independent OpenCV
     include path. (Closes: #1147675)
Checksums-Sha1:
 2d4a7debc353a6045bfb4e7b69a7f6712c513fe4 2419 kylin-ondevice-ai-engine-plugin_1.2.0.1-1.dsc
 5046fe29acbf3c3d522db3ff6a0ce7c5d75b2ebb 8400031 kylin-ondevice-ai-engine-plugin_1.2.0.1.orig.tar.gz
 002f256d066fa304d1c61a4861e827ece79be308 2160 kylin-ondevice-ai-engine-plugin_1.2.0.1-1.debian.tar.xz
 80f91dc2ee20d3fecc0e369cb9bc84cba131a609 22225 kylin-ondevice-ai-engine-plugin_1.2.0.1-1_source.buildinfo
Checksums-Sha256:
 da3d67147ccedb96ee9167c739efc84de8edfc556267a900341a40203d7a35a5 2419 kylin-ondevice-ai-engine-plugin_1.2.0.1-1.dsc
 676d97eb2aafedbbdf656c6a48ca93b7e795d6bde51e4e398ff9f6ba8fffc44c 8400031 kylin-ondevice-ai-engine-plugin_1.2.0.1.orig.tar.gz
 cc5acc23e019de6199b1e3f22486c9163de14a84a0a6a5df3fb780a3b86fce9d 2160 kylin-ondevice-ai-engine-plugin_1.2.0.1-1.debian.tar.xz
 cc863a02a4f3fedebd75aeb52884a9bf991d60a34c6df6fa3b323b753960bc85 22225 kylin-ondevice-ai-engine-plugin_1.2.0.1-1_source.buildinfo
Files:
 a755c6521cf086372ca8d7dfa4aa9dd3 2419 libs optional kylin-ondevice-ai-engine-plugin_1.2.0.1-1.dsc
 cfdbdaad52d48d7344fddeb630ec4d3a 8400031 libs optional kylin-ondevice-ai-engine-plugin_1.2.0.1.orig.tar.gz
 de9151c1ed6c7eeedb7f0a835f68a709 2160 libs optional kylin-ondevice-ai-engine-plugin_1.2.0.1-1.debian.tar.xz
 4601829bdd3db68c1cdc096c4c6c82d1 22225 libs optional kylin-ondevice-ai-engine-plugin_1.2.0.1-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJPBAEBCgA5FiEEhsgAHpUwnacZWWSCm7hQwBMRHwwFAmq+d6AbHGppYW5mZW5n
bGlAdWJ1bnR1a3lsaW4uY29tAAoJEJu4UMATER8MAVYP/3W49SRTMNlM9PxSxg9C
ib7BB9hCVcpiTqIx5Z0T8GeiaBkiGzAKgNtOlm6LJoE0nVWbHSb0v3FEDOI7TWGQ
nmz25DquloMft1XYobwJy7eFh8eOYIxjBPiKt8txCMR4/Hh4G4uhd+HDMDeWahKa
xnroMUYDG4qhvCTyXWGI0G5HUGqdZoJxAQcw6NmJ/ZNpkjmcfFdZ53bUNhZv0/M5
z2l6uLtaP+hI4UCidjo34X8bMay6iQARluiCLvx35tm0k0f6UyUEzG1AlUdVJUb4
jU5oNBYIbfpv5k7F071czTAcE36TNJBztKrywtPq8TAcLOq02YiTwu05d1QVFvki
ufbq1/q9m298Nqaa3y+Y2k1QrUzoe08wrHI0xpFz8M7cnz7Hsrg5LOz75GotG4Du
VwsU4y6J6ifGO8X8zO/gAVZvedF8Vl5UvFJnxlpREGwdzIamMztY4DFxc4dj3Awa
Qdaget63lCXAQBwCYcQemFMNZlal4skyUSmOASYTTX9DIr4cbIoKEzh9lRtrle16
ZDxhBk4izjBIdBwxws1uFVgbkI9JS0C+KxGR3ZbC2WrhnTVVPjT9Pq0ehH9UQMEP
mg0xS7aml2dRRJGp9bSXEUg2fwjfzI1EAkNDqgbeZij9PYWhNV59CRtJ9MoUIHnp
RfhDxS/0xjrtY8dtFd8ObNeg
=zU5t
-----END PGP SIGNATURE-----