Hi Dirk,
2016-12-19 23:58 GMT+01:00 Dirk Eddelbuettel <[email protected]>:
>
> 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 <[email protected]>:
> | >
> | > 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 <[email protected]>
> wrote:
> | > | > Source: ruby-gsl
> | > | > Version: 1.16.0.6+dfsg1-2
> | > | > Severity: serious
> | > | > Tags: stretch sid
> | > | > User: [email protected]
> | > | > 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 | [email protected]
>
> --
> http://dirk.eddelbuettel.com | @eddelbuettel | [email protected]
From ac2dacf69b8dd571dfb96b8b9fa551ff9daf0e5f Mon Sep 17 00:00:00 2001
From: Balint Reczey <[email protected]>
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