Bug#869778: Re: Bug#869778: libgsl2: soname change breaks dependencies

2017-07-26 Thread James Cowgill
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

2017-07-26 Thread Dirk Eddelbuettel

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

2017-07-26 Thread James Cowgill
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

2017-07-26 Thread Dirk Eddelbuettel

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

2017-07-26 Thread James Cowgill
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

2017-07-26 Thread Julien Cristau
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

2017-07-26 Thread Dirk Eddelbuettel

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

2017-07-26 Thread Dirk Eddelbuettel

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

2017-07-26 Thread Julien Cristau
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

2017-07-26 Thread James Cowgill
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