Bug#977891: opencascade: library package names do not follow SOVERSION

Andreas Beckmann anbe at debian.org
Tue Dec 22 13:25:31 GMT 2020


Source: opencascade
Version: 7.5.0+dfsg1-1
Severity: serious
User: debian-qa at lists.debian.org
Usertags: piuparts

Hi,

during a test with piuparts I noticed your package fails to upgrade from
'stable'.
It installed fine in 'stable', then the upgrade to 'sid' fails
because it tries to overwrite other packages files without declaring a
Breaks+Replaces relation.

See policy 7.6 at
https://www.debian.org/doc/debian-policy/ch-relationships.html#overwriting-files-and-replacing-packages-replaces

This test intentionally skipped 'testing' to find file overwrite
problems before packages migrate from 'unstable' to 'testing'.

>From the attached log (scroll to the bottom...):

  Preparing to unpack .../0-libocct-foundation-7.5_7.5.0+dfsg1-1_amd64.deb ...
  Unpacking libocct-foundation-7.5:amd64 (7.5.0+dfsg1-1) ...
  dpkg: error processing archive /tmp/apt-dpkg-install-ytPrh7/0-libocct-foundation-7.5_7.5.0+dfsg1-1_amd64.deb (--unpack):
   trying to overwrite '/usr/lib/x86_64-linux-gnu/libTKMath.so.7', which is also in package libocct-foundation-7.3:amd64 7.3.0+dfsg1-5
  Preparing to unpack .../1-libocct-modeling-data-7.5_7.5.0+dfsg1-1_amd64.deb ...
  Unpacking libocct-modeling-data-7.5:amd64 (7.5.0+dfsg1-1) ...
  dpkg: error processing archive /tmp/apt-dpkg-install-ytPrh7/1-libocct-modeling-data-7.5_7.5.0+dfsg1-1_amd64.deb (--unpack):
   trying to overwrite '/usr/lib/x86_64-linux-gnu/libTKBRep.so.7', which is also in package libocct-modeling-data-7.3:amd64 7.3.0+dfsg1-5
  Preparing to unpack .../2-libocct-modeling-algorithms-7.5_7.5.0+dfsg1-1_amd64.deb ...
  Unpacking libocct-modeling-algorithms-7.5:amd64 (7.5.0+dfsg1-1) ...
  dpkg: error processing archive /tmp/apt-dpkg-install-ytPrh7/2-libocct-modeling-algorithms-7.5_7.5.0+dfsg1-1_amd64.deb (--unpack):
   trying to overwrite '/usr/lib/x86_64-linux-gnu/libTKBO.so.7', which is also in package libocct-modeling-algorithms-7.3:amd64 7.3.0+dfsg1-5
  Preparing to unpack .../3-libocct-visualization-7.5_7.5.0+dfsg1-1_amd64.deb ...
  Unpacking libocct-visualization-7.5:amd64 (7.5.0+dfsg1-1) ...
  dpkg: error processing archive /tmp/apt-dpkg-install-ytPrh7/3-libocct-visualization-7.5_7.5.0+dfsg1-1_amd64.deb (--unpack):
   trying to overwrite '/usr/lib/x86_64-linux-gnu/libTKMeshVS.so.7', which is also in package libocct-visualization-7.3:amd64 7.3.0+dfsg1-5
  Preparing to unpack .../4-libocct-ocaf-7.5_7.5.0+dfsg1-1_amd64.deb ...
  Unpacking libocct-ocaf-7.5:amd64 (7.5.0+dfsg1-1) ...
  dpkg: error processing archive /tmp/apt-dpkg-install-ytPrh7/4-libocct-ocaf-7.5_7.5.0+dfsg1-1_amd64.deb (--unpack):
   trying to overwrite '/usr/lib/x86_64-linux-gnu/libTKBin.so.7', which is also in package libocct-ocaf-7.3:amd64 7.3.0+dfsg1-5
  Preparing to unpack .../5-libocct-data-exchange-7.5_7.5.0+dfsg1-1_amd64.deb ...
  Unpacking libocct-data-exchange-7.5:amd64 (7.5.0+dfsg1-1) ...
  dpkg: error processing archive /tmp/apt-dpkg-install-ytPrh7/5-libocct-data-exchange-7.5_7.5.0+dfsg1-1_amd64.deb (--unpack):
   trying to overwrite '/usr/lib/x86_64-linux-gnu/libTKBinXCAF.so.7', which is also in package libocct-data-exchange-7.3:amd64 7.3.0+dfsg1-5
  Errors were encountered while processing:
   /tmp/apt-dpkg-install-ytPrh7/0-libocct-foundation-7.5_7.5.0+dfsg1-1_amd64.deb
   /tmp/apt-dpkg-install-ytPrh7/1-libocct-modeling-data-7.5_7.5.0+dfsg1-1_amd64.deb
   /tmp/apt-dpkg-install-ytPrh7/2-libocct-modeling-algorithms-7.5_7.5.0+dfsg1-1_amd64.deb
   /tmp/apt-dpkg-install-ytPrh7/3-libocct-visualization-7.5_7.5.0+dfsg1-1_amd64.deb
   /tmp/apt-dpkg-install-ytPrh7/4-libocct-ocaf-7.5_7.5.0+dfsg1-1_amd64.deb
   /tmp/apt-dpkg-install-ytPrh7/5-libocct-data-exchange-7.5_7.5.0+dfsg1-1_amd64.deb

>From looking the the file list of libocct-data-exchange-7.5 I observed
that there are multiple shared libraries (and nothing else), but all have
the same SOVERSION (7). So why is the package naming following MAJOR.MINOR
instead of SOVERSION? The latter would ease maintenance by avoiding lots
of Breaks+Replaces in the future.
This is probably the same for all the packages shipping opencascade shared
libraries.

cheers,

Andreas

PS: If the libraries from 7.3 and 7.5 are not exchangeable (i.e. not API and ABI
compatible), they should not have the same SOVERSION.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libocct-data-exchange-7.3=7.3.0+dfsg1-5_libocct-data-exchange-7.5=7.5.0+dfsg1-1.log.gz
Type: application/gzip
Size: 14743 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20201222/fc1ef5dd/attachment-0001.gz>


More information about the debian-science-maintainers mailing list