diff options
Diffstat (limited to 'dev-lang/gdl')
-rw-r--r-- | dev-lang/gdl/ChangeLog | 11 | ||||
-rw-r--r-- | dev-lang/gdl/files/0.9.3-sstream.patch | 42 | ||||
-rw-r--r-- | dev-lang/gdl/gdl-0.9.3.ebuild | 152 |
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 +} |