summaryrefslogtreecommitdiff
path: root/math/ruby-gsl
diff options
context:
space:
mode:
authortaca <taca@pkgsrc.org>2014-03-26 13:25:26 +0000
committertaca <taca@pkgsrc.org>2014-03-26 13:25:26 +0000
commitaa4a1f27433541b3422fde8f39e4515c1efd6f89 (patch)
treeade57682ee8f16cf5a50c7caaf918c7830c1283f /math/ruby-gsl
parentcfa19d459a167f18a272b045449f41cf6eabee30 (diff)
downloadpkgsrc-aa4a1f27433541b3422fde8f39e4515c1efd6f89.tar.gz
Fix build problem with ruby21.
Diffstat (limited to 'math/ruby-gsl')
-rw-r--r--math/ruby-gsl/PLIST3
-rw-r--r--math/ruby-gsl/distinfo8
-rw-r--r--math/ruby-gsl/patches/patch-ext_linalg.c89
-rw-r--r--math/ruby-gsl/patches/patch-ext_linalg__complex.c32
-rw-r--r--math/ruby-gsl/patches/patch-ext_ool.c18
-rw-r--r--math/ruby-gsl/patches/patch-ext_vector__complex.c29
-rw-r--r--math/ruby-gsl/patches/patch-ext_vector__source.c49
-rw-r--r--math/ruby-gsl/patches/patch-include_rb__gsl__common.h18
8 files changed, 244 insertions, 2 deletions
diff --git a/math/ruby-gsl/PLIST b/math/ruby-gsl/PLIST
index a67c094d4f4..c355ad5bccc 100644
--- a/math/ruby-gsl/PLIST
+++ b/math/ruby-gsl/PLIST
@@ -1,5 +1,6 @@
-@comment $NetBSD: PLIST,v 1.5 2013/03/11 12:28:46 taca Exp $
+@comment $NetBSD: PLIST,v 1.6 2014/03/26 13:25:26 taca Exp $
${GEM_HOME}/cache/${GEM_NAME}.gem
+${GEM_EXTSDIR}/rb_gsl.${RUBY_DLEXT}
${GEM_LIBDIR}/AUTHORS
${GEM_LIBDIR}/COPYING
${GEM_LIBDIR}/ChangeLog
diff --git a/math/ruby-gsl/distinfo b/math/ruby-gsl/distinfo
index b3d125c745a..cf2b26de4b6 100644
--- a/math/ruby-gsl/distinfo
+++ b/math/ruby-gsl/distinfo
@@ -1,7 +1,13 @@
-$NetBSD: distinfo,v 1.7 2013/08/04 16:42:11 taca Exp $
+$NetBSD: distinfo,v 1.8 2014/03/26 13:25:26 taca Exp $
SHA1 (gsl-1.15.3.gem) = c3e3d8d47d4e456bcc40be9f43f7da2667622ed5
RMD160 (gsl-1.15.3.gem) = 73d5d601c4ace8c5a0cabd4bab6045191d1a4077
Size (gsl-1.15.3.gem) = 620032 bytes
SHA1 (patch-ext_fft.c) = cee5d2d4a9caac1125720ed257c73074d9151be6
+SHA1 (patch-ext_linalg.c) = 57f703d217c1eda3be5e958757a89b9af9804fbb
+SHA1 (patch-ext_linalg__complex.c) = e375a361cf51afb3674288cebe911b58b9d43b6e
+SHA1 (patch-ext_ool.c) = 0b4857278e2496c8f6938d355dd6d9acd24362b6
+SHA1 (patch-ext_vector__complex.c) = 9d9d3140ffb48095d79eccc96a667f216030de20
+SHA1 (patch-ext_vector__source.c) = 3db7be2d542348d407e4f821026cffcd439b0177
SHA1 (patch-ext_wavelet.c) = f152a903a76a84c1ff86c6917d4c68ce50c4f81e
+SHA1 (patch-include_rb__gsl__common.h) = 27b22b77056aead09da74cf284983afd64f89be7
diff --git a/math/ruby-gsl/patches/patch-ext_linalg.c b/math/ruby-gsl/patches/patch-ext_linalg.c
new file mode 100644
index 00000000000..4d57aaf7079
--- /dev/null
+++ b/math/ruby-gsl/patches/patch-ext_linalg.c
@@ -0,0 +1,89 @@
+$NetBSD: patch-ext_linalg.c,v 1.1 2014/03/26 13:25:26 taca Exp $
+
+Fix for Ruby 2.1.
+
+--- ext/linalg.c.orig 2014-03-25 15:47:30.000000000 +0000
++++ ext/linalg.c
+@@ -71,7 +71,11 @@ static VALUE rb_gsl_linalg_LU_decomposit
+ Data_Get_Struct(omatrix, gsl_matrix, mtmp);
+ if (flag == LINALG_DECOMP_BANG) {
+ m = mtmp;
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(omatrix, cgsl_matrix_LU);
++#else
+ RBASIC(omatrix)->klass = cgsl_matrix_LU;
++#endif
+ objm = omatrix;
+ } else {
+ m = make_matrix_clone(mtmp);
+@@ -692,7 +696,11 @@ static VALUE rb_gsl_linalg_QR_LQ_decompo
+ fdecomp = &gsl_linalg_QR_decomp;
+ m = mtmp;
+ mdecomp = omatrix;
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(mdecomp, cgsl_matrix_QR);
++#else
+ RBASIC(mdecomp)->klass = cgsl_matrix_QR;
++#endif
+ break;
+ #ifdef GSL_1_6_LATER
+ case LINALG_LQ_DECOMP:
+@@ -704,7 +712,11 @@ static VALUE rb_gsl_linalg_QR_LQ_decompo
+ fdecomp = &gsl_linalg_LQ_decomp;
+ m = mtmp;
+ mdecomp = omatrix;
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(mdecomp, cgsl_matrix_LQ);
++#else
+ RBASIC(mdecomp)->klass = cgsl_matrix_LQ;
++#endif
+ break;
+ #endif
+ default:
+@@ -731,7 +743,11 @@ static VALUE rb_gsl_linalg_QR_LQ_decompo
+ vtau = Data_Wrap_Struct(cgsl_vector_tau, 0, gsl_vector_free, tau);
+ return rb_ary_new3(2, mdecomp, vtau);
+ } else {
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(argv[itmp], cgsl_vector_tau);
++#else
+ RBASIC(argv[itmp])->klass = cgsl_vector_tau;
++#endif
+ return mdecomp;
+ }
+ break;
+@@ -740,7 +756,11 @@ static VALUE rb_gsl_linalg_QR_LQ_decompo
+ if (argc == itmp) {
+ return Data_Wrap_Struct(cgsl_vector_tau, 0, gsl_vector_free, tau);
+ } else {
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(argv[itmp], cgsl_vector_tau);
++#else
+ RBASIC(argv[itmp])->klass = cgsl_vector_tau;
++#endif
+ return INT2FIX(status);
+ }
+ break;
+@@ -1628,14 +1648,22 @@ static VALUE rb_gsl_linalg_QRLQPT_decomp
+ norm = gsl_vector_alloc(size0);
+ switch (flag) {
+ case LINALG_QRPT:
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(vA, cgsl_matrix_QRPT);
++#else
+ RBASIC(vA)->klass = cgsl_matrix_QRPT;
++#endif
+ vtau = Data_Wrap_Struct(cgsl_vector_tau, 0, gsl_vector_free, tau);
+ vp = Data_Wrap_Struct(cgsl_permutation, 0, gsl_permutation_free, p);
+ gsl_linalg_QRPT_decomp(A, tau, p, &signum, norm);
+ break;
+ #ifdef GSL_1_6_LATER
+ case LINALG_PTLQ:
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(vA, cgsl_matrix_PTLQ);
++#else
+ RBASIC(vA)->klass = cgsl_matrix_PTLQ;
++#endif
+ vtau = Data_Wrap_Struct(cgsl_vector_tau, 0, gsl_vector_free, tau);
+ vp = Data_Wrap_Struct(cgsl_permutation, 0, gsl_permutation_free, p);
+ gsl_linalg_PTLQ_decomp(A, tau, p, &signum, norm);
diff --git a/math/ruby-gsl/patches/patch-ext_linalg__complex.c b/math/ruby-gsl/patches/patch-ext_linalg__complex.c
new file mode 100644
index 00000000000..a08c101df46
--- /dev/null
+++ b/math/ruby-gsl/patches/patch-ext_linalg__complex.c
@@ -0,0 +1,32 @@
+$NetBSD: patch-ext_linalg__complex.c,v 1.1 2014/03/26 13:25:26 taca Exp $
+
+Fix for Ruby 2.1.
+
+--- ext/linalg_complex.c.orig 2014-03-25 15:47:30.000000000 +0000
++++ ext/linalg_complex.c
+@@ -51,8 +51,12 @@ VALUE rb_gsl_linalg_complex_LU_decomp(in
+ case 0:
+ p = gsl_permutation_alloc(size);
+ gsl_linalg_complex_LU_decomp(m, p, &signum);
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal((itmp == 1)? argv[0]: obj, cgsl_matrix_complex_LU);
++#else
+ if (itmp == 1) RBASIC(argv[0])->klass = cgsl_matrix_complex_LU;
+ else RBASIC(obj)->klass = cgsl_matrix_complex_LU;
++#endif
+ obj2 = Data_Wrap_Struct(cgsl_permutation, 0, gsl_permutation_free, p);
+ return rb_ary_new3(2, obj2, INT2FIX(signum));
+ break;
+@@ -60,8 +64,12 @@ VALUE rb_gsl_linalg_complex_LU_decomp(in
+ CHECK_PERMUTATION(argv[itmp]);
+ Data_Get_Struct(argv[itmp], gsl_permutation, p);
+ gsl_linalg_complex_LU_decomp(m, p, &signum);
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal((itmp == 1)? argv[0]: obj, cgsl_matrix_complex_LU);
++#else
+ if (itmp == 1) RBASIC(argv[0])->klass = cgsl_matrix_complex_LU;
+ else RBASIC(obj)->klass = cgsl_matrix_complex_LU;
++#endif
+ return INT2FIX(signum);
+ break;
+ default:
diff --git a/math/ruby-gsl/patches/patch-ext_ool.c b/math/ruby-gsl/patches/patch-ext_ool.c
new file mode 100644
index 00000000000..71f7a176a52
--- /dev/null
+++ b/math/ruby-gsl/patches/patch-ext_ool.c
@@ -0,0 +1,18 @@
+$NetBSD: patch-ext_ool.c,v 1.1 2014/03/26 13:25:26 taca Exp $
+
+Fix for Ruby 2.1.
+
+--- ext/ool.c.orig 2014-03-25 15:47:30.000000000 +0000
++++ ext/ool.c
+@@ -770,7 +770,11 @@ static VALUE rb_ool_conmin_pgrad_paramet
+ VALUE ary;
+ ool_conmin_parameters_default(ool_conmin_minimizer_pgrad, (void*) &P);
+ ary = create_parameters_ary_pgrad(&P);
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(ary, cool_conmin_pgrad_parameters);
++#else
+ RBASIC(ary)->klass = cool_conmin_pgrad_parameters;
++#endif
+ return ary;
+ }
+
diff --git a/math/ruby-gsl/patches/patch-ext_vector__complex.c b/math/ruby-gsl/patches/patch-ext_vector__complex.c
new file mode 100644
index 00000000000..e8d8e210681
--- /dev/null
+++ b/math/ruby-gsl/patches/patch-ext_vector__complex.c
@@ -0,0 +1,29 @@
+$NetBSD: patch-ext_vector__complex.c,v 1.1 2014/03/26 13:25:26 taca Exp $
+
+Fix for Ruby 2.1.
+
+--- ext/vector_complex.c.orig 2014-03-25 15:47:30.000000000 +0000
++++ ext/vector_complex.c
+@@ -938,11 +938,19 @@ static VALUE rb_gsl_vector_complex_trans
+
+ static VALUE rb_gsl_vector_complex_trans2(VALUE obj)
+ {
+- if (CLASS_OF(obj) == cgsl_vector_complex)
++ if (CLASS_OF(obj) == cgsl_vector_complex) {
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(obj, cgsl_vector_complex_col);
++#else
+ RBASIC(obj)->klass = cgsl_vector_complex_col;
+- else if (CLASS_OF(obj) == cgsl_vector_complex_col)
++#endif
++ } else if (CLASS_OF(obj) == cgsl_vector_complex_col) {
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(obj, cgsl_vector_complex);
++#else
+ RBASIC(obj)->klass = cgsl_vector_complex;
+- else {
++#endif
++ } else {
+ rb_raise(rb_eRuntimeError, "method trans! for %s is forbidden",
+ rb_class2name(CLASS_OF(obj)));
+ }
diff --git a/math/ruby-gsl/patches/patch-ext_vector__source.c b/math/ruby-gsl/patches/patch-ext_vector__source.c
new file mode 100644
index 00000000000..7cca42f4550
--- /dev/null
+++ b/math/ruby-gsl/patches/patch-ext_vector__source.c
@@ -0,0 +1,49 @@
+$NetBSD: patch-ext_vector__source.c,v 1.1 2014/03/26 13:25:26 taca Exp $
+
+Fix for Ruby 2.1.
+
+--- ext/vector_source.c.orig 2014-03-25 15:47:30.000000000 +0000
++++ ext/vector_source.c
+@@ -673,16 +673,36 @@ static VALUE FUNCTION(rb_gsl_vector,tran
+ static VALUE FUNCTION(rb_gsl_vector,trans_bang)(VALUE obj)
+ {
+ #ifdef BASE_DOUBLE
+- if (CLASS_OF(obj) == cgsl_vector) RBASIC(obj)->klass = cgsl_vector_col;
+- else if (CLASS_OF(obj) == cgsl_vector_col) RBASIC(obj)->klass = cgsl_vector;
+- else {
++ if (CLASS_OF(obj) == cgsl_vector) {
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(obj, cgsl_vector_col);
++#else
++ RBASIC(obj)->klass = cgsl_vector_col;
++#endif
++ } else if (CLASS_OF(obj) == cgsl_vector_col) {
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(obj, cgsl_vector);
++#else
++ RBASIC(obj)->klass = cgsl_vector;
++#endif
++ } else {
+ rb_raise(rb_eRuntimeError, "method trans! for %s is not permitted.",
+ rb_class2name(CLASS_OF(obj)));
+ }
+ #elif defined(BASE_INT)
+- if (CLASS_OF(obj) == cgsl_vector_int) RBASIC(obj)->klass = cgsl_vector_int_col;
+- else if (CLASS_OF(obj) == cgsl_vector_int_col) RBASIC(obj)->klass = cgsl_vector_int;
+- else {
++ if (CLASS_OF(obj) == cgsl_vector_int) {
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(obj, cgsl_vector_int_col);
++#else
++ RBASIC(obj)->klass = cgsl_vector_int_col;
++#endif
++ } else if (CLASS_OF(obj) == cgsl_vector_int_col) {
++#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1
++ rb_obj_reveal(obj, cgsl_vector_int);
++#else
++ RBASIC(obj)->klass = cgsl_vector_int;
++#endif
++ } else {
+ rb_raise(rb_eRuntimeError, "method trans! for %s is not permitted.",
+ rb_class2name(CLASS_OF(obj)));
+ }
diff --git a/math/ruby-gsl/patches/patch-include_rb__gsl__common.h b/math/ruby-gsl/patches/patch-include_rb__gsl__common.h
new file mode 100644
index 00000000000..2757045d631
--- /dev/null
+++ b/math/ruby-gsl/patches/patch-include_rb__gsl__common.h
@@ -0,0 +1,18 @@
+$NetBSD: patch-include_rb__gsl__common.h,v 1.1 2014/03/26 13:25:26 taca Exp $
+
+Fix for Ruby 2.1.
+
+--- include/rb_gsl_common.h.orig 2014-03-25 15:47:30.000000000 +0000
++++ include/rb_gsl_common.h
+@@ -14,6 +14,11 @@
+
+ #include "rb_gsl_config.h"
+ #include "ruby.h"
++#ifdef HAVE_RUBY_IO_H
++#include "ruby/version.h"
++#else
++#include "version.h"
++#endif
+ #include <ctype.h>
+ #include <gsl/gsl_errno.h>
+ #include <gsl/gsl_version.h>