Source: qwt Version: 6.3.0-1 Severity: serious Justification: Policy 8.1 Control: affects -1 src:ovito
qwt 6.3.0-1 generates binary packages libqwt-qt6-dev and libqwt-qt6-6.3 The problem is that qwt previously generated libqwt-qt6-6.2, and both libqwt-qt6-6.2 and libqwt-qt6-6.3 provide /usr/lib/x86_64-linux-gnu/libqwt-qt6.so.6 linking from the major version .6. Hence there is an (undeclared) conflict between libqwt-qt6-6.2 and libqwt-qt6-6.3. This is a problem for ovito, which got built against libqwt-qt6-6.2 and now fails to start rebuilding (if already installed) against libqwt-qt6-6.3 because of the file conflict (libqwt-qt6-6.2 and libqwt-qt6-6.3 cannot be installed at the same time). Linking the library from the major .6 version implies the soname is .6, independent of the minor version. In this case the binary package would want to be simply libqwt-qt6-6 not libqwt-qt6-6.3 But the soname of the library really has declared as libqwt-qt6.so.6.3, including the minor version: $ objdump -p /usr/lib/x86_64-linux-gnu/libqwt-qt6.so.6 | grep SONAME SONAME libqwt-qt6.so.6.3 In this case the binary package (libqwt-qt6-6.3) has been correctly name, but is incorrectly providing a major version link. If it is correct that 6.2 is ABI incompatible with 6.3, then libqwt-qt6-dev should provide the unversioned symlink /usr/lib/x86_64-linux-gnu/libqwt-qt6.so (which it does) and libqwt-qt6-6.3 should provide the minor-versioned symlink /usr/lib/x86_64-linux-gnu/libqwt-qt6.so.6.3 (which it does) and stop providing the major-version symlink /usr/lib/x86_64-linux-gnu/libqwt-qt6.so.6 (this is the bug). If on the other hand 6.2 is ABI compatible with 6.3 after all, then the bug would be in the soname and binary package name. And the soname is deliberately set using the minor version in src/src.pro. So I think the package name is correct. libqwt-qt6-6.3 just needs to stop providing /usr/lib/x86_64-linux-gnu/libqwt-qt6.so.6 I can't tell if the major-version symlink is generated by the qmake build system or the debian scripts, but it's easy to instruct debian/rules to delete it if it was created by qmake. e.g. change debian/libqwt-qt6-6.3.install from usr/lib/${DEB_HOST_MULTIARCH}/libqwt-qt6.so.6* to usr/lib/${DEB_HOST_MULTIARCH}/libqwt-qt6.so.6.* I suspect related problem may also lie behind Bug#1101905, although it addresses a conflict between libqwt-qt5-6.3 and libqwt-qt6-6.3, rather than libqwt-qt6-6.2 and libqwt-qt6-6.3. libqwt-qt5-6.2 and libqwt-qt5-6.3 also have the same kind of conflict, in /usr/lib/x86_64-linux-gnu/libqwt-qt5.so.6 Likely want to change debian/libqwt-qt5-6.3.install from usr/lib/${DEB_HOST_MULTIARCH}/libqwt-qt5.so.6* to usr/lib/${DEB_HOST_MULTIARCH}/libqwt-qt5.so.6.* -- System Information: Debian Release: 13.0 APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 6.12.29-amd64 (SMP w/8 CPU threads; PREEMPT) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled