blob: 6766c1d2e83883ffa3cfc37341b4925974562b3d [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
MY_P="${PN}-${PV/_/-}"
PHP_EXT_OPTIONAL_USE="php"
PHP_EXT_NAME="php_mapscript"
PHP_EXT_S="${WORKDIR}/${MY_P}/mapscript/php/"
PHP_EXT_SKIP_PHPIZE="no"
USE_PHP="php5-4 php5-5"
PYTHON_DEPEND="python? 2"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="3.* *-jython"
PYTHON_MODNAME="mapscript.py"
#USE_RUBY="ruby18 ruby19"
#RUBY_OPTIONAL="yes"
WEBAPP_MANUAL_SLOT=yes
inherit eutils autotools depend.apache webapp distutils perl-module php-ext-source-r2 multilib # ruby-ng
DESCRIPTION="OpenSource development environment for constructing spatially enabled Internet-web applications"
HOMEPAGE="http://mapserver.org/"
SRC_URI="http://download.osgeo.org/mapserver/${MY_P}.tar.gz"
LICENSE="MIT"
KEYWORDS="~amd64 ~x86"
SLOT="0"
IUSE="bidi cairo gdal geos mysql opengl perl php postgis proj python threads tiff xml xslt" # ruby php tcl
REQUIRED_USE="php? ( ^^ ( php_targets_php5-4 php_targets_php5-5 ) )"
RDEPEND="
!${CATEGORY}/${PN}:${PV}
dev-libs/expat
dev-libs/fcgi
>=media-libs/gd-2.0.12[truetype,jpeg,png,zlib]
media-libs/giflib
net-misc/curl
virtual/jpeg
virtual/libiconv
x11-libs/agg
bidi? ( dev-libs/fribidi )
cairo? ( x11-libs/cairo )
gdal? ( >=sci-libs/gdal-1.8.0 )
geos? ( sci-libs/geos )
mysql? ( virtual/mysql )
opengl? (
media-libs/ftgl
media-libs/mesa
)
perl? ( dev-lang/perl:= )
postgis? ( dev-db/postgis )
proj? ( sci-libs/proj net-misc/curl )
tiff? (
media-libs/tiff
sci-libs/libgeotiff
)
xml? ( dev-libs/libxml2:2 )
xslt? ( dev-libs/libxslt[crypt] )
"
for i in perl python; do
SWIG_DEPEND+=" ${i}? ( >=dev-lang/swig-2.0 )"
done
DEPEND="${RDEPEND} ${SWIG_DEPEND}"
unset SWIG_DEPEND
unset i
need_apache2
S=${WORKDIR}/${MY_P}
_enter_build_dir() {
[[ -z ${1} ]] && die "Missing path argument"
local workdir=${1}
shift
[[ -z ${1} ]] && die "missing command argument"
echo ">>> Running \"${@}\" in work directory \"${workdir}\""
pushd "${workdir}" > /dev/null || die "Failed to enter directory"
${@} || die
popd > /dev/null
}
each_ruby_configure() { ${RUBY} extconf.rb || die ; }
ext-source-r2_src_install() {
local slot
for slot in $(php_get_slots); do
php_init_slot_env ${slot}
insinto "${EXT_DIR}"
newins "${PHP_EXT_NAME}.so" "${PHP_EXT_NAME}.so" || die "Unable to install extension"
done
php-ext-source-r2_createinifiles
}
pkg_setup() {
webapp_pkg_setup
use perl && perl_set_version
use python && python_pkg_setup
#use ruby && ruby-ng_pkg_setup
}
src_unpack() {
# unpack A and then copy the php thingies into workdir/php-slot
php-ext-source-r2_src_unpack
# HACK: and then remove it and replace by symlink
for slot in $(php_get_slots); do
rm -rf "${WORKDIR}/${slot}" || die
ln -s "${PHP_EXT_S}" "${WORKDIR}/${slot}" || die
done
}
src_prepare() {
epatch "${FILESDIR}/6.0.0_rc1-ldflags.patch" \
"${FILESDIR}/6.0.0_rc1-bool.patch" \
"${FILESDIR}/6.0.0_rc1-php_ldflags.patch" \
"${FILESDIR}/6.1.0-php-5.4.patch"
eautoreconf
}
src_configure() {
local myopts
if use gdal && use proj ; then
myopts+="
--with-wfs
--with-wcs
--with-wfsclient
--with-wmsclient
"
use xml && myopts+=" --with-sos"
fi
# some scripts require configure time options so place it here
if use php ; then
use php_targets_php5-4 && myopts+=" --with-php=${EPREFIX}/usr/$(get_libdir)/php5.4/include/php/"
use php_targets_php5-5 && myopts+=" --with-php=${EPREFIX}/usr/$(get_libdir)/php5.5/include/php/"
fi
# sde is ESRI package that you have to buy first
# oraclespatial needs oracle server for testing/usage
# note that some options accept just path, they are not on/off switches!
econf \
--without-oraclespatial \
--without-sde \
--with-libiconv \
--with-jpeg \
--with-gd \
--with-gif="${EPREFIX}/usr/" \
--with-wms \
--with-kml \
--with-curl-config \
--with-agg-svg-symbols \
--with-httpd="${APACHE_BIN}" \
--with-fastcgi \
$(use_with opengl ogl) \
$(use_with opengl ftgl) \
$(use_with proj) \
$(use_with threads) \
$(use_with geos) \
$(use_with gdal) \
$(use_with gdal ogr) \
$(use_with postgis) \
$(use_with mysql) \
$(use_with xml xml2-config) \
$(use_with xslt) \
$(use_with xslt xml-mapfile) \
$(use_with bidi fribidi-config) \
$(use_with cairo) \
${myopts}
#use ruby && _enter_build_dir "${S}/mapscript/ruby" "ln -s ../mapscript.i ./"
#use ruby && _enter_build_dir "${S}/mapscript/ruby" "ruby-ng_src_configure"
}
src_compile() {
default
use python && _enter_build_dir "${S}/mapscript/python" "distutils_src_compile"
use perl && _enter_build_dir "${S}/mapscript/perl" "perl-module_src_prep"
use perl && _enter_build_dir "${S}/mapscript/perl" "perl-module_src_compile"
#use php && php-ext-source-r2_src_compile # already compiled by the emake all
#use ruby && _enter_build_dir "${S}/mapscript/ruby" "ruby-ng_src_compile"
}
src_install() {
local step="Installing"
local extra_dir="fonts tests tests/vera symbols"
local i
dobin shp2img legend shptree shptreevis shp2img legend shptreetst scalebar \
sortshp tile4ms msencrypt mapserver-config
dodoc INSTALL README HISTORY.TXT
for i in ${extra_dir}; do
docinto /usr/share/doc/${PF}/${i}
dodoc -r ${i}/* || die
done
use python && _enter_build_dir "${S}/mapscript/python" "distutils_src_install"
use perl && _enter_build_dir "${S}/mapscript/perl" "perl-module_src_install"
use perl && _enter_build_dir "${S}/mapscript/perl" "perl_delete_localpod"
use php && ext-source-r2_src_install
#use ruby && _enter_build_dir "${S}/mapscript/ruby" "ruby-ng_src_install"
webapp_src_preinst
exeinto "${MY_CGIBINDIR}"
doexe "${S}/mapserv"
webapp_src_install
}
pkg_preinst() {
use perl && perl_set_version
}
pkg_postinst() {
webapp_pkg_postinst
use python && distutils_pkg_postinst
}
pkg_prerm() {
webapp_pkg_prerm
}
pkg_postrm() {
use python && distutils_pkg_postrm
}