Hi Dirk,

2016-12-19 23:58 GMT+01:00 Dirk Eddelbuettel <e...@debian.org>:
>
> Hi Balint,
>
> On 19 December 2016 at 13:57, Bálint Réczey wrote:
> | Hi Dirk,
> |
> | 2016-12-19 0:30 GMT+01:00 Dirk Eddelbuettel <e...@debian.org>:
> | >
> | > On 10 November 2016 at 13:22, Balint Reczey wrote:
> | > | Control: reassign -1 gsl 2.2.1+dfsg-1
> | > | Control: affects -1 ruby-gsl
> | > |
> | > |
> | > | Hi Dirk,
> | > |
> | > | It seems ruby-gsl is missing some deprecated functions.
> | > | Please re-enable debian/patches/dont-disable-deprecated to let ruby-gsl
> | > | build again.
> | >
> | > Well I could -- but according to https://github.com/SciRuby/rb-gsl a 
> current
> | > ruby-gsl exists.
> | >
> | > Why are we stuck with the 1.* series? Should we not port forward?
> |
> | I tried updating to 2.1.0 but it still uses deprecated functions,
> | hence the reassignment.
>
> Well I'd rather not. I think upstream would rather see a plainer versions.
>
> Can you detail what is missing?
>
> Also see https://github.com/SciRuby/rb-gsl/blob/master/ChangeLog#L3-L7 which 
> says
>
> == Fri March 4 2016
> * Added compatibility for NMatrix interconversion with GSL::Vector and 
> GSL::Matrix
> * Added NMatrix compatibility to various to make them compatible with NMatrix 
> data types.
> * Gem is now compatible with GSL 2.1.
> * Version bump to 2.1.0
>
> Sounds to me it should work with our version.

Ruby-gsl is compatible with GSL 2.1 when deprecated symbols are not
disabled in GSL.

I have started removing references to them with
gsl_sf_legendre_array_size(), but
then the next one build is failing with is gsl_sf_legendre_sphPlm_array() :

...
*** running test/gsl_test.rb ***
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in
`require': 
/<<BUILDDIR>>/ruby-gsl-2.1.0+dfsg1/debian/ruby-gsl/usr/lib/i386-linux-gnu/ruby/vendor_ruby/2.3.0/gsl_native.so:
undefined symbol: gsl_sf_legendre_sphPlm_array -
/<<BUILDDIR>>/ruby-gsl-2.1.0+dfsg1/debian/ruby-gsl/usr/lib/i386-linux-gnu/ruby/vendor_ruby/2.3.0/gsl_native.so
(LoadError)
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from 
/<<BUILDDIR>>/ruby-gsl-2.1.0+dfsg1/debian/ruby-gsl/usr/lib/ruby/vendor_ruby/gsl.rb:11:in
...

I used the attached patch on top of
https://anonscm.debian.org/cgit/pkg-ruby-extras/ruby-gsl.git master .

IMO since ruby-gsl 2.1 provides the symbols which are deprecated in
GSL unconditionally I can't remove them
from ruby-gsl's API thus ruby-gsl needs deprecated GSL functions to be
provided by GSL.

I understand that upstreams would like to see code migrating from the
deprecated functionality fast, but immediate removal is not the best
for users IMO.

Cheers,
Balint

>
> Dirk
>
> |
> | Cheers,
> | Balint
> |
> | >
> | > Dirk
> | >
> | > | Cheers,
> | > | Balint
> | > |
> | > | On Fri, 21 Oct 2016 15:37:05 +0200 Lucas Nussbaum <lu...@debian.org> 
> wrote:
> | > | > Source: ruby-gsl
> | > | > Version: 1.16.0.6+dfsg1-2
> | > | > Severity: serious
> | > | > Tags: stretch sid
> | > | > User: debian...@lists.debian.org
> | > | > Usertags: qa-ftbfs-20161021 qa-ftbfs
> | > | > Justification: FTBFS on amd64
> | > | >
> | > | > Hi,
> | > | >
> | > | > During a rebuild of all packages in sid, your package failed to build 
> on
> | > | > amd64.
> | > | >
> | > | > Relevant part (hopefully):
> | > | > > /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in 
> `require': 
> /<<BUILDDIR>>/ruby-gsl-1.16.0.6+dfsg1/debian/ruby-gsl/usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.3.0/gsl_native.so:
>  undefined symbol: gsl_sf_legendre_array_size - 
> /<<BUILDDIR>>/ruby-gsl-1.16.0.6+dfsg1/debian/ruby-gsl/usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.3.0/gsl_native.so
>  (LoadError)
> | > | > >   from 
> /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
> | > | > >   from 
> /<<BUILDDIR>>/ruby-gsl-1.16.0.6+dfsg1/debian/ruby-gsl/usr/lib/ruby/vendor_ruby/gsl.rb:6:in
>  `<top (required)>'
> | > | > >   from 
> /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
> | > | > >   from 
> /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
> | > | > >   from test_helper.rb:2:in `<main>'
> | > | > > ERROR: Test "ruby2.3" failed:
> | > | >
> | >
> | > --
> | > http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org
>
> --
> http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org
From ac2dacf69b8dd571dfb96b8b9fa551ff9daf0e5f Mon Sep 17 00:00:00 2001
From: Balint Reczey <bal...@balintreczey.hu>
Date: Thu, 10 Nov 2016 13:05:13 +0100
Subject: [PATCH] WIP: Fix FTBFS due to missing gsl_sf_legendre_array_size

The function is deprecated in GSL.

Closes: #841611
---
 .../patches/gsl_sf_legendre_array_size_impl.patch  | 31 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 2 files changed, 32 insertions(+)
 create mode 100644 debian/patches/gsl_sf_legendre_array_size_impl.patch

diff --git a/debian/patches/gsl_sf_legendre_array_size_impl.patch b/debian/patches/gsl_sf_legendre_array_size_impl.patch
new file mode 100644
index 0000000..70241d0
--- /dev/null
+++ b/debian/patches/gsl_sf_legendre_array_size_impl.patch
@@ -0,0 +1,31 @@
+diff --git a/ext/gsl_native/sf_legendre.c b/ext/gsl_native/sf_legendre.c
+index 5a9470e..233cb6d 100644
+--- a/ext/gsl_native/sf_legendre.c
++++ b/ext/gsl_native/sf_legendre.c
+@@ -119,7 +119,7 @@ static VALUE rb_gsl_sf_legendre_Plm_array(VALUE obj, VALUE lmax, VALUE m, VALUE
+   Need_Float(x);
+   ll = FIX2INT(lmax);
+   mm = FIX2INT(m);
+-  size = gsl_sf_legendre_array_size(ll, mm);
++  size = ll - mm + 1;
+   v = gsl_vector_alloc(size);
+   gsl_sf_legendre_Plm_array(ll, mm, NUM2DBL(x), v->data);
+   return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
+@@ -151,7 +151,7 @@ static VALUE rb_gsl_sf_legendre_sphPlm_array(VALUE obj, VALUE lmax, VALUE m, VAL
+   Need_Float(x);
+   ll = FIX2INT(lmax);
+   mm = FIX2INT(m);
+-  size = gsl_sf_legendre_array_size(ll, mm);
++  size = ll - mm + 1;
+   v = gsl_vector_alloc(size);
+   gsl_sf_legendre_sphPlm_array(ll, mm, NUM2DBL(x), v->data);
+   return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
+@@ -160,7 +160,7 @@ static VALUE rb_gsl_sf_legendre_sphPlm_array(VALUE obj, VALUE lmax, VALUE m, VAL
+ static VALUE rb_gsl_sf_legendre_array_size(VALUE obj, VALUE lmax, VALUE m)
+ {
+   CHECK_FIXNUM(lmax);   CHECK_FIXNUM(m);
+-  return INT2FIX(gsl_sf_legendre_array_size(FIX2INT(lmax), FIX2INT(m)));
++  return INT2FIX(FIX2INT(lmax) -  FIX2INT(m) + 1);
+ }
+ 
+ static VALUE rb_gsl_sf_conicalP_half(VALUE obj, VALUE lambda, VALUE x)
diff --git a/debian/patches/series b/debian/patches/series
index 01444c8..e758426 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@
 #gsl2_special_functions.patch
 #gsl2_tamu_anova.patch
 #skip_failing_tests_precision.patch
+gsl_sf_legendre_array_size_impl.patch
-- 
2.1.4

Reply via email to