commit:     683a1377d8de799d4e190229c131bd95dad9f1c0
Author:     Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 19 09:55:12 2016 +0000
Commit:     Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
CommitDate: Sun Jun 19 09:55:36 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=683a1377

sci-physics/root: fix bug 575686

Apply upstream patch to support gsl-2.

Package-Manager: portage-2.3.0_rc1
Signed-off-by: Andrew Savchenko <bircoph <AT> gentoo.org>

 sci-physics/root/files/root-6.04.06-gsl2.patch | 58 ++++++++++++++++++++++++++
 sci-physics/root/root-6.04.06.ebuild           |  3 +-
 2 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/sci-physics/root/files/root-6.04.06-gsl2.patch 
b/sci-physics/root/files/root-6.04.06-gsl2.patch
new file mode 100644
index 0000000..5d9fb10
--- /dev/null
+++ b/sci-physics/root/files/root-6.04.06-gsl2.patch
@@ -0,0 +1,58 @@
+commit ee9964210c56e7c1868618a4434c5340fef38fe4
+Author: Pere Mato <[email protected]>
+Date:   Tue Dec 15 11:58:24 2015 +0100
+
+    Fix for ROOT-7776 - Integrate GSL 2.0 in ROOT. Changed the version used 
when option builtin_gsl=ON to 2.1 (latest production).
+
+diff --git a/cmake/modules/SearchInstalledSoftware.cmake 
b/cmake/modules/SearchInstalledSoftware.cmake
+index 6f04dad..309a8de 100644
+--- a/cmake/modules/SearchInstalledSoftware.cmake
++++ b/cmake/modules/SearchInstalledSoftware.cmake
+@@ -332,7 +332,7 @@ if(mathmore OR builtin_gsl)
+       endif()
+     endif()
+   else()
+-    set(gsl_version 1.15)
++    set(gsl_version 2.1)
+     message(STATUS "Downloading and building GSL version ${gsl_version}")
+     ExternalProject_Add(
+       GSL
+diff --git a/math/mathmore/src/GSLMultiFit.h b/math/mathmore/src/GSLMultiFit.h
+index 1d86da5..5b5a887 100644
+--- a/math/mathmore/src/GSLMultiFit.h
++++ b/math/mathmore/src/GSLMultiFit.h
+@@ -31,6 +31,7 @@
+ #include "gsl/gsl_matrix.h"
+ #include "gsl/gsl_multifit_nlin.h"
+ #include "gsl/gsl_blas.h"
++#include "gsl/gsl_version.h"
+ #include "GSLMultiFitFunctionWrapper.h"
+ 
+ #include "Math/IFunction.h"
+@@ -143,7 +144,11 @@ public:
+    /// gradient value at the minimum
+    const double * Gradient() const {
+       if (fSolver == 0) return 0;
++#if GSL_MAJOR_VERSION  > 1
++      fType->gradient(fSolver->state, fVec);
++#else
+       gsl_multifit_gradient(fSolver->J, fSolver->f,fVec);
++#endif
+       return fVec->data;
+    }
+ 
+@@ -154,7 +159,14 @@ public:
+       unsigned int npar = fSolver->fdf->p;
+       fCov = gsl_matrix_alloc( npar, npar );
+       static double kEpsrel = 0.0001;
++#if GSL_MAJOR_VERSION > 1
++      gsl_matrix* J = gsl_matrix_alloc(npar,npar);
++      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;
+    }

diff --git a/sci-physics/root/root-6.04.06.ebuild 
b/sci-physics/root/root-6.04.06.ebuild
index 38e6f29..9cfe322 100644
--- a/sci-physics/root/root-6.04.06.ebuild
+++ b/sci-physics/root/root-6.04.06.ebuild
@@ -241,7 +241,8 @@ src_prepare() {
                "${FILESDIR}"/${PN}-6.00.01-dotfont.patch \
                "${FILESDIR}"/${PN}-6.00.01-llvm.patch \
                "${FILESDIR}"/${PN}-6.00.01-nobyte-compile.patch \
-               "${FILESDIR}"/${P}-prop-flags.patch
+               "${FILESDIR}"/${P}-prop-flags.patch \
+               "${FILESDIR}"/${P}-gsl2.patch
                # "${FILESDIR}"/${PN}-6.02.05-xrootd4.patch
                # "${FILESDIR}"/${PN}-6.02.05-dictpch.patch \
 

Reply via email to