summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-geosciences/mapserver/mapserver-5.6.6.ebuild')
-rw-r--r--sci-geosciences/mapserver/mapserver-5.6.6.ebuild300
1 files changed, 300 insertions, 0 deletions
diff --git a/sci-geosciences/mapserver/mapserver-5.6.6.ebuild b/sci-geosciences/mapserver/mapserver-5.6.6.ebuild
new file mode 100644
index 000000000000..16b39a25f1b1
--- /dev/null
+++ b/sci-geosciences/mapserver/mapserver-5.6.6.ebuild
@@ -0,0 +1,300 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-geosciences/mapserver/mapserver-5.6.6.ebuild,v 1.1 2011/05/02 10:16:17 scarabeus Exp $
+
+EAPI=3
+
+PHP_EXT_NAME="php_mapscript php_proj"
+RUBY_OPTIONAL="yes"
+
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+PYTHON_MODNAME="mapscript.py"
+
+inherit eutils autotools confutils multilib distutils depend.php perl-module php-ext-source-r1 depend.apache webapp ruby java-pkg-opt-2
+
+WEBAPP_MANUAL_SLOT=yes
+
+DESCRIPTION="OpenSource development environment for constructing spatially enabled Internet-web applications."
+HOMEPAGE="http://mapserver.org"
+SRC_URI="http://download.osgeo.org/mapserver/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+
+# I must check for mygis use flag availability
+IUSE="agg doc flash gdal geos java perl php postgis proj python ruby tcl threads tiff unicode xml xpm" # mono
+
+# compilation fails with jdk > 1.4 on some native part probably
+RDEPEND="
+ media-libs/libpng
+ virtual/jpeg
+ media-libs/freetype
+ >=media-libs/gd-2.0.12[truetype,jpeg,png]
+ sys-libs/zlib
+ agg? ( x11-libs/agg )
+ flash? ( media-libs/ming )
+ gdal? ( >sci-libs/gdal-1.2.6 )
+ geos? ( sci-libs/geos )
+ java? ( >=virtual/jdk-1.4 )
+ perl? ( dev-perl/DBI )
+ php? ( dev-lang/php )
+ postgis? ( dev-db/postgis )
+ proj? ( sci-libs/proj net-misc/curl )
+ ruby? ( dev-lang/ruby )
+ tcl? ( dev-lang/tcl )
+ tiff? ( media-libs/tiff sci-libs/libgeotiff )
+ unicode? ( virtual/libiconv )
+ xml? ( dev-libs/libxml2:2 )
+ xpm? ( x11-libs/libXpm )"
+
+DEPEND="${RDEPEND}
+ java? ( dev-lang/swig )
+ perl? ( dev-lang/swig )
+ ruby? ( dev-lang/swig )
+ python? ( dev-lang/swig )
+ php? ( dev-lang/swig )
+ tcl? ( dev-lang/swig )"
+want_apache2
+
+cd_script() {
+ einfo "$2 the mapserver $1-mapscript"
+ cd "${S}"/mapscript/$1 || die "Unable to go into $1 mapscript dir"
+}
+
+pkg_setup() {
+ #webapp_pkg_setup
+ use java && java-pkg-opt-2_pkg_setup
+ use perl && perl-module_pkg_setup
+ use php && has_php
+ use python && python_pkg_setup
+
+ confutils_use_conflict gdal tiff
+ confutils_use_depend_all java threads
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/5.4.2-ldflags.patch
+
+ if use tcl ; then
+ epatch "${FILESDIR}"/${PN}_tcl.patch-r1
+ sed -i -e "s:@libdir@:$(get_libdir):g" mapscript/tcl/Makefile.in \
+ || die "failed to fix libdir in Makefile.in"
+ fi
+ eautoreconf
+}
+
+src_configure() {
+ local step="Configuration"
+
+ local myconf="--with-png --with-jpeg --with-zlib --with-freetype"
+ use apache2 && myconf="${myconf} --with-httpd=${APACHE_BIN}"
+ use geos && myconf="${myconf} --with-geos=$(type -P geos-config)"
+
+ local MYGPUSE="wfs wcs wfsclient"
+ if use gdal && use proj ; then
+ myconf="--with-ogr ${myconf}";
+ for i in ${MYGPUSE}; do
+ myconf="${myconf} --with-${i}"
+ done
+ use xml && myconf="${myconf} --with-sos"
+ fi
+
+ use proj && myconf="${myconf} --with-wmsclient"
+ use php && myconf="${myconf} --with-php=${PHPPREFIX}/include/php"
+
+ if use perl || use python || use ruby || use tcl || use php ; then
+ myconf="${myconf} --with-mapscript"
+ fi
+
+ cd "${S}"
+ econf \
+ --without-pdf \
+ $(use_with gdal) \
+ $(use_with agg) \
+ $(use_with perl) \
+ $(use_with python) \
+ $(use_with ruby) \
+ $(use_with tcl) \
+ $(use_with proj) \
+ $(use_with postgis) \
+ $(use_with tiff) \
+ $(use_with flash ming) \
+ $(use_with java) \
+ $(use_with unicode iconv) \
+ $(use_with threads) \
+ ${myconf}
+
+ if use ruby; then
+ cd_script ruby ${step}
+ RUBY_ECONF="-I${D}"
+ ruby_econf
+ cp ../mapscript.i . || die "Unable to find mapscript.i"
+ sed -e "s:ruby.h defines.h::g" -i ./Makefile
+ fi
+
+ if use tcl; then
+ cd_script tcl ${step}
+ sed "s:perlvars:mapscriptvars:" -i configure
+ sed -e "s:tail -:tail -n :g" -e "s:head -:head -n :g" -i configure ||\
+ die "Unable to modify the configure file"
+ econf --with-tcl=/usr
+ touch tclmodule.i
+ # do not comment this sed out again because it will plain break build otherwise
+ # thanks in advance
+ sed -e "s:-DTCL_WIDE_INT_TYPE=long long:-DTCL_WIDE_INT_TYPE=long\\\ long:g" \
+ -i Makefile || die "Unable to modify Makefile"
+ fi
+}
+
+src_compile() {
+ local step="Building"
+
+ # bug #279627
+ emake -j1 || die "make failed"
+
+ if use perl; then
+ cd_script perl ${step}
+ perl-module_src_compile
+ fi
+
+ if use php && use proj; then
+ cd_script php3 ${step}
+ emake php_proj.so || die "unable to built php_proj.so"
+ fi
+
+ if use python; then
+ cd_script python ${step}
+ distutils_src_compile
+ fi
+
+ if use ruby; then
+ cd_script ruby ${step}
+ ruby_emake
+ fi
+
+ if use tcl; then
+ cd_script tcl ${step}
+ emake || die "Unable to build tcl mapscript"
+ fi
+
+ if use java; then
+ cd_script java ${step}
+ emake interface || die "Unable to build java mapscript"
+ emake all || die "Unable to build java mapscript"
+ fi
+
+}
+
+src_test(){
+ local step="Testing"
+
+ if use java ; then
+ cd_script java test
+ emake test || die "Test failed"
+ # We need to fix the tests to make them pass
+ sed -i -e "s:setTransparency:setOpacity:g" \
+ "${S}"/mapscript/java/tests/threadtest/MapThread.java \
+ || die "fixing of tests failed"
+ emake threadtests || die "Threadtests failed"
+ fi
+}
+
+mapscript_install_examples() {
+ elog "$1-mapscript examples could be found in the following directory"
+ elog "/usr/share/doc/${PF}/mapscript/examples/$1"
+ insinto /usr/share/doc/${PF}/mapscript/examples/$1/
+ doins examples/* || die "Unable to install specified sample data"
+}
+
+src_install() {
+ local step="Installing"
+
+ local extra_dir="fonts tests tests/vera symbols"
+
+ dodir /usr /usr/bin
+
+ into /usr
+
+ if use php ; then
+ cd_script php3 ${step}
+ for i in *.so ; do
+ cp ${i} "${WORKDIR}"/${i/.so}-default.so || die "failed to copy php extension"
+ PHP_EXT_NAME="${i/.so}"
+ php-ext-source-r1_src_install
+ done
+
+ mapscript_install_examples php
+ fi
+
+ if use ruby ; then
+ cd_script ruby ${step}
+ ruby_einstall
+ mapscript_install_examples ruby
+ fi
+
+ if use perl ; then
+ cd_script perl ${step}
+ perl-module_src_install
+ mapscript_install_examples perl
+ fi
+
+ if use tcl ; then
+ cd_script tcl ${step}
+ sed "s:\$(TCL_EXEC_PREFIX):\$(DESTDIR)\$(TCL_EXEC_PREFIX):g" -i Makefile
+ emake -j1 DESTDIR="${D}" install || \
+ die "Unable to setup tcl mapscript support"
+ mapscript_install_examples tcl
+ fi
+
+ if use python ; then
+ cd_script python ${step}
+ distutils_src_install
+ mapscript_install_examples python
+ fi
+
+ if use java ; then
+ cd_script java ${step}
+ java-pkg_dojar mapscript.jar
+ java-pkg_doso libmapscript.so
+ mapscript_install_examples java
+ fi
+
+ cd "${S}"
+ into /usr
+
+ dobin shp2img legend shptree shptreevis shp2img legend shptreetst scalebar \
+ sortshp tile4ms msencrypt mapserver-config \
+ || die "Unable to setup mapserver tools"
+
+ dodoc INSTALL README HISTORY.TXT || die "Unable to setup documentation"
+
+ for i in ${extra_dir}; do
+ insinto /usr/share/doc/${PF}/${i}
+ doins ${i}/* || die "Unable to add extra_dir to document tree"
+ done
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}/rfc
+ doins rfc/*
+ fi
+
+ webapp_src_preinst
+ chmod +x "${S}"/mapserv || die "Unable to find mapserv"
+ cp "${S}"/mapserv "${D}"/${MY_CGIBINDIR} || die "Unable to install mapserv"
+ webapp_src_install
+}
+
+pkg_postinst() {
+ webapp_pkg_postinst
+ use python && distutils_pkg_postinst
+}
+
+pkg_prerm() {
+ webapp_pkg_prerm
+}
+
+pkg_postrm() {
+ use python && distutils_pkg_postrm
+}