sci-libs/mathgl: Add compatibility patch for gsl API change
authorJustin Lecher <jlec@gentoo.org>
Sat, 20 Feb 2016 15:29:17 +0000 (16:29 +0100)
committerJustin Lecher <jlec@gentoo.org>
Sat, 20 Feb 2016 15:39:18 +0000 (16:39 +0100)
Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=575158

Package-Manager: portage-2.2.27
Signed-off-by: Justin Lecher <jlec@gentoo.org>
sci-libs/mathgl/files/mathgl-2.3.3-gsl-2.patch [new file with mode: 0644]
sci-libs/mathgl/mathgl-2.1.3.1.ebuild
sci-libs/mathgl/mathgl-2.1.3.ebuild
sci-libs/mathgl/mathgl-2.3.3-r1.ebuild [new file with mode: 0644]
sci-libs/mathgl/mathgl-2.3.3.ebuild

diff --git a/sci-libs/mathgl/files/mathgl-2.3.3-gsl-2.patch b/sci-libs/mathgl/files/mathgl-2.3.3-gsl-2.patch
new file mode 100644 (file)
index 0000000..6254321
--- /dev/null
@@ -0,0 +1,25 @@
+ src/fit.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/fit.cpp b/src/fit.cpp
+index 6a42a4b..d167022 100644
+--- a/src/fit.cpp
++++ b/src/fit.cpp
+@@ -179,6 +179,7 @@ mreal MGL_NO_EXPORT mgl_fit_base(mglFitData &fd, mreal *ini)
+       const gsl_multifit_fdfsolver_type *T = gsl_multifit_fdfsolver_lmsder;\r
+       gsl_multifit_fdfsolver *s = gsl_multifit_fdfsolver_alloc(T, n, m);\r
+       gsl_multifit_function_fdf f;\r
++      gsl_matrix *J;\r
+       f.f = mgl_fit__f;               f.df = mgl_fit__df;\r
+       f.fdf = mgl_fit__fdf;   f.n = n;        f.p = m;\r
+       f.params = &fd;\r
+@@ -193,7 +194,8 @@ mreal MGL_NO_EXPORT mgl_fit_base(mglFitData &fd, mreal *ini)
+       }\r
+       while ( status == GSL_CONTINUE && iter < 500 );\r
+       gsl_matrix *covar = gsl_matrix_alloc(m, m);\r
+-      gsl_multifit_covar (s->J, 0.0, covar );\r
++      gsl_multifit_fdfsolver_jac (s, J);\r
++      gsl_multifit_covar (J, 0.0, covar);\r
+       mglFitCovar.Set(covar);\r
+       mreal res = gsl_blas_dnrm2(s->f);\r
+       for(i=0;i<m;i++)        ini[i] = gsl_vector_get(s->x, i);\r
index 7f0ff4af321567e69a669e7b0c174e373ce108a5..7b5085944d23116acc4c9f0051d7ac5428b8d21d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -30,7 +30,7 @@ RDEPEND="
        fltk? ( x11-libs/fltk:1 )
        gif? ( media-libs/giflib )
        glut? ( media-libs/freeglut )
-       gsl? ( sci-libs/gsl )
+       gsl? ( <sci-libs/gsl-2 )
        hdf? ( sci-libs/hdf )
        hdf5? ( >=sci-libs/hdf5-1.8[mpi=] )
        jpeg? ( virtual/jpeg:0 )
index 65ff4c8ec660634e4c02a63ee874eafdd44b8bee..ce36b9d6961fadea143a1d9749f445f140f9e624 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -30,7 +30,7 @@ RDEPEND="
        fltk? ( x11-libs/fltk:1 )
        gif? ( media-libs/giflib )
        glut? ( media-libs/freeglut )
-       gsl? ( sci-libs/gsl )
+       gsl? ( <sci-libs/gsl-2 )
        hdf? ( sci-libs/hdf )
        hdf5? ( >=sci-libs/hdf5-1.8[mpi=] )
        jpeg? ( virtual/jpeg:0 )
diff --git a/sci-libs/mathgl/mathgl-2.3.3-r1.ebuild b/sci-libs/mathgl/mathgl-2.3.3-r1.ebuild
new file mode 100644 (file)
index 0000000..7b3109f
--- /dev/null
@@ -0,0 +1,174 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+WX_GTK_VER=3.0
+
+inherit cmake-utils eutils python-single-r1 wxwidgets multilib flag-o-matic
+
+DESCRIPTION="Math Graphics Library"
+HOMEPAGE="http://mathgl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz mirror://sourceforge/${PN}/STIX_font.tgz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc fltk gif glut gsl hdf hdf5 jpeg lua mpi octave opengl openmp pdf
+       png python qt4 qt5 static-libs threads wxwidgets zlib"
+
+LANGS="ru"
+for l in ${LANGS}; do
+       IUSE+=" linguas_${l}"
+done
+
+RDEPEND="
+       !sci-visualization/udav
+       virtual/opengl
+       fltk? ( x11-libs/fltk:1 )
+       gif? ( media-libs/giflib )
+       glut? ( media-libs/freeglut )
+       gsl? ( >=sci-libs/gsl-2 )
+       hdf? ( sci-libs/hdf )
+       hdf5? ( >=sci-libs/hdf5-1.8[mpi=] )
+       jpeg? ( virtual/jpeg:0 )
+       lua? ( >=dev-lang/lua-5.1:0 )
+       octave? ( >=sci-mathematics/octave-3.4.0 )
+       openmp? ( sys-cluster/openmpi )
+       pdf? ( media-libs/libharu )
+       png? ( media-libs/libpng:0 )
+       python? ( dev-python/numpy[${PYTHON_USEDEP}] ${PYTHON_DEPS} )
+       qt4? ( dev-qt/qtgui:4 )
+       wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+       zlib? ( sys-libs/zlib )"
+
+DEPEND="${RDEPEND}
+       doc? ( app-text/texi2html virtual/texi2dvi )
+       octave? ( dev-lang/swig )
+       python? ( dev-lang/swig )"
+
+REQUIRED_USE="
+       mpi? ( hdf5 )
+       openmp? ( !threads )
+       png? ( zlib )
+       pdf? ( png )
+       python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-gsl-2.patch
+)
+
+pkg_setup() {
+       use mpi && export CC=mpicc CXX=mpicxx
+       use python && python-single-r1_pkg_setup
+}
+
+src_unpack() {
+       default
+       if ! [[ -d "${S}"/fonts ]]; then
+               mkdir "${S}"/fonts || die
+       fi
+       cd "${S}"/fonts || die
+       unpack STIX_font.tgz
+}
+
+src_prepare() {
+       default
+       epatch "${PATCHES[@]}"
+       # fix for location of hdf headers
+       sed -i -e 's:hdf/::g' src/data_io.cpp || die
+       # bored of reporting bad libdir upstream
+       sed -i \
+               -e '/DESTINATION/s:lib$:lib${LIB_SUFFIX}:g' \
+               {src,widgets}/CMakeLists.txt || die
+       echo "" > lang/install.m || die
+       # fix desktop file
+       sed -i -e 's/.png//' udav/udav.desktop || die
+       # prevent sandbox violation
+       sed -i -e 's/update-mime-database/true/' udav/CMakeLists.txt || die
+       sed -i -e 's/update-desktop-database/true/' udav/CMakeLists.txt || die
+       # fix missing include, bug 564204
+       sed \
+               -e '/#include <QStringList>/i #include <QObject>' \
+               -i json/Backend.hpp || die
+
+       use python && \
+               append-cppflags \
+               -I"$(${EPYTHON} -c 'import numpy; print(numpy.get_include())')"
+       use wxwidgets && need-wxwidgets unicode
+}
+
+src_configure() {
+       local mycmakeargs=(
+               # No clue about this option:
+               # option(enable-mgl2 "Use names 'libmgl2-*' instead of 'libmgl-*'")
+               -DHDF4_INCLUDE_DIR="${EPREFIX}/usr/include"
+               -DMGL_LIB_INSTALL_DIR="$(get_libdir)"
+               $(cmake-utils_use doc enable-all-docs)
+               $(cmake-utils_use fltk enable-fltk)
+               $(cmake-utils_use gif enable-gif)
+               $(cmake-utils_use glut enable-glut)
+               $(cmake-utils_use gsl enable-gsl)
+               $(cmake-utils_use hdf enable-hdf4)
+               $(cmake-utils_use hdf5 enable-hdf5_18)
+               $(cmake-utils_use jpeg enable-jpeg)
+               $(cmake-utils_use lua enable-lua)
+               $(cmake-utils_use mpi enable-mpi)
+               $(cmake-utils_use octave enable-octave)
+               $(cmake-utils_use opengl enable-opengl)
+               $(cmake-utils_use openmp enable-openmp)
+               $(cmake-utils_use pdf enable-pdf)
+               $(cmake-utils_use png enable-png)
+               $(cmake-utils_use qt4 enable-qt4)
+               $(cmake-utils_use qt5 enable-qt5)
+               $(cmake-utils_use threads enable-pthread)
+               $(cmake-utils_use python enable-python)
+               $(cmake-utils_use wxwidgets enable-wx)
+               $(cmake-utils_use zlib enable-zlib)
+       )
+       cmake-utils_src_configure
+       # to whoever cares: TODO: do for multiple python ABI
+       if use python; then
+               sed -i \
+                       -e "s:--prefix=\(.*\) :--prefix=\$ENV{DESTDIR}\1 :" \
+                       "${CMAKE_BUILD_DIR}"/lang/cmake_install.cmake || die
+       fi
+}
+
+src_install() {
+       cmake-utils_src_install
+       dodoc README* *.txt AUTHORS
+       if ! use static-libs; then
+               rm "${ED}"/usr/$(get_libdir)/*.a || die
+       fi
+       if use qt4 ; then
+               local lang
+               insinto /usr/share/udav
+               for lang in ${LANGS} ; do
+                       use linguas_${lang} && doins udav/udav_${lang}.qm
+               done
+       fi
+       if use octave ; then
+               insinto /usr/share/${PN}/octave
+               doins "${CMAKE_BUILD_DIR}"/lang/${PN}.tar.gz
+       fi
+       use python && python_optimize
+}
+
+pkg_postinst() {
+       if use octave; then
+               octave <<-EOF
+               pkg install ${EROOT}/usr/share/${PN}/octave/${PN}.tar.gz
+               EOF
+       fi
+}
+
+pkg_prerm() {
+       if use octave; then
+               octave <<-EOF
+               pkg uninstall ${PN}
+               EOF
+       fi
+}
index f75fe4b357a18c0780353036605f4c5cde00d137..69f6c1f674c517418f5d79b2408691cc657e9941 100644 (file)
@@ -30,7 +30,7 @@ RDEPEND="
        fltk? ( x11-libs/fltk:1 )
        gif? ( media-libs/giflib )
        glut? ( media-libs/freeglut )
-       gsl? ( sci-libs/gsl )
+       gsl? ( <sci-libs/gsl-2 )
        hdf? ( sci-libs/hdf )
        hdf5? ( >=sci-libs/hdf5-1.8[mpi=] )
        jpeg? ( virtual/jpeg:0 )