summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/gdl')
-rw-r--r--dev-lang/gdl/ChangeLog11
-rw-r--r--dev-lang/gdl/files/0.9.3-sstream.patch42
-rw-r--r--dev-lang/gdl/gdl-0.9.3.ebuild152
3 files changed, 203 insertions, 2 deletions
diff --git a/dev-lang/gdl/ChangeLog b/dev-lang/gdl/ChangeLog
index 0f28197f03fb..4e02b74f1478 100644
--- a/dev-lang/gdl/ChangeLog
+++ b/dev-lang/gdl/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for dev-lang/gdl
-# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/gdl/ChangeLog,v 1.34 2012/12/11 19:42:52 bicatali Exp $
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/gdl/ChangeLog,v 1.35 2013/01/02 21:44:31 bicatali Exp $
+
+*gdl-0.9.3 (02 Jan 2013)
+
+ 02 Jan 2013; Sébastien Fabbro <bicatali@gentoo.org>
+ +files/0.9.3-sstream.patch, +gdl-0.9.3.ebuild:
+ Version bump. Added a patch to overcome buffer overflows in integer to string
+ conversions
11 Dec 2012; Sébastien Fabbro <bicatali@gentoo.org> gdl-0.9.2-r2.ebuild:
Keyword amd64-linux and x86-linux
diff --git a/dev-lang/gdl/files/0.9.3-sstream.patch b/dev-lang/gdl/files/0.9.3-sstream.patch
new file mode 100644
index 000000000000..77322d00a074
--- /dev/null
+++ b/dev-lang/gdl/files/0.9.3-sstream.patch
@@ -0,0 +1,42 @@
+--- src/magick_cl.cpp.orig 2013-01-02 13:39:02.387184167 -0800
++++ src/magick_cl.cpp 2013-01-02 13:40:14.876543262 -0800
+@@ -30,6 +30,7 @@
+ #include <string>
+ #include <fstream>
+ #include <memory>
++#include <sstream>
+ //#include <Magick++.h>
+
+ #include "datatypes.hpp"
+@@ -57,25 +58,17 @@
+
+ string GDLutos(unsigned int i)
+ {
+- int mema=3;
+- char *n=new char(mema);
+- while (snprintf(n, sizeof n, "%u", i) >= sizeof n)
+- { delete n;mema++; n=new char(mema); }
+- string s=n;
+- delete n;
+- return s;
++ istringstream s;
++ s >> i;
++ return s.str();
+ }
+
+
+ string GDLitos(int i)
+ {
+- int mema=3;
+- char *n=new char(mema);
+- while (snprintf(n, sizeof n, "%d", i) >= sizeof n)
+- { delete n;mema++; n=new char(mema); }
+- string s=n;
+- delete n;
+- return s;
++ istringstream s;
++ s >> i;
++ return s.str();
+ }
+
+
diff --git a/dev-lang/gdl/gdl-0.9.3.ebuild b/dev-lang/gdl/gdl-0.9.3.ebuild
new file mode 100644
index 000000000000..14c94a52b3e2
--- /dev/null
+++ b/dev-lang/gdl/gdl-0.9.3.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/gdl/gdl-0.9.3.ebuild,v 1.1 2013/01/02 21:44:31 bicatali Exp $
+
+EAPI=4
+
+WX_GTK_VER="2.8"
+PYTHON_DEPEND="python? 2"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit cmake-utils eutils wxwidgets python toolchain-funcs virtualx
+
+RESTRICT_PYTHON_ABIS="3.3 2.7-pypy-*"
+
+DESCRIPTION="Interactive Data Language compatible incremental compiler"
+HOMEPAGE="http://gnudatalanguage.sourceforge.net/"
+SRC_URI="mirror://sourceforge/gnudatalanguage/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="fftw grib gshhs hdf hdf5 imagemagick netcdf openmp proj postscript python
+ static-libs udunits wxwidgets"
+
+# very buggy tests
+RESTRICT=test
+
+RDEPEND="
+ sci-libs/gsl
+ sci-libs/plplot
+ sys-libs/ncurses
+ sys-libs/readline
+ sys-libs/zlib
+ x11-libs/libX11
+ fftw? ( >=sci-libs/fftw-3 )
+ grib? ( sci-libs/grib_api )
+ gshhs? ( sci-geosciences/gshhs-data sci-geosciences/gshhs )
+ hdf? ( sci-libs/hdf )
+ hdf5? ( sci-libs/hdf5 )
+ imagemagick? ( media-gfx/imagemagick )
+ netcdf? ( || ( sci-libs/netcdf-cxx sci-libs/netcdf[cxx] ) )
+ proj? ( sci-libs/proj )
+ postscript? ( dev-libs/pslib )
+ python? ( dev-python/numpy )
+ udunits? ( sci-libs/udunits )
+ wxwidgets? ( x11-libs/wxGTK:2.8[X,-odbc] )"
+
+DEPEND="${RDEPEND}
+ >=dev-java/antlr-2.7.7-r5:0[cxx,script]
+ virtual/pkgconfig"
+
+pkg_setup() {
+ use wxwidgets && wxwidgets_pkg_setup
+ use python && python_pkg_setup
+ use openmp && [[ $(tc-getCXX)$ == *g++* ]] && ! tc-has-openmp && \
+ die "You have openmp enabled but your current g++ does not support it"
+}
+
+src_prepare() {
+ use hdf5 && has_version sci-libs/hdf5[mpi] && export CXX=mpicxx
+
+ epatch "${FILESDIR}"/0.9.2-{antlr,proj4,include,tests,semaphore}.patch
+ epatch "${FILESDIR}"/0.9.3-sstream.patch
+ # make sure antlr includes are from system and rebuild the sources with it
+ # https://sourceforge.net/tracker/?func=detail&atid=618685&aid=3465878&group_id=97659
+
+ rm -r src/antlr || die
+ einfo "Regenerate grammar"
+ pushd src > /dev/null
+ local i
+ for i in *.g; do antlr ${i} || die ; done
+ popd > /dev/null
+
+ # gentoo: use proj instead of libproj4 (libproj4 last update: 2004)
+ sed -i \
+ -e 's:proj4:proj:' \
+ -e 's:lib_proj\.h:proj_api\.h:g' \
+ CMakeModules/FindLibproj4.cmake src/math_utl.hpp || die
+
+ # gentoo: avoid install files in datadir directory
+ sed -i \
+ -e '/AUTHORS/d' \
+ CMakeLists.txt || die
+
+ if use python; then
+ local abi
+ for abi in ${PYTHON_ABIS}; do
+ mkdir "${S}"-${abi}
+ done
+ fi
+ if has_version sci-libs/netcdf-cxx; then
+ sed -i \
+ -e 's/netcdfcpp.h/netcdf/g' \
+ CMakeLists.txt src/ncdf_var_cl.cpp \
+ src/ncdf_cl.hpp src/ncdf_{att,dim}_cl.cpp || die
+ fi
+}
+
+src_configure() {
+ # MPI is still very buggy
+ # x11=off does not compile
+ local mycmakeargs=(
+ -DMPICH=OFF
+ -DBUNDLED_ANTLR=OFF
+ -DX11=ON
+ $(cmake-utils_use fftw)
+ $(cmake-utils_use grib)
+ $(cmake-utils_use gshhs)
+ $(cmake-utils_use hdf)
+ $(cmake-utils_use hdf5)
+ $(cmake-utils_use imagemagick MAGICK)
+ $(cmake-utils_use netcdf)
+ $(cmake-utils_use openmp)
+ $(cmake-utils_use proj LIBPROJ4)
+ $(cmake-utils_use postscript PSLIB)
+ $(cmake-utils_use udunits)
+ $(cmake-utils_use wxwidgets)
+ )
+ configuration() {
+ mycmakeargs+=( $@ )
+ BUILD_DIR="${BUILDDIR:-${S}_build}" cmake-utils_src_configure
+ }
+ configuration -DPYTHON_MODULE=OFF -DPYTHON=OFF
+ use python && python_execute_function -s \
+ configuration -DPYTHON_MODULE=ON -DPYTHON=ON
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ use python && python_src_compile
+}
+
+src_test() {
+ # upstream does not include tests if python module is on
+ # there is check target instead of the ctest to define some LDPATH
+ use python || Xemake -j1 -C ${BUILD_DIR} check
+
+}
+
+src_install() {
+ cmake-utils_src_install
+ if use python; then
+ installation() {
+ exeinto $(python_get_sitedir)
+ newexe "${S}"-${PYTHON_ABI}/src/libgdl.so GDL.so
+ }
+ python_execute_function -s installation
+ dodoc PYTHON.txt
+ fi
+ echo "GDL_PATH=\"+${EROOT}/usr/share/gnudatalanguage\"" > 50gdl
+ doenvd 50gdl
+}