diff options
Diffstat (limited to 'sci-geosciences/mapnik/mapnik-0.7.1-r2.ebuild')
-rw-r--r-- | sci-geosciences/mapnik/mapnik-0.7.1-r2.ebuild | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/sci-geosciences/mapnik/mapnik-0.7.1-r2.ebuild b/sci-geosciences/mapnik/mapnik-0.7.1-r2.ebuild new file mode 100644 index 000000000000..3578e5954611 --- /dev/null +++ b/sci-geosciences/mapnik/mapnik-0.7.1-r2.ebuild @@ -0,0 +1,155 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-geosciences/mapnik/mapnik-0.7.1-r2.ebuild,v 1.1 2012/01/30 21:59:14 hwoarang Exp $ + +EAPI=3 + +PYTHON_DEPEND="python? 2" +inherit eutils flag-o-matic python toolchain-funcs versionator + +DESCRIPTION="A Free Toolkit for developing mapping applications." +HOMEPAGE="http://www.mapnik.org/" +SRC_URI="mirror://berlios/${PN}/${P}.tar.bz2" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="-doc cairo curl debug +gdal postgres python sqlite" + +RDEPEND="dev-libs/boost + dev-libs/icu + dev-libs/libxml2:2 + media-fonts/dejavu + media-libs/freetype:2 + virtual/jpeg + media-libs/libpng + media-libs/tiff + sci-libs/proj + x11-libs/agg[truetype] + cairo? ( + x11-libs/cairo + dev-cpp/cairomm + python? ( dev-python/pycairo ) + ) + curl? ( net-misc/curl ) + gdal? ( sci-libs/gdal ) + postgres? ( + >=dev-db/postgresql-base-8.3 + ) + python? ( >=dev-libs/boost-1.48[python] ) + sqlite? ( dev-db/sqlite:3 )" + +DEPEND="${RDEPEND} + doc? ( dev-python/epydoc ) + dev-util/scons" + +pkg_setup() { + if use python; then + python_set_active_version 2 + python_pkg_setup + fi +} + +src_prepare() { + sed -i \ + -e "s|/usr/local|/usr|g" \ + -e "s|Action(env\[config\]|Action('%s --help' % env\[config\]|" \ + SConstruct || die "sed 1 failed" + + sed -i \ + -e "s:mapniklibpath + '/fonts':'/usr/share/fonts/dejavu/':g" \ + bindings/python/SConscript || die "sed 2 failed" + rm -rf agg || die + epatch "${FILESDIR}"/${P}-libagg.patch + + # update for libpng 1.5 changes (see bug #) + epatch "${FILESDIR}"/${P}-libpng1.5.4.patch +} + +src_configure() { + EMAKEOPTS="SYSTEM_FONTS=/usr/share/fonts/dejavu" + + EMAKEOPTS="${EMAKEOPTS} INPUT_PLUGINS=" + use postgres && EMAKEOPTS="${EMAKEOPTS}postgis," + use gdal && EMAKEOPTS="${EMAKEOPTS}gdal,ogr," + use sqlite && EMAKEOPTS="${EMAKEOPTS}sqlite," + use curl && EMAKEOPTS="${EMAKEOPTS}osm," + EMAKEOPTS="${EMAKEOPTS}shape,raster" + + use cairo || EMAKEOPTS="${EMAKEOPTS} CAIRO=false" + use python || EMAKEOPTS="${EMAKEOPTS} BINDINGS=none" + use python && EMAKEOPTS="${EMAKEOPTS} BOOST_PYTHON_LIB=boost_python-${PYTHON_ABI}" + use debug && EMAKEOPTS="${EMAKEOPTS} DEBUG=yes" + EMAKEOPTS="${EMAKEOPTS} DESTDIR=${D}" + + use postgres && use sqlite && EMAKEOPTS="${EMAKEOPTS} PGSQL2SQLITE=yes" + + BOOST_PKG="$(best_version "dev-libs/boost")" + BOOST_VER="$(get_version_component_range 1-2 "${BOOST_PKG/*boost-/}")" + export BOOST_VERSION="$(replace_all_version_separators _ "${BOOST_VER}")" + elog "${P} BOOST_VERSION is ${BOOST_VERSION}" + export BOOST_INC="/usr/include/boost-${BOOST_VERSION}" + elog "${P} BOOST_INC is ${BOOST_INC}" + BOOST_LIBDIR_SCHEMA="$(get_libdir)/boost-${BOOST_VERSION}" + export BOOST_LIB="/usr/${BOOST_LIBDIR_SCHEMA}" + elog "${P} BOOST_LIB is ${BOOST_LIB}" + + # force older boost filesystem version until upstream migrates + if version_is_at_least "1.46" "${BOOST_VER}"; then + append-flags -DBOOST_FILESYSTEM_VERSION=2 + fi + + # Passing things doesn't seem to hit all the right paths; another + # poster-child for just a bit too much complexity for its own good. + # See bug #301674 for more info. + sed -i -e "s|searchDir, LIBDIR_SCHEMA|searchDir, \'${BOOST_LIBDIR_SCHEMA}\'|" \ + -i -e "s|include/boost*|include/boost-${BOOST_VERSION}|" \ + "${S}"/SConstruct || die "sed boost paths failed..." + + # this seems to be the only way to force user-flags, since nothing + # gets through the scons configure except the nuclear sed option. + sed -i -e "s:\-O%s:${CXXFLAGS}:" \ + -i -e "s:env\['OPTIMIZATION'\]\,::" \ + SConstruct || die "sed 3 failed" + sed -i -e "s:LINKFLAGS=linkflags:LINKFLAGS=linkflags + \" ${LDFLAGS}\":" \ + src/SConscript || die "sed 4 failed" + + scons CC="$(tc-getCC)" CXX="$(tc-getCXX)" ${EMAKEOPTS} configure \ + || die "scons configure failed" +} + +src_compile() { + # note passing CXXFLAGS to scons does *not* work + scons CC="$(tc-getCC)" CXX="$(tc-getCXX)" \ + shared=1 || die "scons make failed" + + # this is known to depend on mod_python and should not have a + # "die" after the epydoc script (see bug #370575) + if use doc; then + export PYTHONPATH="${S}/bindings/python:$(python_get_sitedir)" + cd docs/epydoc_config + ./build_epydoc.sh + cd - + fi +} + +src_install() { + scons DESTDIR="${D}" install || die "scons install failed" + + if use python ; then + fperms 0755 "$(python_get_sitedir)"/mapnik/paths.py + dobin utils/stats/mapdef_stats.py + insinto /usr/share/doc/${PF}/examples + doins utils/ogcserver/* + fi + + dodoc AUTHORS CHANGELOG README || die + use doc && { dohtml -r docs/api_docs/python/* || die "API doc install failed"; } +} + +pkg_postinst() { + elog "" + elog "See the home page or wiki (http://trac.mapnik.org/) for more info" + elog "or the installed examples for the default mapnik ogcserver config." + elog "" +} |