Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
Hi, On 26/07/17 16:18, Dirk Eddelbuettel wrote: > On 26 July 2017 at 15:36, James Cowgill wrote: > | On 26/07/17 15:10, Dirk Eddelbuettel wrote: > | > On 26 July 2017 at 14:48, James Cowgill wrote: > | > | On 26/07/17 14:39, Dirk Eddelbuettel wrote: > | > | > 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.0libgsl 0:0:0 libgslcblas 0:0:0 > | > | >dnl gsl-1.1libgsl 1:0:1 libgslcblas 0:0:0 > | > | >dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 > | > | >dnl gsl-1.2libgsl 3:0:3 libgslcblas 0:0:0 > | > | >dnl gsl-1.3libgsl 4:0:4 libgslcblas 0:0:0 > | > | >dnl gsl-1.4libgsl 5:0:5 libgslcblas 0:0:0 > | > | >dnl gsl-1.5libgsl 6:0:6 libgslcblas 0:0:0 > | > | >dnl gsl-1.6libgsl 7:0:7 libgslcblas 0:0:0 > | > | >dnl gsl-1.7libgsl 8:0:8 libgslcblas 0:0:0 > | > | >dnl gsl-1.8libgsl 9:0:9 libgslcblas 0:0:0 > | > | >dnl gsl-1.9libgsl 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.0libgsl 18:0:18 (**) libgslcblas 0:0:0 > | > | >dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 > | > | >dnl gsl-2.2libgsl 20:0:1 libgslcblas 0:0:0 > | > | >dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 > | > | >dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 > | > | >dnl gsl-2.4libgsl 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. > | > | > | > | The list above only contains 3 ABI changes, of which one was "ignored" > | > | by upstream. > | > | > | > | The first one (ignored as detailed above): > | > | > dnl gsl-1.9libgsl 10:0:10 libgslcblas 0:0:0 > | > | > dnl gsl-1.10 libgsl 10:0:10 (*) libgslcblas 0:0:0 > | > | > | > | One here: > | > | > dnl gsl-1.16 libgsl 17:0:17 libgslcblas 0:0:0 > | > | > dnl gsl-2.0libgsl 18:0:18 (**) libgslcblas 0:0:0 > | > | > dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 > | > | > | > | And the current one we're talking about here: > | > | > dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 > | > | > dnl gsl-2.4libgsl 23:0:0 libgslcblas 0
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
On 26 July 2017 at 15:36, James Cowgill wrote: | Hi, | | On 26/07/17 15:10, Dirk Eddelbuettel wrote: | > On 26 July 2017 at 14:48, James Cowgill wrote: | > | On 26/07/17 14:39, Dirk Eddelbuettel wrote: | > | > 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.0libgsl 0:0:0 libgslcblas 0:0:0 | > | >dnl gsl-1.1libgsl 1:0:1 libgslcblas 0:0:0 | > | >dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 | > | >dnl gsl-1.2libgsl 3:0:3 libgslcblas 0:0:0 | > | >dnl gsl-1.3libgsl 4:0:4 libgslcblas 0:0:0 | > | >dnl gsl-1.4libgsl 5:0:5 libgslcblas 0:0:0 | > | >dnl gsl-1.5libgsl 6:0:6 libgslcblas 0:0:0 | > | >dnl gsl-1.6libgsl 7:0:7 libgslcblas 0:0:0 | > | >dnl gsl-1.7libgsl 8:0:8 libgslcblas 0:0:0 | > | >dnl gsl-1.8libgsl 9:0:9 libgslcblas 0:0:0 | > | >dnl gsl-1.9libgsl 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.0libgsl 18:0:18 (**) libgslcblas 0:0:0 | > | >dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 | > | >dnl gsl-2.2libgsl 20:0:1 libgslcblas 0:0:0 | > | >dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 | > | >dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 | > | >dnl gsl-2.4libgsl 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. | > | | > | The list above only contains 3 ABI changes, of which one was "ignored" | > | by upstream. | > | | > | The first one (ignored as detailed above): | > | > dnl gsl-1.9libgsl 10:0:10 libgslcblas 0:0:0 | > | > dnl gsl-1.10 libgsl 10:0:10 (*) libgslcblas 0:0:0 | > | | > | One here: | > | > dnl gsl-1.16 libgsl 17:0:17 libgslcblas 0:0:0 | > | > dnl gsl-2.0libgsl 18:0:18 (**) libgslcblas 0:0:0 | > | > dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 | > | | > | And the current one we're talking about here: | > | > dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 | > | > dnl gsl-2.4libgsl 23:0:0 libgslcblas 0:0:0 | > | > Hm. Colour me confused. | > | > Have I been reading this wrong all this time by reading _from left to right_ | > and refusing to force a new soname (and package name) on every release? | > | > If the 'age reset to 0' is the actionable item,
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
Hi, On 26/07/17 15:10, Dirk Eddelbuettel wrote: > On 26 July 2017 at 14:48, James Cowgill wrote: > | On 26/07/17 14:39, Dirk Eddelbuettel wrote: > | > 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.0libgsl 0:0:0 libgslcblas 0:0:0 > | >dnl gsl-1.1libgsl 1:0:1 libgslcblas 0:0:0 > | >dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 > | >dnl gsl-1.2libgsl 3:0:3 libgslcblas 0:0:0 > | >dnl gsl-1.3libgsl 4:0:4 libgslcblas 0:0:0 > | >dnl gsl-1.4libgsl 5:0:5 libgslcblas 0:0:0 > | >dnl gsl-1.5libgsl 6:0:6 libgslcblas 0:0:0 > | >dnl gsl-1.6libgsl 7:0:7 libgslcblas 0:0:0 > | >dnl gsl-1.7libgsl 8:0:8 libgslcblas 0:0:0 > | >dnl gsl-1.8libgsl 9:0:9 libgslcblas 0:0:0 > | >dnl gsl-1.9libgsl 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.0libgsl 18:0:18 (**) libgslcblas 0:0:0 > | >dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 > | >dnl gsl-2.2libgsl 20:0:1 libgslcblas 0:0:0 > | >dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 > | >dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 > | >dnl gsl-2.4libgsl 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. > | > | The list above only contains 3 ABI changes, of which one was "ignored" > | by upstream. > | > | The first one (ignored as detailed above): > | > dnl gsl-1.9libgsl 10:0:10 libgslcblas 0:0:0 > | > dnl gsl-1.10 libgsl 10:0:10 (*) libgslcblas 0:0:0 > | > | One here: > | > dnl gsl-1.16 libgsl 17:0:17 libgslcblas 0:0:0 > | > dnl gsl-2.0libgsl 18:0:18 (**) libgslcblas 0:0:0 > | > dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 > | > | And the current one we're talking about here: > | > dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 > | > dnl gsl-2.4libgsl 23:0:0 libgslcblas 0:0:0 > > Hm. Colour me confused. > > Have I been reading this wrong all this time by reading _from left to right_ > and refusing to force a new soname (and package name) on every release? > > If the 'age reset to 0' is the actionable item, then I'd be up for it. I > could make a -3 release with a libgsl23 package keeping it at libgsl-dev. > > I guess that's better than forcing a non-change. Yes the "age reset to 0" is what causes ABI breakage and will cause an SONAME change on Linux - you
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
On 26 July 2017 at 14:48, James Cowgill wrote: | Hi, | | On 26/07/17 14:39, Dirk Eddelbuettel wrote: | > 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.0libgsl 0:0:0 libgslcblas 0:0:0 | >dnl gsl-1.1libgsl 1:0:1 libgslcblas 0:0:0 | >dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 | >dnl gsl-1.2libgsl 3:0:3 libgslcblas 0:0:0 | >dnl gsl-1.3libgsl 4:0:4 libgslcblas 0:0:0 | >dnl gsl-1.4libgsl 5:0:5 libgslcblas 0:0:0 | >dnl gsl-1.5libgsl 6:0:6 libgslcblas 0:0:0 | >dnl gsl-1.6libgsl 7:0:7 libgslcblas 0:0:0 | >dnl gsl-1.7libgsl 8:0:8 libgslcblas 0:0:0 | >dnl gsl-1.8libgsl 9:0:9 libgslcblas 0:0:0 | >dnl gsl-1.9libgsl 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.0libgsl 18:0:18 (**) libgslcblas 0:0:0 | >dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 | >dnl gsl-2.2libgsl 20:0:1 libgslcblas 0:0:0 | >dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 | >dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 | >dnl gsl-2.4libgsl 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. | | The list above only contains 3 ABI changes, of which one was "ignored" | by upstream. | | The first one (ignored as detailed above): | > dnl gsl-1.9libgsl 10:0:10 libgslcblas 0:0:0 | > dnl gsl-1.10 libgsl 10:0:10 (*) libgslcblas 0:0:0 | | One here: | > dnl gsl-1.16 libgsl 17:0:17 libgslcblas 0:0:0 | > dnl gsl-2.0libgsl 18:0:18 (**) libgslcblas 0:0:0 | > dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 | | And the current one we're talking about here: | > dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 | > dnl gsl-2.4libgsl 23:0:0 libgslcblas 0:0:0 Hm. Colour me confused. Have I been reading this wrong all this time by reading _from left to right_ and refusing to force a new soname (and package name) on every release? If the 'age reset to 0' is the actionable item, then I'd be up for it. I could make a -3 release with a libgsl23 package keeping it at libgsl-dev. I guess that's better than forcing a non-change. Dirk | James | | [DELETED ATTACHMENT signature.asc, application/pgp-signature] -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
Hi, On 26/07/17 14:39, Dirk Eddelbuettel wrote: > 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.0libgsl 0:0:0 libgslcblas 0:0:0 >dnl gsl-1.1libgsl 1:0:1 libgslcblas 0:0:0 >dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 >dnl gsl-1.2libgsl 3:0:3 libgslcblas 0:0:0 >dnl gsl-1.3libgsl 4:0:4 libgslcblas 0:0:0 >dnl gsl-1.4libgsl 5:0:5 libgslcblas 0:0:0 >dnl gsl-1.5libgsl 6:0:6 libgslcblas 0:0:0 >dnl gsl-1.6libgsl 7:0:7 libgslcblas 0:0:0 >dnl gsl-1.7libgsl 8:0:8 libgslcblas 0:0:0 >dnl gsl-1.8libgsl 9:0:9 libgslcblas 0:0:0 >dnl gsl-1.9libgsl 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.0libgsl 18:0:18 (**) libgslcblas 0:0:0 >dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 >dnl gsl-2.2libgsl 20:0:1 libgslcblas 0:0:0 >dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 >dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 >dnl gsl-2.4libgsl 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. The list above only contains 3 ABI changes, of which one was "ignored" by upstream. The first one (ignored as detailed above): > dnl gsl-1.9libgsl 10:0:10 libgslcblas 0:0:0 > dnl gsl-1.10 libgsl 10:0:10 (*) libgslcblas 0:0:0 One here: > dnl gsl-1.16 libgsl 17:0:17 libgslcblas 0:0:0 > dnl gsl-2.0libgsl 18:0:18 (**) libgslcblas 0:0:0 > dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 And the current one we're talking about here: > dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 > dnl gsl-2.4libgsl 23:0:0 libgslcblas 0:0:0 James signature.asc Description: OpenPGP digital signature
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
On 07/26/2017 03:39 PM, Dirk Eddelbuettel wrote: > > 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.0libgsl 0:0:0 libgslcblas 0:0:0 >dnl gsl-1.1libgsl 1:0:1 libgslcblas 0:0:0 >dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 >dnl gsl-1.2libgsl 3:0:3 libgslcblas 0:0:0 >dnl gsl-1.3libgsl 4:0:4 libgslcblas 0:0:0 >dnl gsl-1.4libgsl 5:0:5 libgslcblas 0:0:0 >dnl gsl-1.5libgsl 6:0:6 libgslcblas 0:0:0 >dnl gsl-1.6libgsl 7:0:7 libgslcblas 0:0:0 >dnl gsl-1.7libgsl 8:0:8 libgslcblas 0:0:0 >dnl gsl-1.8libgsl 9:0:9 libgslcblas 0:0:0 >dnl gsl-1.9libgsl 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.0libgsl 18:0:18 (**) libgslcblas 0:0:0 >dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 >dnl gsl-2.2libgsl 20:0:1 libgslcblas 0:0:0 >dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 >dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 >dnl gsl-2.4libgsl 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. > That's fine, you don't have to change the SONAME, so long as you revert the ABI breakage. Cheers, Julien
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
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.0libgsl 0:0:0 libgslcblas 0:0:0 dnl gsl-1.1libgsl 1:0:1 libgslcblas 0:0:0 dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 dnl gsl-1.2libgsl 3:0:3 libgslcblas 0:0:0 dnl gsl-1.3libgsl 4:0:4 libgslcblas 0:0:0 dnl gsl-1.4libgsl 5:0:5 libgslcblas 0:0:0 dnl gsl-1.5libgsl 6:0:6 libgslcblas 0:0:0 dnl gsl-1.6libgsl 7:0:7 libgslcblas 0:0:0 dnl gsl-1.7libgsl 8:0:8 libgslcblas 0:0:0 dnl gsl-1.8libgsl 9:0:9 libgslcblas 0:0:0 dnl gsl-1.9libgsl 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.0libgsl 18:0:18 (**) libgslcblas 0:0:0 dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 dnl gsl-2.2libgsl 20:0:1 libgslcblas 0:0:0 dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 dnl gsl-2.4libgsl 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
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
On 26 July 2017 at 12:57, 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). 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.0libgsl 0:0:0 libgslcblas 0:0:0 dnl gsl-1.1libgsl 1:0:1 libgslcblas 0:0:0 dnl gsl-1.1.1 libgsl 2:0:2 libgslcblas 0:0:0 dnl gsl-1.2libgsl 3:0:3 libgslcblas 0:0:0 dnl gsl-1.3libgsl 4:0:4 libgslcblas 0:0:0 dnl gsl-1.4libgsl 5:0:5 libgslcblas 0:0:0 dnl gsl-1.5libgsl 6:0:6 libgslcblas 0:0:0 dnl gsl-1.6libgsl 7:0:7 libgslcblas 0:0:0 dnl gsl-1.7libgsl 8:0:8 libgslcblas 0:0:0 dnl gsl-1.8libgsl 9:0:9 libgslcblas 0:0:0 dnl gsl-1.9libgsl 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.0libgsl 18:0:18 (**) libgslcblas 0:0:0 dnl gsl-2.1libgsl 19:0:0 libgslcblas 0:0:0 dnl gsl-2.2libgsl 20:0:1 libgslcblas 0:0:0 dnl gsl-2.2.1 libgsl 21:0:2 libgslcblas 0:0:0 dnl gsl-2.3libgsl 22:0:3 libgslcblas 0:0:0 dnl gsl-2.4libgsl 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. Thanks, Dirk | | Thanks, | James | | [DELETED ATTACHMENT signature.asc, application/pgp-signature] -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
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. Cheers, Julien
Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies
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). Thanks, James signature.asc Description: OpenPGP digital signature