From 36f6a17dad0bbc976682e88c849da5a7682d7e4f Mon Sep 17 00:00:00 2001 From: Amy Winston Date: Sat, 17 Oct 2015 19:37:35 +0200 Subject: sci-geosciences/grass: revbump to -7.0.1-r1 wrt the gentoo bugs. By wraeth. Add missing dependencies, reset USE flag to set the gui, fix calls to wrong python version and shebangs, hardcode configure options to ensure runtime operations, all changes written by proxy maintainer Gentoo bugs: #541622 #563264 Package-Manager: portage-2.2.20.1 --- sci-geosciences/grass/grass-7.0.1-r1.ebuild | 261 ++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 sci-geosciences/grass/grass-7.0.1-r1.ebuild (limited to 'sci-geosciences') diff --git a/sci-geosciences/grass/grass-7.0.1-r1.ebuild b/sci-geosciences/grass/grass-7.0.1-r1.ebuild new file mode 100644 index 000000000000..2ff57fc376db --- /dev/null +++ b/sci-geosciences/grass/grass-7.0.1-r1.ebuild @@ -0,0 +1,261 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite(-)?" +WANT_AUTOCONF="2.1" + +inherit eutils gnome2 multilib python-single-r1 versionator wxwidgets autotools + +MY_PM=${PN}$(get_version_component_range 1-2 ${PV}) +MY_PM=${MY_PM/.} +MY_P=${P/_rc/RC} + +DESCRIPTION="A free GIS with raster and vector functionality, as well as 3D vizualization" +HOMEPAGE="http://grass.osgeo.org/" +SRC_URI="http://grass.osgeo.org/${MY_PM}/source/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="7" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +IUSE="X blas cxx fftw gdal geos lapack mysql netcdf nls odbc opencl opengl openmp png postgres readline sqlite threads tiff truetype" + +RDEPEND="${PYTHON_DEPS} + >=app-admin/eselect-1.2 + media-libs/libprojectm + sci-libs/proj + sci-libs/xdrfile + sys-libs/gdbm + sys-libs/ncurses:0= + sys-libs/zlib + fftw? ( sci-libs/fftw:3.0 ) + gdal? ( sci-libs/gdal ) + geos? ( sci-libs/geos ) + blas? ( virtual/blas + sci-libs/cblas-reference ) + lapack? ( virtual/lapack ) + mysql? ( virtual/mysql ) + netcdf? ( sci-libs/netcdf ) + odbc? ( dev-db/unixODBC ) + opencl? ( virtual/opencl ) + opengl? ( virtual/opengl ) + png? ( media-libs/libpng:0= ) + postgres? ( >=dev-db/postgresql-8.4:= ) + readline? ( sys-libs/readline:0= ) + sqlite? ( dev-db/sqlite:3 ) + tiff? ( media-libs/tiff:0= ) + truetype? ( media-libs/freetype:2 ) + X? ( + >=dev-python/wxpython-2.8.10.1:2.8[cairo,opengl?] + x11-libs/cairo[X,opengl?] + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXp + x11-libs/libXpm + x11-libs/libXt + )" + +DEPEND="${RDEPEND} + virtual/pkgconfig + sys-devel/flex + sys-devel/gettext + sys-devel/bison + X? ( + dev-lang/swig + x11-proto/xextproto + x11-proto/xproto + )" + +S="${WORKDIR}/${MY_P}" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + opengl? ( X ) +" + +pkg_setup() { + if use lapack; then + local mylapack + mylapack=$(eselect lapack show) || die + if [[ -z "${mylapack/.*reference.*/}" ]] && \ + [[ -z "${mylapack/.*atlas.*/}" ]]; then + ewarn "You need to set lapack to atlas or reference. Do:" + ewarn " eselect lapack set " + ewarn "where is atlas, threaded-atlas or reference" + die "setup failed" + fi + fi + + if use blas; then + local myblas + myblas=$(eselect blas show) || die + if [[ -z "${myblas/.*reference.*/}" ]] && \ + [[ -z "${myblas/.*atlas.*/}" ]]; then + ewarn "You need to set blas to atlas or reference. Do:" + ewarn " eselect blas set " + ewarn "where is atlas, threaded-atlas or reference" + die "setup failed" + fi + fi + + python-single-r1_pkg_setup +} + +src_prepare() { + # Fix undefined reference to errno in lib/raster/open.c + # see http://trac.osgeo.org/grass/changeset/66398 + epatch "${FILESDIR}/${P}-include-errno.patch" + + # Fix undeclared variable if OSG is disabled + epatch "${FILESDIR}/${P}-declare-inespg.patch" + + # Fix unversioned python calls + local pyver=${EPYTHON/python/} + sed -e "s:GRASS_PYTHON=.*:&${pyver}:" -i "${S}/lib/init/grass.sh" || die + sed -e "s:= python:&${pyver}:" -i "${S}/include/Make/Platform.make.in" || die + + epatch_user + eautoconf + + python_fix_shebang "${S}" +} + +src_configure() { + if use X; then + WX_BUILD=yes + WX_GTK_VER=2.8 + need-wxwidgets unicode + fi + + econf \ + --enable-shared \ + --disable-w11 \ + $(use_with cxx) \ + $(use_with tiff) \ + $(use_with png) \ + $(use_with postgres) \ + $(use_with mysql) \ + $(use_with mysql mysql-includes "${ROOT}usr/include/mysql") \ + $(use_with mysql mysql-libs "${ROOT}usr/$(get_libdir)/mysql") \ + $(use_with sqlite) \ + $(use_with opengl) \ + $(use_with odbc) \ + $(use_with fftw) \ + $(use_with blas) \ + $(use_with lapack) \ + $(use_with X cairo) \ + $(use_with truetype freetype) \ + $(use_with truetype freetype-includes "${ROOT}usr/include/freetype2") \ + $(use_with nls) \ + $(use_with readline) \ + --without-opendwg \ + --with-regex \ + $(use_with threads pthread) \ + $(use_with openmp) \ + $(use_with opencl) \ + $(use_with gdal gdal "${ROOT}usr/bin/gdal-config") \ + --without-liblas \ + $(use_with X wxwidgets "${WX_CONFIG}") \ + $(use_with netcdf netcdf "${ROOT}usr/bin/nc-config") \ + $(use_with geos geos "${ROOT}usr/bin/geos-config") \ + --with-proj-includes="${ROOT}usr/include/libprojectM" \ + --with-proj-libs="${ROOT}usr/$(get_libdir)" \ + --with-proj-share="${ROOT}usr/share/proj/" \ + $(use_with X x) +} + +src_compile() { + # we don't want to link against embedded mysql lib + emake MYSQLDLIB="" +} + +src_install() { + emake DESTDIR="${D}" \ + INST_DIR="${D}usr/${MY_PM}" \ + prefix="${D}usr" BINDIR="${D}usr/bin" \ + PREFIX="${D}usr/" \ + install + + pushd "${D}usr/${MY_PM}" &> /dev/null + + # fix docs + dodoc AUTHORS CHANGES + dohtml -r docs/html/* + rm -rf docs/ || die + rm -rf {AUTHORS,CHANGES,COPYING,GPL.TXT,REQUIREMENTS.html} || die + + # manuals + dodir /usr/share/man/man1 + rm -rf man/ || die + + # translations + if use nls; then + dodir /usr/share/locale/ + mv locale/* "${D}usr/share/locale/" || die + rm -rf locale/ || die + # pt_BR is broken + mv "${D}usr/share/locale/pt_br" "${D}usr/share/locale/pt_BR" || die + fi + + popd &> /dev/null + + # place libraries where they belong + mv "${D}usr/${MY_PM}/lib/" "${D}usr/$(get_libdir)/" || die + + # place header files where they belong + mv "${D}usr/${MY_PM}/include/" "${D}usr/include/" || die + # make rules are not required on installed system + rm -rf "${D}usr/include/Make" || die + + # mv remaining gisbase stuff to libdir + mv "${D}usr/${MY_PM}" "${D}usr/$(get_libdir)" || die + + # get proper folder for grass path in script + local gisbase + gisbase="${ROOT}usr/$(get_libdir)/${MY_PM}" + sed -e "s:gisbase = \".*:gisbase = \"${gisbase}\":" \ + -i "${D}usr/bin/${MY_PM}" || die + + # get proper fonts path for fontcap + sed -i \ + -e "s|${D}usr/${MY_PM}|${EPREFIX}usr/$(get_libdir)/${MY_PM}|" \ + "${D}usr/$(get_libdir)/${MY_PM}/etc/fontcap" || die + + # set proper python interpreter + sed -e "s:= \"python\":= \"${EPYTHON}\":" -i "${D}usr/bin/${MY_PM}" || die + + if use X; then + local GUI="-gui" + [[ ${WX_BUILD} == yes ]] && GUI="-wxpython" + make_desktop_entry "/usr/bin/${MY_PM} ${GUI}" "${PN}" "${PN}-48x48" "Science;Education" + doicon gui/icons/${PN}-48x48.png + fi + + # install .pc file so other apps know where to look for grass + insinto /usr/$(get_libdir)/pkgconfig/ + doins grass.pc + + # fix weird +x on tcl scripts + find "${D}" -name "*.tcl" -exec chmod +r-x '{}' \; +} + +pkg_postinst() { + if use X; then + fdo-mime_desktop_database_update + gnome2_icon_cache_update + fi +} + +pkg_postrm() { + if use X; then + fdo-mime_desktop_database_update + gnome2_icon_cache_update + fi +} \ No newline at end of file -- cgit v1.2.3-65-gdbad