summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-geosciences/mapserver/mapserver-5.4.2.ebuild')
-rw-r--r--sci-geosciences/mapserver/mapserver-5.4.2.ebuild287
1 files changed, 287 insertions, 0 deletions
diff --git a/sci-geosciences/mapserver/mapserver-5.4.2.ebuild b/sci-geosciences/mapserver/mapserver-5.4.2.ebuild
new file mode 100644
index 000000000000..cbeb8050a3ab
--- /dev/null
+++ b/sci-geosciences/mapserver/mapserver-5.4.2.ebuild
@@ -0,0 +1,287 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-geosciences/mapserver/mapserver-5.4.2.ebuild,v 1.1 2009/08/08 14:15:43 mescalinum Exp $
+
+PHP_EXT_NAME="php_mapscript php_proj"
+RUBY_OPTIONAL="yes"
+
+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.gis.umn.edu/"
+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 pdf 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
+ media-libs/jpeg
+ media-libs/freetype
+ >=media-libs/gd-2.0.12
+ 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 )
+ pdf? ( media-libs/pdflib )
+ perl? ( dev-perl/DBI )
+ php? ( dev-lang/php )
+ postgis? ( dev-db/postgis )
+ proj? ( sci-libs/proj net-misc/curl )
+ python? ( dev-lang/python )
+ ruby? ( dev-lang/ruby )
+ tcl? ( dev-lang/tcl )
+ tiff? ( media-libs/tiff sci-libs/libgeotiff )
+ unicode? ( virtual/libiconv )
+ xml? ( dev-libs/libxml2 )
+ 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
+
+ einfo "Checking for gd compiled with truetype support..."
+ if built_with_use media-libs/gd truetype ; then
+ einfo "Found truetype support; continuing..."
+ else
+ eerror "media-libs/gd must be compiled with truetype support,"
+ eerror "and you probably want jpeg and png support also."
+ eerror "Please re-emerge gd with the truetype USE flag."
+ die "gd not merged with truetype USE flag"
+ fi
+
+ confutils_use_conflict gdal tiff
+ confutils_use_depend_all java threads
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ 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
+ AT_GNUCONF_UPDATE="no" eautoreconf
+}
+
+src_compile() {
+ local step="Building"
+
+ 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 $(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 pdf) \
+ $(use_with flash ming) \
+ $(use_with java) \
+ $(use_with unicode iconv) \
+ $(use_with threads) \
+ ${myconf}
+
+ emake || 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 || die "Unable to build python mapscript"
+ fi
+
+ 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
+ ruby_emake
+ 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"
+ 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(){
+ 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
+ step="Installing"
+ 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
+
+ if use pdf ; then
+ dobin shp2pdf || die "Unable to setup shp2pdf"
+ fi
+
+ 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
+}
+
+pkg_prerm() {
+ webapp_pkg_prerm
+}