On 26 July 2017 at 15:18, Julien Cristau wrote: | Control: reopen -1 | | On Wed, Jul 26, 2017 at 12:57:55 +0100, James Cowgill wrote: | | > Hi, | > | > On 26/07/17 12:32, Dirk Eddelbuettel wrote: | > > On 26 July 2017 at 13:14, Michal Politowski wrote: | > > | Package: libgsl2 | > > | Version: 2.4+dfsg-1 | > > | Severity: important | > > | | > > | libgsl2 2.3+dfsg-1 contains /usr/lib/i386-linux-gnu/libgsl.so.19 (on i386) | > > | libgsl2 2.4+dfsg-1 contains /usr/lib/i386-linux-gnu/libgsl.so.23 | > > | this breaks packages depending on libgsl2. | > > | | > > | If the soname changed, package name must change too. | > > | > > Right. I'll change the soname. | > | > From NEWS: | > > ** removed routines which were deprecated in v2.1: | > > gsl_bspline_deriv_alloc | > > gsl_bspline_deriv_free | > | > Isn't this an ABI break? If so, upstream changing the SONAME was correct | > and the package should be renamed (instead of reusing the old | > incompatible SONAME). | > | Yes. You need to either bump SONAME *and* change package name, or keep | the package name and SONAME but revert the ABI breakage. There's no | option where you get to break ABI but keep the SONAME and/or package | name.
Allow me to quote myself from a reply I just sent a minute ago: We have this discussion on every release. Look what is in (upstream's) configure.ac: dnl Library versioning (C:R:A == current:revision:age) dnl See the libtool manual for an explanation of the numbers dnl dnl gsl-1.0 libgsl 0:0:0 libgslcblas 0:0:0 dnl gsl-1.1 libgsl 1:0:1 libgslcblas 0:0:0 dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 dnl gsl-1.2 libgsl 3:0:3 libgslcblas 0:0:0 dnl gsl-1.3 libgsl 4:0:4 libgslcblas 0:0:0 dnl gsl-1.4 libgsl 5:0:5 libgslcblas 0:0:0 dnl gsl-1.5 libgsl 6:0:6 libgslcblas 0:0:0 dnl gsl-1.6 libgsl 7:0:7 libgslcblas 0:0:0 dnl gsl-1.7 libgsl 8:0:8 libgslcblas 0:0:0 dnl gsl-1.8 libgsl 9:0:9 libgslcblas 0:0:0 dnl gsl-1.9 libgsl 10:0:10 libgslcblas 0:0:0 dnl gsl-1.10 libgsl 10:0:10 (*) libgslcblas 0:0:0 dnl gsl-1.11 libgsl 12:0:12 libgslcblas 0:0:0 dnl gsl-1.12 libgsl 13:0:13 libgslcblas 0:0:0 dnl gsl-1.13 libgsl 14:0:14 libgslcblas 0:0:0 dnl gsl-1.14 libgsl 15:0:15 libgslcblas 0:0:0 dnl gsl-1.15 libgsl 16:0:16 libgslcblas 0:0:0 dnl gsl-1.16 libgsl 17:0:17 libgslcblas 0:0:0 dnl gsl-2.0 libgsl 18:0:18 (**) libgslcblas 0:0:0 dnl gsl-2.1 libgsl 19:0:0 libgslcblas 0:0:0 dnl gsl-2.2 libgsl 20:0:1 libgslcblas 0:0:0 dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 dnl gsl-2.3 libgsl 22:0:3 libgslcblas 0:0:0 dnl gsl-2.4 libgsl 23:0:0 libgslcblas 0:0:0 dnl dnl (*) There was an error on this release. Firstly, the versioning dnl numbers were not updated. Secondly, 2 functions were removed, but dnl the age not reset--this should have been 11:0:0. However these dnl functions were not documented and are regarded as internal, so we dnl will assume 11:0:11. dnl dnl (**) There was an error on this release. Age should have been dnl reset to 18:0:0 I maitained this for close to 20 years, and we done (IIRC) ONE soname change. I'd rather not get into the dance of forcing soname changes. I stand by this. Dirk | | Cheers, | Julien -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org