On 2021-10-14 15:52:03 -0500, Dirk Eddelbuettel wrote:
> 
> Hi Sebastian,
> 
> On 14 October 2021 at 22:46, Sebastian Ramacher wrote:
> | Hi Dirk
> | 
> | On 2021-08-30 16:27:49 -0500, Dirk Eddelbuettel wrote:
> | > 
> | > On 30 August 2021 at 23:42, Niko Tyni wrote:
> | > | Package: libgsl25
> | > | Version: 2.7+dfsg-2
> | > | Control: affects -1 libmath-gsl-perl
> | > | Severity: serious
> | > | 
> | > | gsl 2.7 broke libmath-gsl-perl on runtime, as seen in the autopkgtest 
> regressions:
> | > | 
> | > |    not ok 7 - use Math::GSL::Matrix;
> | > |    
> | > |    #   Failed test 'use Math::GSL::Matrix;'
> | > |    #   at t/00-load.t line 14.
> | > |    #     Tried to use 'Math::GSL::Matrix'.
> | > |    #     Error:  Can't load 
> '/usr/lib/x86_64-linux-gnu/perl5/5.32/auto/Math/GSL/Linalg/Linalg.so' for 
> module Math::GSL::Linalg: 
> /usr/lib/x86_64-linux-gnu/perl5/5.32/auto/Math/GSL/Linalg/Linalg.so: 
> undefined symbol: gsl_linalg_QR_TR_decomp at 
> /usr/lib/x86_64-linux-gnu/perl-base/DynaLoader.pm line 187.
> | > |    # � at /usr/lib/x86_64-linux-gnu/perl5/5.32/Math/GSL/Linalg.pm line 
> 11.
> | > |    # Compilation failed in require at 
> /usr/lib/x86_64-linux-gnu/perl5/5.32/Math/GSL/Matrix.pm line 1210.
> | > |    # BEGIN failed--compilation aborted at 
> /usr/lib/x86_64-linux-gnu/perl5/5.32/Math/GSL/Matrix.pm line 1210.
> | > |    # Compilation failed in require at t/00-load.t line 14.
> | > |    # BEGIN failed--compilation aborted at t/00-load.t line 14.
> | > |    ok 8 - use Math::GSL::Poly;
> | > |    not ok 9 - use Math::GSL::MatrixComplex;
> | > | 
> | > | It seems that the 2.7 upload broke the ABI of libgsl25 by removing
> | > | the gsl_linalg_QR_TR_decomp symbol. src:gsl is currently blocked from
> | > | entering testing because of this regression in libmath-gsl-perl_0.42-1.
> | > | 
> | > | Looks like upstream Math-GSL-0.43 probably no longer references this
> | > | symbol, but it's not in Debian yet and I haven't built and verified 
> that.
> | > | 
> | > | Clearly at least something must be done on the libgsl side. Not sure if
> | > | it needs to restore the symbol or bump its SONAME, or if just a Breaks
> | > | on older libmath-gsl-perl versions is enough. (See policy 8.6.2)
> | > 
> | > I am not fully sure what they are doing.  They do increment values 
> sometimes,
> | > sometimes they keep them. I mostly just followed along.
> | > 
> | > We also for a time tried to accomodate lagging Debian packages. I do not
> | > think that that winnable strategy long term.
> | > 
> | > I could add a versioned breaks for libmath-gsl-perl.  Can you send me a
> | > preferred expression?
> | 
> | No, that would just paper over the problem and wouldn't be a proper fix.
> | 
> | There are two options to fix this issue:
> | 
> | * Unbreak the ABI by reintroducing the removed symbols.
> 
> I think we tried that a few gsl release ago and I don't think it was a 
> success.
> 
> | * Bump the SONAME and change the package name. This will trigger a
> |   transition and the reverse dependencies will be rebuilt.
> | 
> | In any case, the best idea is to talk to upstream. If removal of the
> | symbols was intentional, please ask them to bump the SONAME.
> 
> It is AFAICR the opposite: upstream *did* the change years ago, we decided to
> paper over but at some point that becomes too much.  Upstream is, in my book,
> the best judge of their code, and if they deprecated / changed something
> years ago then client packages need to (eventually) adapt.

gsl 2.7 was released in June 2021. So the removal of this symbol is
recent. I see no patches that would have kept that symbol around for
longer than it was needed. In fact, diffing 2.6 and 2.7 suggests that
gsl_linalg_QR_TR_decomp was simply renamed to gsl_linalg_QR_UR_decmp.

So I'm afraid I am unable to follow your reasoning. This is pretty clear
case of upstream forgetting to bump the SONAME.

> If the Perl package needs a (deprecated in the library) function and cannot
> change its code, maybe it can stub it locally?

libmath-gsl-perl will eventually need to be fixed. Still, if gsl removes
a symbol from its public ABI, it needs to bump its SONAME. That's why we
have them and even encode it in package names.

Cheers

> 
> Dirk
> 
> 
> | Cheers
> | 
> | > 
> | > | I've also filed the separate bug #993323 about libmath-gsl-perl failing 
> to
> | > | build with GSL 2.7. That should be fixed just by upgrading it to 0.43.
> | > 
> | > Right.
> | > 
> | > Dirk
> | > 
> | > | -- 
> | > | Niko Tyni nt...@debian.org
> | > 
> | > -- 
> | > https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org
> | 
> | -- 
> | Sebastian Ramacher
> | [DELETED ATTACHMENT signature.asc, application/pgp-signature]
> 
> -- 
> https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

-- 
Sebastian Ramacher

Attachment: signature.asc
Description: PGP signature

Reply via email to