On 14 October 2021 at 23:20, Sebastian Ramacher wrote:
| 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.

Yes, possibly. I also grep'ed after sending the email.

We did have such an attempt at a 'managed' transition before, and it didn't
work so well.
 
| > 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.

Yes. And I follow upstream. They didn't change :-/

Dirk
 
| 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
| [DELETED ATTACHMENT signature.asc, application/pgp-signature]

-- 
https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

Reply via email to