sci-visualization/qtiplot: Add compatibility patch for gsl API cahnge
authorJustin Lecher <jlec@gentoo.org>
Thu, 18 Feb 2016 16:33:59 +0000 (17:33 +0100)
committerJustin Lecher <jlec@gentoo.org>
Thu, 18 Feb 2016 16:34:32 +0000 (17:34 +0100)
Thanks Jürgen Rose for the patch

Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=574620

Package-Manager: portage-2.2.27
Signed-off-by: Justin Lecher <jlec@gentoo.org>
sci-visualization/qtiplot/Manifest
sci-visualization/qtiplot/files/qtiplot-0.9.8.9-gsl-2.patch [new file with mode: 0644]
sci-visualization/qtiplot/qtiplot-0.9.8.9-r2.ebuild
sci-visualization/qtiplot/qtiplot-0.9.8.9-r3.ebuild
sci-visualization/qtiplot/qtiplot-0.9.8.9-r4.ebuild [new file with mode: 0644]

index 1fd7b6f384e170fcc23a7022ea1cd6fdc8bf8504..2271a07a47d07a5fc0dde3ad3aca1d07a7eba6ca 100644 (file)
@@ -1,2 +1,3 @@
 DIST qtiplot-0.9.8.9-origin.patch.bz2 104708 SHA256 e83d7212be0fadae31b14c8a86b655fdb3b7c7b8fc80b1e2d91eb0a7e96b1e99 SHA512 62f5bb531c2fc7e061661ab5733a70acf9a61ff90a934af42b5741c63478caebabc8240f37d25660f623c5cbcd530e1303e967a095ca99b3452f29cfb5200b69 WHIRLPOOL 94b4b704737c2e6bb86caa00497164749df7eb01b13b49d06daa8f33b3e34d23782bde4fec617f35755c2e2f4286327bb39270bf48a9f020e94ef113f9d962bb
+DIST qtiplot-0.9.8.9-origin.patch.xz 89660 SHA256 8d1a9927fad711b7e357641926b884f68d28f8e2f648f6a7c071514d5d552c11 SHA512 adbd002975bb49997eb610b150c1bbfe9c9617b0b5bbb70f52df7475339b7d68cada175eb9f6048f6ece043ca3dcf5c62ef361d82bc670b1576ee8493d6b757c WHIRLPOOL 41fd5c1627737f060d7a0d99682e58417e050c7655798453a602c1cf9409d5bab319870b6054efe3542ac038c2bc32f804ae427646a3f56290a2c5b1905cbcd4
 DIST qtiplot-0.9.8.9.tar.bz2 16202943 SHA256 a523ea259516d7581abaf2fe376507d152db32f71d88176cff18f5bc391b9ef0 SHA512 3a0cb7b49c508f56228e8e3a259b4fd34c872410ad14ef1d8656372e3e8ab9f92e59094a9cc1a75680099a8832f7472ad31462b3ae8a9e132ac7056d5245cf2a WHIRLPOOL 3cf9d9ab7d58301364a61f6c5ad51858ffe1e6214c5971c1d042c7894fcb70fa4b28fe0e6631f142ab8fa9b2c2b979e4e178bc44b1961cde70b29d9aaa2c7d3f
diff --git a/sci-visualization/qtiplot/files/qtiplot-0.9.8.9-gsl-2.patch b/sci-visualization/qtiplot/files/qtiplot-0.9.8.9-gsl-2.patch
new file mode 100644 (file)
index 0000000..9ad8919
--- /dev/null
@@ -0,0 +1,36 @@
+ * Info: Using [gentoo] (https://bugs.gentoo.org/xmlrpc.cgi)
+ * Info: Getting attachment 425760
+ * Info: Viewing attachment: "fix_fit_gsl_fdfsolver.patch"
+diff --git a/qtiplot/src/analysis/Fit.cpp b/qtiplot/src/analysis/Fit.cpp
+index 22cb5be..555f21d 100755
+--- a/qtiplot/src/analysis/Fit.cpp
++++ b/qtiplot/src/analysis/Fit.cpp
+@@ -106,6 +106,7 @@ void Fit::init()
+ gsl_multifit_fdfsolver * Fit::fitGSL(gsl_multifit_function_fdf f, int &iterations, int &status)
+ {
+       const gsl_multifit_fdfsolver_type *T;
++      gsl_matrix *J;
+       if (d_solver)
+               T = gsl_multifit_fdfsolver_lmder;
+       else
+@@ -128,7 +129,8 @@ gsl_multifit_fdfsolver * Fit::fitGSL(gsl_multifit_function_fdf f, int &iteration
+       }
+       if (status){
+-          gsl_multifit_covar (s->J, 0.0, covar);
++          gsl_multifit_fdfsolver_jac (s, J);
++          gsl_multifit_covar (J, 0.0, covar);
+           iterations = 0;
+           return s;
+       }
+@@ -155,7 +157,8 @@ gsl_multifit_fdfsolver * Fit::fitGSL(gsl_multifit_function_fdf f, int &iteration
+               status = gsl_multifit_test_delta (s->dx, s->x, d_tolerance, d_tolerance);
+       } while (inRange && status == GSL_CONTINUE && (int)iter < d_max_iterations);
+-      gsl_multifit_covar (s->J, 0.0, covar);
++      gsl_multifit_fdfsolver_jac (s, J);
++      gsl_multifit_covar (J, 0.0, covar);
+       iterations = iter;
+       return s;
+
index f93b9455b91fb0d8eee1459398908dbfaf720529..e2db5e6eae43c9610d69fa96270e74ff1e23ebb8 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$
 
@@ -45,7 +45,7 @@ CDEPEND="
        dev-libs/quazip
        media-libs/libpng:=
        sci-libs/alglib:=
-       sci-libs/gsl
+       <sci-libs/gsl-2
        sci-libs/tamu_anova
        latex? ( dev-tex/qtexengine )
        mono? ( dev-dotnet/libgdiplus )
index eec88b2a36043d8f6e6cb2bdff1ba01213b9d02e..060eeae33676f72e7040fc47c476dba17eee2cf9 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$
 
@@ -45,7 +45,7 @@ CDEPEND="
        dev-libs/quazip
        media-libs/libpng:=
        sci-libs/alglib:=
-       sci-libs/gsl
+       <sci-libs/gsl-2
        sci-libs/tamu_anova
        latex? ( dev-tex/qtexengine )
        mono? ( dev-dotnet/libgdiplus )
diff --git a/sci-visualization/qtiplot/qtiplot-0.9.8.9-r4.ebuild b/sci-visualization/qtiplot/qtiplot-0.9.8.9-r4.ebuild
new file mode 100644 (file)
index 0000000..5163a6a
--- /dev/null
@@ -0,0 +1,240 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils qmake-utils python-single-r1 toolchain-funcs xdg
+
+DESCRIPTION="Qt based clone of the Origin plotting package"
+HOMEPAGE="
+       http://soft.proindependent.com/qtiplot.html
+       http://www.staff.science.uu.nl/~zeven101/qtiplot.html"
+SRC_URI="
+       https://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.bz2
+       https://dev.gentoo.org/~jlec/distfiles/${P}-origin.patch.xz"
+
+LICENSE="GPL-2 GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bindist doc mono latex python"
+
+LANGS="cn cz de es fr ja ro ru sv"
+for l in ${LANGS}; do
+       lu=${l/cz/cs}
+       lu=${lu/cn/zh_CN}
+       IUSE="${IUSE} linguas_${lu}"
+done
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+# qwtplot3d much modified from original upstream
+# >=x11-libs/qwt-5.3 they are using trunk checkouts
+CDEPEND="
+       media-libs/libemf
+       dev-qt/qthelp:4
+       dev-qt/qtgui:4
+       dev-qt/qtopengl:4
+       dev-qt/qt3support:4
+       dev-qt/qthelp:4[compat]
+       dev-qt/qtsvg:4
+       >=x11-libs/gl2ps-1.3.5[png]
+       >=dev-cpp/muParser-1.32
+       >=dev-libs/boost-1.35.0:=
+       dev-libs/quazip
+       media-libs/libpng:=
+       sci-libs/alglib:=
+       >=sci-libs/gsl-2
+       sci-libs/tamu_anova
+       latex? ( dev-tex/qtexengine )
+       mono? ( dev-dotnet/libgdiplus )
+       python? (
+               ${PYTHON_DEPS}
+               >=dev-python/PyQt4-4.11.3[X,${PYTHON_USEDEP}]
+               )"
+DEPEND="${CDEPEND}
+       virtual/pkgconfig
+       python? ( >=dev-python/sip-4.16.5[${PYTHON_USEDEP}] )
+       doc? (
+               >=app-text/docbook-sgml-utils-0.6.14-r1
+               >=app-text/docbook-xml-dtd-4.4-r2:4.4 )"
+
+RDEPEND="${CDEPEND}"
+
+PATCHES=(
+       "${WORKDIR}"/${P}-origin.patch
+       "${FILESDIR}"/${P}-origin-2.patch
+       "${FILESDIR}"/${P}-qt48.patch
+       "${FILESDIR}"/${PN}-0.9.8.8-system-gl2ps.patch
+       "${FILESDIR}"/${PN}-0.9.7.10-dont-install-qwt.patch
+       "${FILESDIR}"/${PN}-0.9.8.6-gold.patch
+       "${FILESDIR}"/${PN}-0.9.8.7-kde.patch
+       "${FILESDIR}"/${P}-set_col_values.patch
+       "${FILESDIR}"/${P}-adopt_to_alglib3.patch
+       "${FILESDIR}"/${P}-crasher_without_internet.patch
+       "${FILESDIR}"/${P}-private.patch
+       "${FILESDIR}"/${P}-sip-4.15.patch
+       "${FILESDIR}"/${P}-PyQt4-4.11.3.patch
+       "${FILESDIR}"/${P}-gsl-2.patch
+       )
+
+RESTRICT="!bindist? ( bindist )"
+
+pkg_setup() {
+       use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       local mylibs
+
+       xdg_src_prepare
+
+       rm -rf \
+               3rdparty/{liborigin,QTeXEngine,/qwtplot3d/3rdparty/gl2ps/,boost,alglib} \
+               || die
+       sed \
+               -e "s:dll:static:g" \
+               -e "/INSTALLS/d" \
+               -i 3rdparty/qwtplot3d/*.pro || die
+
+       mylibs="${mylibs} -lquazip"
+       use mono && mylibs="${mylibs} $($(tc-getPKG_CONFIG) --libs libgdiplus)"
+
+       # Check build.conf for changes on bump.
+       cat > build.conf <<-EOF
+       # Automatically generated by Gentoo ebuild
+       isEmpty( QTI_ROOT ) {
+         message( "each file including this config needs to set QTI_ROOT to the dir containing this file!" )
+       }
+
+       MUPARSER_LIBS = $($(tc-getPKG_CONFIG) --libs muparser)
+       GSL_LIBS = $($(tc-getPKG_CONFIG) --libs gsl)
+       QWT_INCLUDEPATH = \$\$QTI_ROOT/3rdparty/qwt/src
+       QWT_LIBS = \$\$QTI_ROOT/3rdparty/qwt/lib/libqwt.a
+       QWT3D_INCLUDEPATH = \$\$QTI_ROOT/3rdparty/qwtplot3d/include
+       QWT3D_LIBS = \$\$QTI_ROOT/3rdparty/qwtplot3d/lib/libqwtplot3d.a
+       EMF_INCLUDEPATH = "${EPREFIX}"/usr/include/libEMF
+       SYS_LIBS = -lgl2ps ${mylibs} -lGLU
+
+       LUPDATE = lupdate
+       LRELEASE = lrelease
+
+       SCRIPTING_LANGS += muParser
+
+       CONFIG          += release
+       CONFIG          += CustomInstall
+       DEFINES         += SCRIPTING_CONSOLE
+
+       LIBPNG_LIBS = $($(tc-getPKG_CONFIG) --libs libpng)
+       TAMUANOVA_LIBS = -ltamuanova
+       TAMUANOVA_INCLUDEPATH = "${EPREFIX}/usr/include/tamu_anova"
+       ALGLIB_LIBS = -lalglib
+
+       EOF
+
+       use bindist && echo "DEFINES         += QTIPLOT_SUPPORT" >> build.conf
+       use bindist || echo "DEFINES         += QTIPLOT_PRO" >> build.conf
+       use python && echo "SCRIPTING_LANGS += Python" >> build.conf
+       use python && echo "PYTHON = ${EPYTHON}" >> build.conf
+       use latex && echo "TEX_ENGINE_LIBS = -lQTeXEngine" >> build.conf
+
+       sed \
+               -e "s:doc/${PN}/manual:doc/${PN}/html:" \
+               -e '/INSTALLS.*documentation/d' \
+               -e '/INSTALLS.*manual/d' \
+               -e "/INSTALLBASE/s: /usr: ${EPREFIX}/usr:g" \
+               -e 's:/usr/local/qtiplot:$$INSTALLBASE:g' \
+               -i qtiplot/qtiplot.pro || die
+
+       if use python; then
+               sed \
+                       -e "s:/usr/local/${PN}:${EPREFIX}$(python_get_sitedir)/qtiplot:" \
+                       -i qtiplot/qtiplot.pro || die
+       fi
+
+       sed \
+               -e "/^target.path/s:/usr:${EPREFIX}/usr:g" \
+               -i fitPlugins/*/*.pro || die
+
+       sed -e '/manual/d' -i qtiplot.pro || die
+
+       sed -e "s:QTIPLOT_PRO:QTIPLOT_PROFESSIONAL:g" -i qtiplot/src/core/main.cpp || die
+
+       # Drop langs only if LINGUAS is not empty
+       if [[ -n ${LINGUAS} ]]; then
+               for l in ${LANGS}; do
+                       lu=${l/cz/cs}
+                       lu=${lu/cn/zh_CN}
+                       use linguas_${lu} || \
+                               sed -e "s:translations/qtiplot_${l}.[tq][sm]::" \
+                                               -i qtiplot/qtiplot.pro || die
+               done
+       fi
+
+       sed \
+               -e "s:d_python_config_folder + \":\"${EPREFIX}/usr/share/qtiplot:g" \
+               -i qtiplot/src/core/ApplicationWindow.cpp || die
+
+       chmod -x qtiplot/qti_wordlist.txt
+
+       # sed out debian paths
+       sed \
+               -e 's:\(/usr/share/sgml/\)docbook/stylesheet/dsssl/modular\(/html/docbook.dsl\):\1stylesheets/dsssl/docbook\2:' \
+               -i manual/qtiplot.dsl || die
+       sed \
+               -e 's:\(/usr/share/\)xml/docbook/stylesheet/nwalsh\(/html/chunk.xsl\):\1sgml/docbook/xsl-stylesheets\2:' \
+               -i manual/qtiplot_html.xsl || die
+
+       sed \
+               -e '1i#define OF(x) x' \
+               -i 3rdparty/zlib/minigzip.c || die
+}
+
+src_configure() {
+       use amd64 && export QMAKESPEC="linux-g++-64"
+       eqmake4
+}
+
+src_compile() {
+       default
+       lrelease qtiplot/qtiplot.pro || die
+       if use doc; then
+               cd manual || die
+               emake web
+       fi
+}
+
+src_install() {
+       emake INSTALL_ROOT="${D}" install
+
+       insinto /usr/share/qtiplot
+       doins qtiplot/qti_wordlist.txt
+
+       newicon qtiplot_logo.png qtiplot.png
+       make_desktop_entry qtiplot "QtiPlot Scientific Plotting" qtiplot
+
+       use doc && dodoc -r manual/html
+
+       use python && python_optimize
+
+       if [[ -n ${LINGUAS} ]]; then
+               insinto /usr/share/${PN}/translations
+               for l in ${LANGS}; do
+                       lu=${l/cz/cs}
+                       lu=${lu/cn/zh_CN}
+                       use linguas_${lu} && \
+                               doins qtiplot/translations/qtiplot_${l}.qm
+               done
+       fi
+}
+
+pkg_postinst() {
+       if use python; then
+               optfeature "Enhanced python support" \
+                       dev-python/pygsl dev-python/rpy sci-libs/scipy dev-python/sympy
+       fi
+
+       xdg_pkg_postinst
+}