diff options
author | David Spencer <baildon.research@googlemail.com> | 2015-11-18 23:45:32 +0000 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2016-01-17 09:40:16 +0700 |
commit | b8f6fbd9c6cefd262448404bc9c274857d6485c1 (patch) | |
tree | 4ad18baaa9628eca9ce4b1f92cd8ab2e8ee99cbb | |
parent | e21d48b8bbfc7b3c579206079d92286e664d09ad (diff) | |
download | slackbuilds-b8f6fbd9c6cefd262448404bc9c274857d6485c1.tar.gz |
academic/root: Patched for gsl-2.1.
Signed-off-by: David Spencer <baildon.research@googlemail.com>
-rw-r--r-- | academic/root/root.SlackBuild | 3 | ||||
-rw-r--r-- | academic/root/root_gsl2.patch | 42 |
2 files changed, 45 insertions, 0 deletions
diff --git a/academic/root/root.SlackBuild b/academic/root/root.SlackBuild index aaed68d9ef..0a182993d8 100644 --- a/academic/root/root.SlackBuild +++ b/academic/root/root.SlackBuild @@ -98,6 +98,9 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; +# Fix building with gsl-2.1 +patch -p1 < $CWD/root_gsl2.patch + # Make sure we use system libs and headers rm -r graf3d/ftgl/{inc,src} || die rm -r graf2d/freetype/src || die diff --git a/academic/root/root_gsl2.patch b/academic/root/root_gsl2.patch new file mode 100644 index 0000000000..8f049d7e03 --- /dev/null +++ b/academic/root/root_gsl2.patch @@ -0,0 +1,42 @@ +diff -u -r root/math/mathmore/src/GSLMultiFit.h root-patched/math/mathmore/src/GSLMultiFit.h +--- root/math/mathmore/src/GSLMultiFit.h 2015-06-23 16:56:20.000000000 +0100 ++++ root-patched/math/mathmore/src/GSLMultiFit.h 2015-11-18 22:30:54.300681289 +0000 +@@ -32,6 +32,7 @@ + #include "gsl/gsl_multifit_nlin.h" + #include "gsl/gsl_blas.h" + #include "GSLMultiFitFunctionWrapper.h" ++#include <gsl/gsl_version.h> + + #include "Math/IFunction.h" + #include <string> +@@ -139,7 +140,14 @@ + /// gradient value at the minimum + const double * Gradient() const { + if (fSolver == 0) return 0; +- gsl_multifit_gradient(fSolver->J, fSolver->f,fVec); ++#if GSL_MAJOR_VERSION >=2 ++ gsl_matrix *J=gsl_matrix_alloc(fSolver->fdf->n, fSolver->fdf->p); ++ gsl_multifit_fdfsolver_jac (fSolver, J); ++ gsl_multifit_gradient(J, fSolver->f, fVec); ++ gsl_matrix_free(J); ++#else ++ gsl_multifit_gradient(fSolver->J, fSolver->f, fVec); ++#endif + return fVec->data; + } + +@@ -150,7 +158,14 @@ + unsigned int npar = fSolver->fdf->p; + fCov = gsl_matrix_alloc( npar, npar ); + static double kEpsrel = 0.0001; ++#if GSL_MAJOR_VERSION >=2 ++ gsl_matrix *J=gsl_matrix_alloc(fSolver->fdf->n, fSolver->fdf->p); ++ gsl_multifit_fdfsolver_jac (fSolver, J); ++ int ret = gsl_multifit_covar(J, kEpsrel, fCov); ++ gsl_matrix_free(J); ++#else + int ret = gsl_multifit_covar(fSolver->J, kEpsrel, fCov); ++#endif + if (ret != GSL_SUCCESS) return 0; + return fCov->data; + } |