Line 0
Link Here
|
|
|
1 |
# Copyright 1999-2019 Gentoo Authors |
2 |
# Distributed under the terms of the GNU General Public License v2 |
3 |
|
4 |
EAPI=6 |
5 |
|
6 |
MY_P="${PN}-${PV/_/-}" |
7 |
|
8 |
PHP_EXT_OPTIONAL_USE="php" |
9 |
PHP_EXT_NAME="php_mapscript" |
10 |
PHP_EXT_S="${WORKDIR}/${MY_P}/mapscript/php/" |
11 |
PHP_EXT_SKIP_PHPIZE="no" |
12 |
USE_PHP="php5-6" |
13 |
|
14 |
PYTHON_COMPAT=( python2_7 ) |
15 |
|
16 |
#USE_RUBY="ruby18 ruby19" |
17 |
#RUBY_OPTIONAL="yes" |
18 |
|
19 |
WEBAPP_MANUAL_SLOT=yes |
20 |
|
21 |
inherit eutils depend.apache webapp distutils-r1 flag-o-matic perl-module php-ext-source-r3 multilib cmake-utils # ruby-ng |
22 |
|
23 |
DESCRIPTION="Development environment for building spatially enabled webapps" |
24 |
HOMEPAGE="https://mapserver.org/" |
25 |
SRC_URI="https://download.osgeo.org/mapserver/${MY_P}.tar.gz" |
26 |
|
27 |
LICENSE="MIT" |
28 |
KEYWORDS="~amd64 ~x86" |
29 |
SLOT="0" |
30 |
IUSE="apache bidi cairo gdal geos mysql opengl oracle perl php postgis proj python threads tiff xml xslt" # ruby php tcl |
31 |
|
32 |
REQUIRED_USE=" |
33 |
php? ( php_targets_php5-6 ) |
34 |
vhosts? ( apache ) |
35 |
xslt? ( xml )" |
36 |
|
37 |
RDEPEND=" |
38 |
dev-libs/expat |
39 |
>=media-libs/gd-2.0.12[truetype,jpeg,png,zlib] |
40 |
media-libs/giflib |
41 |
net-misc/curl |
42 |
virtual/jpeg:= |
43 |
virtual/libiconv |
44 |
x11-libs/agg |
45 |
apache? ( dev-libs/fcgi ) |
46 |
bidi? ( dev-libs/fribidi |
47 |
media-libs/harfbuzz ) |
48 |
cairo? ( x11-libs/cairo ) |
49 |
gdal? ( >=sci-libs/gdal-1.8.0 ) |
50 |
geos? ( sci-libs/geos ) |
51 |
mysql? ( virtual/mysql ) |
52 |
opengl? ( |
53 |
media-libs/ftgl |
54 |
media-libs/mesa |
55 |
) |
56 |
oracle? ( |
57 |
dev-db/oracle-instantclient:= |
58 |
gdal? ( |
59 |
sci-libs/gdal:=[oracle] |
60 |
) |
61 |
) |
62 |
perl? ( dev-lang/perl:= ) |
63 |
postgis? ( dev-db/postgis ) |
64 |
proj? ( sci-libs/proj net-misc/curl ) |
65 |
tiff? ( |
66 |
media-libs/tiff:= |
67 |
sci-libs/libgeotiff |
68 |
) |
69 |
xml? ( dev-libs/libxml2:2 ) |
70 |
xslt? ( dev-libs/libxslt[crypt] ) |
71 |
" |
72 |
DEPEND="${RDEPEND} |
73 |
perl? ( >=dev-lang/swig-2.0 ) |
74 |
python? ( >=dev-lang/swig-2.0 )" |
75 |
|
76 |
want_apache2 apache |
77 |
|
78 |
PATCHES=( |
79 |
"${FILESDIR}/${PN}-7.0.0-sec-format.patch" # see https://github.com/mapserver/mapserver/pull/5248 |
80 |
"${FILESDIR}/${PN}-7.0.0-no-applicable-code.patch" |
81 |
"${FILESDIR}/${PN}-7.0.0-missing-nzz18.patch" |
82 |
"${FILESDIR}/${P}-missing-macro.patch" |
83 |
) |
84 |
|
85 |
S=${WORKDIR}/${MY_P} |
86 |
|
87 |
pkg_setup() { |
88 |
if apache ; then |
89 |
webapp_pkg_setup |
90 |
fi |
91 |
use perl && perl_set_version |
92 |
#use ruby && ruby-ng_pkg_setup |
93 |
} |
94 |
|
95 |
src_unpack() { |
96 |
default |
97 |
# HACK: Make symlinks for php targets |
98 |
local slot |
99 |
for slot in $(php_get_slots); do |
100 |
ln -s "${PHP_EXT_S}" "${WORKDIR}/${slot}" || die |
101 |
done |
102 |
} |
103 |
|
104 |
src_prepare() { |
105 |
local glibdir="${EPREFIX}/usr/include/glib-2.0" |
106 |
local usrglibdir="${EPREFIX}/usr/$(get_libdir)/glib-2.0/include" |
107 |
|
108 |
sed -e "s:^include_directories(:&${glibdir})\ninclude_directories(:" \ |
109 |
-i "${S}/CMakeLists.txt" || die |
110 |
sed -e "s:include_directories(:&${usrglibdir})\ninclude_directories(:" \ |
111 |
-i "${S}/CMakeLists.txt" || die |
112 |
|
113 |
cmake-utils_src_prepare |
114 |
} |
115 |
|
116 |
src_configure() { |
117 |
local mycmakeargs=( |
118 |
"-DCMAKE_SKIP_RPATH=ON" |
119 |
"-DWITH_SDE=OFF" |
120 |
"-DWITH_ICONV=ON" |
121 |
"-DWITH_GD=ON" |
122 |
"-DWITH_GIF=ON" |
123 |
"-DWITH_CURL=ON" |
124 |
"-DINSTALL_LIB_DIR=${ROOT}usr/$(get_libdir)" |
125 |
"-DWITH_APACHE_MODULE=$(usex apache ON OFF)" |
126 |
"-DWITH_PROJ=$(usex proj ON OFF)" |
127 |
"-DWITH_WMS=$(usex proj ON OFF)" |
128 |
"-DWITH_KML=$(usex xml ON OFF)" |
129 |
"-DWITH_FCGI=$(usex apache ON OFF)" |
130 |
"-DWITH_GEOS=$(usex geos ON OFF)" |
131 |
"-DWITH_GDAL=$(usex gdal ON OFF)" |
132 |
"-DWITH_OGR=$(usex gdal ON OFF)" |
133 |
"-DWITH_ORACLESPATIAL=$(usex oracle ON OFF)" |
134 |
"-DWITH_POSTGIS=$(usex postgis ON OFF)" |
135 |
"-DWITH_MYSQL=$(usex mysql ON OFF)" |
136 |
"-DWITH_LIBXML2=$(usex xml ON OFF)" |
137 |
"-DWITH_XMLMAPFILE=$(usex xslt ON OFF)" |
138 |
"-DWITH_FRIBIDI=$(usex bidi ON OFF)" |
139 |
"-DWITH_HARFBUZZ=$(usex bidi ON OFF)" |
140 |
"-DWITH_CAIRO=$(usex cairo ON OFF)" |
141 |
"-DWITH_PHP=$(usex php ON OFF)" |
142 |
"-DWITH_PYTHON=$(usex python ON OFF)" |
143 |
"-DWITH_PERL=$(usex perl ON OFF)" |
144 |
) |
145 |
|
146 |
if use gdal && use proj ; then |
147 |
mycmakeargs+=( "-DWITH_WFS=ON" |
148 |
"-DWITH_WCS=ON" |
149 |
"-DWITH_CLIENT_WMS=ON" |
150 |
"-DWITH_CLIENT_WFS=ON" |
151 |
"-DWITH_SOS=$(usex xml ON OFF)" |
152 |
) |
153 |
else |
154 |
mycmakeargs+=( "-DWITH_WFS=OFF" |
155 |
"-DWITH_WCS=OFF" |
156 |
"-DWITH_CLIENT_WMS=OFF" |
157 |
"-DWITH_CLIENT_WFS=OFF" |
158 |
"-DWITH_SOS=OFF" |
159 |
) |
160 |
fi |
161 |
|
162 |
if use php ; then |
163 |
local slot |
164 |
for slot in $(php_get_slots); do |
165 |
local php_config="${EPREFIX}/usr/$(get_libdir)/${slot}/bin/php-config" |
166 |
[[ -x ${php_config} ]] \ |
167 |
|| die "php-config '${php_config}' not valid or not executable" |
168 |
|
169 |
local php_include_dir=$(${php_config} --include-dir) |
170 |
[[ -d ${php_include_dir} ]] || die "PHP Include dir not found or not valid" |
171 |
|
172 |
mycmakeargs+=( |
173 |
-DPHP5_CONFIG_EXECUTABLE="${php_config}" |
174 |
-DPHP5_INCLUDES="${php_include_dir}" |
175 |
) |
176 |
done |
177 |
fi |
178 |
|
179 |
cmake-utils_src_configure |
180 |
} |
181 |
|
182 |
src_compile() { |
183 |
cmake-utils_src_compile |
184 |
} |
185 |
|
186 |
src_install() { |
187 |
cmake-utils_src_install |
188 |
|
189 |
if use php ; then |
190 |
php-ext-source-r3_createinifiles |
191 |
fi |
192 |
|
193 |
if apache ; then |
194 |
webapp_src_preinst |
195 |
fi |
196 |
|
197 |
exeinto "${MY_CGIBINDIR}" |
198 |
doexe "${S}_build/mapserv" |
199 |
|
200 |
if apache ; then |
201 |
webapp_src_install |
202 |
fi |
203 |
} |
204 |
|
205 |
pkg_postinst() { |
206 |
if apache ; then |
207 |
webapp_pkg_postinst |
208 |
fi |
209 |
} |
210 |
|
211 |
pkg_prerm() { |
212 |
if apache ; then |
213 |
webapp_pkg_prerm |
214 |
fi |
215 |
} |