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.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.
| 
| 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.9    libgsl 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.0    libgsl 18:0:18  (**) libgslcblas 0:0:0
| > dnl gsl-2.1    libgsl 19:0:0   libgslcblas 0:0:0
| 
| And the current one we're talking about here:
| > dnl gsl-2.3    libgsl 22:0:3   libgslcblas 0:0:0
| > dnl gsl-2.4    libgsl 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

Reply via email to