Bug#708584: versioning system/package name allows for binary incompatible libraries

Scott Howard showard at debian.org
Thu May 16 21:57:08 UTC 2013


Package: alglib
Version: 3.7.0-1~exp1
Severity: serious

the version of alglib is 3.7.0. Debian now is assigning a SONAME version of 3.
This is incorrect as it implies all 3.x.x libraries are binary compatible,
which they are not. Upstream changelog explicitly states that not binary 3.7.0
and 3.6.0 are not binary compatible, for example.

When assigning a SONAME version that differs from upstream, use the "debian"
word in the SONAME. For example, 3debian0 would be an appropriate SONAME, but
you would have to keep track of backwards incompatible changes to symbols and
bump the next version when it comes out (e.g. 3debian1). If you don't do this,
you risk making libraries that are incompatible with other distributions and
upstream. That's why the old build system used the "-release @VERSION@" flag
instead of "-version", so ensure that the soname remained blank. You can assign
a SONAME to the library, but please append "debianX" or keep the old system so
we can follow policy 8.2 "The run-time shared library must be placed in a
package whose name changes whenever the SONAME of the shared library changes."
I preferred the old system since I didn't like assigning a SONAME that upstream
was not using.

Other issues, not directly related to this bug, but somewhat at an RC level so
we can take care of it before it migrates to testing:
1) Why was alglib bumped at all? Does another package need it? Why was the new
version uploaded, breaking the only depending package in Debian without first
checking with that package?
2) Why did a team upload switch from autotools to cmake?
3) Why did 1 and 2 happen without consulting with the current uploaders of
alglib or the depending package?



-- System Information:
Debian Release: wheezy/sid
  APT prefers raring-updates
  APT policy: (500, 'raring-updates'), (500, 'raring-security'), (500, 'raring-proposed'), (500, 'raring'), (100, 'raring-backports')
Architecture: i386 (i686)

Kernel: Linux 3.8.0-20-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash



More information about the debian-science-maintainers mailing list