I want to prepare a debian package with dependency to OpenCV 3.4.1. In debian/control I specify:
Build-Depends: ...
libopencv-dev (=3.4.1-xenial1.3),
The problem is, that in our apt repository there is also OpenCV 3.4.10. Now, my package is built and linked to OpenCV 3.4.1, but a package building tool specifies the package dependencies on the level of .so number (3.4), so the latest OpenCV is installed automatically. And unfortunately, the shared objects contain symbols that have changed between 3.4.1 and 3.4.10 (that concerns libopencv_dnn.so). In the end, my application cannot find the symbols from libopencv_dnn.so.3.4.1 in libopencv_dnn.so.3.4.10, and I can't make it install version 3.4.1 as the dependency.
libopencv_dnn.so
’s symbols changed but not its soname, you’re going to run into issues anyway... – Stephen Kitt Sep 08 '20 at 16:49dh_shlibdeps
, see this answer. I’m not sure how well a strict dependency on 3.4.1 will work though. – Stephen Kitt Sep 09 '20 at 07:04