Annotation of /smage/branches/alx07x-stable/extras/php/php-7.3.7-r2.smage2
Parent Directory | Revision Log
Revision 13620 -
(hide annotations)
(download)
Fri Jul 12 12:08:38 2019 UTC (4 years, 11 months ago) by niro
File size: 20721 byte(s)
Fri Jul 12 12:08:38 2019 UTC (4 years, 11 months ago) by niro
File size: 20721 byte(s)
-release branches/alx07x-stable
1 | niro | 13462 | # $Id$ |
2 | |||
3 | PNAME="php" | ||
4 | PVER="7.3.7" | ||
5 | PBUILD="r2" | ||
6 | |||
7 | SPLIT_PACKAGES="php | ||
8 | php-cgi | ||
9 | php-apache | ||
10 | php-embedded | ||
11 | php-pear | ||
12 | php-bcmath | ||
13 | php-curl | ||
14 | php-dba | ||
15 | php-gd | ||
16 | php-gmp | ||
17 | php-intl | ||
18 | php-mbstring | ||
19 | php-pdo | ||
20 | php-mysql | ||
21 | php-opcache | ||
22 | php-process | ||
23 | php-soap | ||
24 | php-sqlite | ||
25 | php-xml | ||
26 | php-xmlrpc | ||
27 | php-json" | ||
28 | #php-pdo-dblib | ||
29 | #php-imap | ||
30 | #php-mcrypt | ||
31 | #php-snmp | ||
32 | #php-pgsql | ||
33 | #php-recode | ||
34 | |||
35 | # alx disabled: | ||
36 | #php-fpm | ||
37 | #php-enchant | ||
38 | #php-ldap | ||
39 | #php-odbc | ||
40 | #php-pspell | ||
41 | #php-tidy | ||
42 | #php-phpdbg | ||
43 | |||
44 | # splits with more then one module: | ||
45 | # php-odbc = odbc, pdo_odbc | ||
46 | # php-mysql = mysqlnd, mysqli, pdo_mysql | ||
47 | # php-xml = xsl, wddx, dom, xmlreader, xmlwriter | ||
48 | # php-process = sysvmsg, sysvsem, sysvshm, posix | ||
49 | # php-sqlite = sqlite, sqlite3, pdo_sqlite | ||
50 | # | ||
51 | # todo: mssql -> requires freetds | ||
52 | # mcrypt -> requires libmcrypt | ||
53 | # pdo-dpblib -> requires freetds | ||
54 | # recode -> requires librecode | ||
55 | # ToDO: mcrypt, mhash, maintainer-zts, pgsql, interbase/firebird, pdo-dblib | ||
56 | |||
57 | PCAT="dev-lang" | ||
58 | HOMEPAGE="http://php.net/" | ||
59 | |||
60 | DEPEND_COMMON=">= sys-libs/ncurses-6.1 | ||
61 | >= sys-libs/zlib-1.2 | ||
62 | >= app-arch/bzip2-1 | ||
63 | >= dev-libs/openssl-1.1" | ||
64 | DEPEND_COMMON_DEV=">= sys-libs/ncurses-dev-6.1 | ||
65 | >= sys-libs/zlib-dev-1.2 | ||
66 | >= app-arch/bzip2-dev-1 | ||
67 | >= dev-libs/openssl-dev-1.1" | ||
68 | #>= sys-libs/readline-7.0 | ||
69 | DEPEND_STDCPP=">= sys-libs/libstdc++-8.3" | ||
70 | DEPEND_STDCPP_DEV=">= sys-libs/libstdc++-dev-8.3" | ||
71 | DEPEND_APACHE=">= net-www/apache2-2.4" | ||
72 | #DEPEND_ASPELL=">= app-text/aspell-0.60" | ||
73 | DEPEND_BDB=">= dev-db/db-6.2" | ||
74 | DEPEND_BDB_DEV=">= dev-db/db-dev-6.2" | ||
75 | DEPEND_CURL=">= net-libs/libcurl-7.61" | ||
76 | DEPEND_CURL_DEV=">= net-libs/libcurl-dev-7.61" | ||
77 | #DEPEND_ENCHANT=">= app-text/enchant-1.6" | ||
78 | DEPEND_GD=">= virtual/libjpeg | ||
79 | >= media-libs/libpng-1.5 | ||
80 | >= x11-libs/libXpm-4 | ||
81 | >= media-libs/freetype-2.6 | ||
82 | >= media-libs/gd-2.1 | ||
83 | >= media-libs/t1lib-5.1" | ||
84 | DEPEND_GD_DEV=">= virtual/libjpeg-dev | ||
85 | >= media-libs/libpng-dev-1.5 | ||
86 | >= x11-libs/libXpm-dev-4 | ||
87 | >= media-libs/freetype-dev-2.6 | ||
88 | >= media-libs/gd-dev-2.1 | ||
89 | >= media-libs/t1lib-dev-5.1" | ||
90 | DEPEND_GMP=">= dev-libs/gmp-6" | ||
91 | DEPEND_GMP_DEV=">= dev-libs/gmp-dev-6" | ||
92 | DEPEND_INTL=">= dev-libs/icu-64.2 | ||
93 | >= sys-libs/libgcc-8.3" | ||
94 | DEPEND_INTL_DEV=">= dev-libs/icu-dev-64.2 | ||
95 | >= sys-libs/libgcc-dev-8.3" | ||
96 | #DEPEND_LDAP=">= net-nds/libldap-2.4" | ||
97 | DEPEND_MYSQL=">= virtual/mysql" | ||
98 | #DEPEND_ODBC=">= dev-db/unixodbc-2.3" | ||
99 | DEPEND_PCRE=">= dev-libs/libpcre-8.37" | ||
100 | DEPEND_PCRE_DEV=">= dev-libs/libpcre-dev-8.37" | ||
101 | #DEPEMD_SASL=">= dev-libs/cyrus-sasl-2.1.23" | ||
102 | DEPEND_SQLITE=">= dev-db/sqlite-3.20" | ||
103 | DEPEND_SQLITE_DEV=">= dev-db/sqlite-dev-3.20" | ||
104 | #DEPEND_TIDY=">= app-text/htmltidy-5.4" | ||
105 | DEPEND_XML=">= dev-libs/libxml2-2.9" | ||
106 | DEPEND_XML_DEV=">= dev-libs/libxml2-dev-2.9" | ||
107 | DEPEND_XSLT=">= dev-libs/libxslt-1.1.26" | ||
108 | DEPEND_XSLT_DEV=">= dev-libs/libxslt-dev-1.1.26" | ||
109 | DEPEND_SYSTEMD=">= sys-apps/systemd-230" | ||
110 | DEPEND_SYSTEMD_DEV=">= sys-apps/systemd-dev-230" | ||
111 | |||
112 | ALX_DEV_DEPEND="${DEPEND_COMMON_DEV} | ||
113 | ${DEPEND_STDCPP_DEV} | ||
114 | ${DEPEND_BDB_DEV} | ||
115 | ${DEPEND_CURL_DEV} | ||
116 | ${DEPEND_GD_DEV} | ||
117 | ${DEPEND_GMP_DEV} | ||
118 | ${DEPEND_INTL_DEV} | ||
119 | ${DEPEND_PCRE_DEV} | ||
120 | ${DEPEND_SQLITE_DEV} | ||
121 | ${DEPEND_XML_DEV} | ||
122 | ${DEPEND_XSLT_DEV} | ||
123 | ${DEPEND_SYSTEMD_DEV}" | ||
124 | |||
125 | SDEPEND="${DEPEND_COMMON} | ||
126 | ${DEPEND_STDCPP} | ||
127 | ${DEPEND_APACHE} | ||
128 | ${DEPEND_ASPELL} | ||
129 | ${DEPEND_BDB} | ||
130 | ${DEPEND_CURL} | ||
131 | ${DEPEND_GD} | ||
132 | ${DEPEND_GMP} | ||
133 | ${DEPEND_INTL} | ||
134 | ${DEPEND_MYSQL} | ||
135 | ${DEPEND_PCRE} | ||
136 | ${DEPEND_SQLITE} | ||
137 | ${DEPEND_XML} | ||
138 | ${DEPEND_XSLT} | ||
139 | ${DEPEND_SYSTEMD} | ||
140 | >= sys-dev/m4-1.4 | ||
141 | >= sys-dev/libtool-1.5 | ||
142 | >= sys-dev/gettext-0.17 | ||
143 | >= virtual/sed | ||
144 | >= sys-dev/bison-2.5 | ||
145 | ${ALX_DEV_DEPEND}" | ||
146 | |||
147 | #${DEPEND_ENCHANT} | ||
148 | #${DEPEND_LDAP} | ||
149 | #${DEPEND_ODBC} | ||
150 | #${DEPEND_SASL} | ||
151 | #${DEPEND_TIDY} | ||
152 | |||
153 | SRCFILE="${PNAME/5/}-${PVER}.tar.bz2" | ||
154 | SRCDIR="${BUILDDIR}/${PNAME/5/}-${PVER}" | ||
155 | |||
156 | sminclude mtools php systemd | ||
157 | msetfeature "!check" # no check target | ||
158 | |||
159 | SRC_URI=( | ||
160 | http://de2.php.net/distributions/${SRCFILE} | ||
161 | http://us2.php.net/distributions/${SRCFILE} | ||
162 | mirror://${PNAME}/${SRCFILE} | ||
163 | mirror://${PNAME}/${PNAME}-5.4.19-db6.patch | ||
164 | mirror://${PNAME}/${PNAME}-5.2.4-multilib.patch | ||
165 | mirror://${PNAME}/${PNAME}-7.1.6-httpd-config.patch | ||
166 | mirror://${PNAME}/php${PVER%%.*}_module.conf | ||
167 | mirror://${PNAME}/php-fpm.conf | ||
168 | mirror://${PNAME}/php-fpm-www.conf | ||
169 | mirror://${PNAME}/php-fpm.service | ||
170 | mirror://${PNAME}/php-fpm.logrotate | ||
171 | mirror://${PNAME}/php-fpm.confd | ||
172 | mirror://${PNAME}/php-fpm.tmpfilesd | ||
173 | ) | ||
174 | |||
175 | # 7.3 stable series | ||
176 | UP2TAG="7.3" | ||
177 | UP2DATE="updatecmd ${HOMEPAGE} | grep 'Current.*${UP2TAG}.*Stable' | sed 's/.*\:\ \(.*\)/\1/'" | ||
178 | |||
179 | split_info_php() | ||
180 | { | ||
181 | DESCRIPTION="PHP Hypertext Preprocessor, a scripting language especially suited for web development." | ||
182 | DEPEND="${DEPEND_COMMON} | ||
183 | ${DEPEND_XML} | ||
184 | ${DEPEND_PCRE} | ||
185 | ${DEPEND_SYSTEMD}" | ||
186 | } | ||
187 | |||
188 | split_info_php-cgi() | ||
189 | { | ||
190 | DESCRIPTION="GI and FCGI SAPI for PHP." | ||
191 | DEPEND="== dev-lang/php-${PVER} | ||
192 | ${DEPEND_XML} | ||
193 | ${DEPEND_PCRE}" | ||
194 | PCAT="dev-php" | ||
195 | } | ||
196 | |||
197 | split_info_php-apache() | ||
198 | { | ||
199 | DESCRIPTION="Apache SAPI for PHP." | ||
200 | DEPEND="== dev-lang/php-${PVER} | ||
201 | ${DEPEND_XML} | ||
202 | ${DEPEND_PCRE} | ||
203 | ${DEPEND_APACHE} | ||
204 | ${DEPEND_STDCPP}" | ||
205 | PCAT="dev-php" | ||
206 | } | ||
207 | |||
208 | split_info_php-embedded() | ||
209 | { | ||
210 | DESCRIPTION="PHP library for embedding in applications." | ||
211 | DEPEND="== dev-lang/php-${PVER} | ||
212 | ${DEPEND_XML} | ||
213 | ${DEPEND_PCRE} | ||
214 | ${DEPEND_STDCPP}" | ||
215 | PCAT="dev-php" | ||
216 | } | ||
217 | |||
218 | split_info_php-pear() | ||
219 | { | ||
220 | DESCRIPTION="PHP Extension and Application Repository." | ||
221 | DEPEND="== dev-lang/php-${PVER}" | ||
222 | PCAT="dev-php" | ||
223 | } | ||
224 | |||
225 | #split_info_php-fpm() | ||
226 | #{ | ||
227 | # DESCRIPTION="PHP FastCGI Process Manager." | ||
228 | # DEPEND="== dev-lang/php-${PVER} | ||
229 | # ${DEPEND_SYSTEMD}" | ||
230 | # PCAT="dev-php" | ||
231 | #} | ||
232 | |||
233 | split_info_php-bcmath() | ||
234 | { | ||
235 | DESCRIPTION="A module for PHP applications for using the bcmath library." | ||
236 | DEPEND="== dev-lang/php-${PVER}" | ||
237 | PCAT="dev-php" | ||
238 | } | ||
239 | |||
240 | split_info_php-curl() | ||
241 | { | ||
242 | DESCRIPTION="A module for PHP applications that use curl." | ||
243 | DEPEND="== dev-lang/php-${PVER} | ||
244 | ${DEPEND_CURL}" | ||
245 | PCAT="dev-php" | ||
246 | } | ||
247 | |||
248 | split_info_php-dba() | ||
249 | { | ||
250 | DESCRIPTION="A database abstraction layer module for PHP applications." | ||
251 | DEPEND="== dev-lang/php-${PVER}" | ||
252 | PCAT="dev-php" | ||
253 | } | ||
254 | |||
255 | #split_info_php-enchant() | ||
256 | #{ | ||
257 | # DESCRIPTION="Human Language and Character Encoding Support." | ||
258 | # DEPEND="== dev-lang/php-${PVER} | ||
259 | # ${DEPEND_ENCHANT}" | ||
260 | # PCAT="dev-php" | ||
261 | #} | ||
262 | |||
263 | split_info_php-gd() | ||
264 | { | ||
265 | DESCRIPTION="A module for PHP applications for using the gd graphics library." | ||
266 | DEPEND="== dev-lang/php-${PVER} | ||
267 | ${DEPEND_GD}" | ||
268 | PCAT="dev-php" | ||
269 | } | ||
270 | |||
271 | split_info_php-gmp() | ||
272 | { | ||
273 | DESCRIPTION="A module for PHP applications for using the gmp library." | ||
274 | DEPEND="== dev-lang/php-${PVER} | ||
275 | ${DEPEND_GMP}" | ||
276 | PCAT="dev-php" | ||
277 | } | ||
278 | |||
279 | split_info_php-intl() | ||
280 | { | ||
281 | DESCRIPTION="Internationalization extension for PHP applications." | ||
282 | DEPEND="== dev-lang/php-${PVER} | ||
283 | ${DEPEND_INTL}" | ||
284 | PCAT="dev-php" | ||
285 | } | ||
286 | |||
287 | #split_info_php-ldap() | ||
288 | #{ | ||
289 | # DESCRIPTION="A module for PHP applications that use LDAP." | ||
290 | # DEPEND="== dev-lang/php-${PVER} | ||
291 | # ${DEPEND_SASL} | ||
292 | # ${DEPEND_LDAP}" | ||
293 | # PCAT="dev-php" | ||
294 | #} | ||
295 | |||
296 | split_info_php-mbstring() | ||
297 | { | ||
298 | DESCRIPTION="A module for PHP applications which need multi-byte string handling." | ||
299 | DEPEND="== dev-lang/php-${PVER}" | ||
300 | PCAT="dev-php" | ||
301 | } | ||
302 | |||
303 | split_info_php-mysql() | ||
304 | { | ||
305 | DESCRIPTION="Modules for PHP applications that use MySQL databases." | ||
306 | DEPEND="== dev-lang/php-${PVER} | ||
307 | == dev-php/php-pdo-${PVER} | ||
308 | ${DEPEND_MYSQL}" | ||
309 | PCAT="dev-php" | ||
310 | } | ||
311 | |||
312 | #split_info_php-odbc() | ||
313 | #{ | ||
314 | # DESCRIPTION="Modules for PHP applications that use ODBC databases." | ||
315 | # DEPEND="== dev-lang/php-${PVER} | ||
316 | # == dev-php/php-pdo-${PVER} | ||
317 | # ${DEPEND_ODBC}" | ||
318 | # PCAT="dev-php" | ||
319 | #} | ||
320 | |||
321 | split_info_php-opcache() | ||
322 | { | ||
323 | DESCRIPTION="The Zend OPcache." | ||
324 | DEPEND="== dev-lang/php-${PVER}" | ||
325 | PCAT="dev-php" | ||
326 | } | ||
327 | |||
328 | split_info_php-pdo() | ||
329 | { | ||
330 | DESCRIPTION="A database access abstraction module for PHP applications." | ||
331 | DEPEND="== dev-lang/php-${PVER}" | ||
332 | PCAT="dev-php" | ||
333 | } | ||
334 | |||
335 | split_info_php-process() | ||
336 | { | ||
337 | DESCRIPTION="Modules for PHP script using system process interfaces." | ||
338 | DEPEND="== dev-lang/php-${PVER}" | ||
339 | PCAT="dev-php" | ||
340 | } | ||
341 | |||
342 | #split_info_php-pspell() | ||
343 | #{ | ||
344 | # DESCRIPTION="A module for PHP applications for using pspell interfaces." | ||
345 | # DEPEND="== dev-lang/php-${PVER} | ||
346 | # ${DEPEND_ASPELL}" | ||
347 | # PCAT="dev-php" | ||
348 | #} | ||
349 | |||
350 | split_info_php-soap() | ||
351 | { | ||
352 | DESCRIPTION="A module for PHP applications that use the SOAP protocol." | ||
353 | DEPEND="== dev-lang/php-${PVER} | ||
354 | ${DEPEND_XML}" | ||
355 | PCAT="dev-php" | ||
356 | } | ||
357 | |||
358 | split_info_php-sqlite() | ||
359 | { | ||
360 | DESCRIPTION="Modules for PHP applications that use SQLite databases." | ||
361 | DEPEND="== dev-lang/php-${PVER} | ||
362 | == dev-php/php-pdo-${PVER} | ||
363 | ${DEPEND_SQLITE}" | ||
364 | PCAT="dev-php" | ||
365 | } | ||
366 | |||
367 | #split_info_php-tidy() | ||
368 | #{ | ||
369 | # DESCRIPTION="Standard PHP module provides tidy library support." | ||
370 | # DEPEND="== dev-lang/php-${PVER} | ||
371 | # ${DEPEND_TIDY}" | ||
372 | # PCAT="dev-php" | ||
373 | #} | ||
374 | |||
375 | split_info_php-xml() | ||
376 | { | ||
377 | DESCRIPTION="Modules for PHP applications which use XML." | ||
378 | DEPEND="== dev-lang/php-${PVER} | ||
379 | ${DEPEND_XML} | ||
380 | ${DEPEND_XSLT}" | ||
381 | PCAT="dev-php" | ||
382 | } | ||
383 | |||
384 | split_info_php-xmlrpc() | ||
385 | { | ||
386 | DESCRIPTION="A module for PHP applications which use the XML-RPC protocol." | ||
387 | DEPEND="== dev-lang/php-${PVER} | ||
388 | ${DEPEND_XML}" | ||
389 | PCAT="dev-php" | ||
390 | } | ||
391 | |||
392 | split_info_php-json() | ||
393 | { | ||
394 | DESCRIPTION="JavaScript Object Notation extension for PHP." | ||
395 | DEPEND="== dev-lang/php-${PVER}" | ||
396 | PCAT="dev-php" | ||
397 | } | ||
398 | |||
399 | split_info_php-phpdbg() | ||
400 | { | ||
401 | DESCRIPTION="The interactive PHP debugger." | ||
402 | DEPEND="== dev-lang/php-${PVER}" | ||
403 | PCAT="dev-php" | ||
404 | } | ||
405 | |||
406 | # install-helper function | ||
407 | install_php_extensions() | ||
408 | { | ||
409 | local extensions="$@" | ||
410 | [[ -z ${extensions} ]] && die "no extensions given" | ||
411 | |||
412 | # set default PHP_BUILD_DIR, env can override this | ||
413 | : ${PHP_BUILD_DIR="${BUILDDIR}/build-php"} | ||
414 | |||
415 | cd ${PHP_BUILD_DIR} | ||
416 | |||
417 | # needed directories | ||
418 | minstalldir ${PHP_CONFIG_SCAN_DIR} || die | ||
419 | minstalldir ${PHP_EXTENSIONS_DIR} || die | ||
420 | |||
421 | local MCONFIG | ||
422 | local ext | ||
423 | for ext in ${extensions} | ||
424 | do | ||
425 | # install extensions and the config ini | ||
426 | minstallexec modules/${ext}.so ${PHP_EXTENSIONS_DIR} || die "mod ${ext}" | ||
427 | MCONFIG="${PHP_CONFIG_SCAN_DIR}/${ext}.ini" | ||
428 | mclearconfig || die "ini ${ext}" | ||
429 | # -hack -fixme - mysqlnd must be loaded before mysqli | ||
430 | if [[ ${ext} = mysqli ]] | ||
431 | then | ||
432 | maddconfig "extension=mysqlnd" || die "ini ${ext}" | ||
433 | fi | ||
434 | maddconfig "extension=${ext}" || die "ini ${ext}" | ||
435 | done | ||
436 | } | ||
437 | |||
438 | src_prepare() | ||
439 | { | ||
440 | munpack ${SRCFILE} || die | ||
441 | cd ${SRCDIR} | ||
442 | |||
443 | # version branding | ||
444 | sed -i "s:^\(PHP_EXTRA_VERSION=\).*:\1-magellan-${PBUILD}:" configure.ac || die | ||
445 | |||
446 | # support >= db-6.0 | ||
447 | # see for more issues: https://bugs.php.net/bug.php?id=65426 | ||
448 | mpatch ${PNAME}-5.4.19-db6.patch || die | ||
449 | |||
450 | # fixes multilib search pathes | ||
451 | mpatch ${PNAME}-5.2.4-multilib.patch || die | ||
452 | |||
453 | # do not touch the system httpd.conf | ||
454 | mpatch ${PNAME}-7.1.6-httpd-config.patch || die | ||
455 | |||
456 | # fully regenerate aclocal too | ||
457 | if [ -f aclocal.m4 ] | ||
458 | then | ||
459 | rm aclocal.m4 || die | ||
460 | fi | ||
461 | |||
462 | # rebuild configure | ||
463 | mautoreconf || die | ||
464 | |||
465 | # force use of system libtool | ||
466 | mlibtoolize || die | ||
467 | } | ||
468 | |||
469 | src_compile() | ||
470 | { | ||
471 | local php_base_config | ||
472 | local php_extensions | ||
473 | local php_disable_shared_extensions | ||
474 | local current_run | ||
475 | |||
476 | # --with-libdir needed, doesn't honor --libdir | ||
477 | php_base_config="--libdir=/usr/lib \ | ||
478 | --with-libdir=$(mlibdir) \ | ||
479 | --with-config-file-path=${PHP_CONFIG_DIR} \ | ||
480 | --with-config-file-scan-dir=${PHP_CONFIG_SCAN_DIR} \ | ||
481 | --enable-inline-optimization \ | ||
482 | --disable-rpath \ | ||
483 | --disable-debug \ | ||
484 | --disable-static \ | ||
485 | --enable-shared \ | ||
486 | --without-pear" | ||
487 | |||
488 | # --with-pdo-dblib=shared,/usr , mssql support, requires freetds | ||
489 | php_extensions="--with-zlib \ | ||
490 | --with-bz2=shared \ | ||
491 | --enable-bcmath=shared \ | ||
492 | --enable-calendar=shared \ | ||
493 | --enable-exif=shared \ | ||
494 | --enable-ftp=shared \ | ||
495 | --with-gettext=shared \ | ||
496 | --enable-mbstring=shared \ | ||
497 | --enable-mbregex \ | ||
498 | --with-ncurses=shared \ | ||
499 | --with-openssl=shared \ | ||
500 | --with-jpeg-dir=/usr \ | ||
501 | --with-png-dir=/usr \ | ||
502 | --with-xpm-dir=/usr \ | ||
503 | --with-gd=shared \ | ||
504 | --enable-gd-native-ttf \ | ||
505 | --with-freetype-dir=shared,/usr \ | ||
506 | --with-ttf \ | ||
507 | --with-t1lib=/usr \ | ||
508 | --with-pcre-regex \ | ||
509 | --with-gmp=shared \ | ||
510 | --with-curl=shared \ | ||
511 | --with-curlwrappers \ | ||
512 | --enable-dba=shared \ | ||
513 | --with-db4=shared \ | ||
514 | --enable-mysqlnd=shared \ | ||
515 | --with-mysqli=shared,mysqlnd \ | ||
516 | --without-unixODBC \ | ||
517 | --with-sqlite=shared \ | ||
518 | --with-sqlite3=shared \ | ||
519 | --enable-pdo=shared \ | ||
520 | --without-pdo-odbc \ | ||
521 | --with-pdo-mysql=shared,mysqlnd \ | ||
522 | --with-pdo-sqlite=shared,/usr \ | ||
523 | --enable-dbase=shared \ | ||
524 | --enable-dom=shared \ | ||
525 | --with-xmlrpc=shared \ | ||
526 | --enable-xmlreader=shared \ | ||
527 | --enable-xmlwriter=shared \ | ||
528 | --with-xsl=shared,/usr \ | ||
529 | --enable-wddx=shared \ | ||
530 | --enable-soap=shared \ | ||
531 | --enable-json=shared \ | ||
532 | --enable-zip=shared \ | ||
533 | --enable-phar=shared \ | ||
534 | --enable-posix=shared \ | ||
535 | --enable-fileinfo=shared \ | ||
536 | --enable-intl=shared \ | ||
537 | --enable-sockets=shared \ | ||
538 | --enable-sysvsem=shared \ | ||
539 | --enable-sysvshm=shared \ | ||
540 | --enable-sysvmsg=shared \ | ||
541 | --without-tidy \ | ||
542 | --without-ldap \ | ||
543 | --without-ldap-sasl \ | ||
544 | --without-enchant \ | ||
545 | --without-pspell | ||
546 | --disable-zip" | ||
547 | |||
548 | # ToDo: | ||
549 | # --with-mcrypt=shared \ | ||
550 | # --with-mhash=shared \ | ||
551 | # --with-imap=shared \ | ||
552 | # --with-imap-ssl \ | ||
553 | # --enable-maintainer-zts <- threaded apache2 support | ||
554 | |||
555 | # required for fpm | ||
556 | php_disable_shared_extensions="--without-gd \ | ||
557 | --disable-dom \ | ||
558 | --disable-dba \ | ||
559 | --without-unixODBC \ | ||
560 | --disable-xmlreader \ | ||
561 | --disable-xmlwriter \ | ||
562 | --without-sqlite3 \ | ||
563 | --disable-phar \ | ||
564 | --disable-fileinfo \ | ||
565 | --disable-json \ | ||
566 | --without-pspell \ | ||
567 | --disable-wddx \ | ||
568 | --without-curl \ | ||
569 | --disable-zip \ | ||
570 | --disable-posix \ | ||
571 | --disable-sysvmsg \ | ||
572 | --disable-sysvshm \ | ||
573 | --disable-sysvsem" | ||
574 | |||
575 | # set default extension_dir for all builds | ||
576 | export EXTENSION_DIR=${PHP_EXTENSIONS_DIR} | ||
577 | # set default pear dir for all builds | ||
578 | export PEAR_INSTALLDIR=${PHP_PEAR_DIR} | ||
579 | |||
580 | # | ||
581 | # build php: | ||
582 | # | ||
583 | |||
584 | # prepare build outside of the SRCDIR | ||
585 | install -d ${BUILDDIR}/build-php | ||
586 | cd ${BUILDDIR}/build-php | ||
587 | ln -snf ${SRCDIR}/configure | ||
588 | # bison-3.0 workaround | ||
589 | install -d ${BUILDDIR}/build-php/Zend || die | ||
590 | cp ${SRCDIR}/Zend/zend_{language,ini}_{parser,scanner}.[ch] ${BUILDDIR}/build-php/Zend || die | ||
591 | |||
592 | mconfigure \ | ||
593 | --srcdir=${SRCDIR} \ | ||
594 | ${php_base_config} \ | ||
595 | --disable-cgi \ | ||
596 | --without-readline \ | ||
597 | ${php_extensions} \ | ||
598 | || die | ||
599 | |||
600 | mmake || die | ||
601 | |||
602 | |||
603 | # | ||
604 | # build cgi/fastcgi | ||
605 | # | ||
606 | |||
607 | # prepare build with the previous run, to save a lot of time | ||
608 | current_run=cgi | ||
609 | echo "preparing build for '${current_run}'" | ||
610 | cp -arv ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run} || die | ||
611 | cd ${BUILDDIR}/build-${current_run} | ||
612 | |||
613 | mconfigure \ | ||
614 | --srcdir=${SRCDIR} \ | ||
615 | ${php_base_config} \ | ||
616 | --enable-cgi \ | ||
617 | --enable-force-cgi-redirect \ | ||
618 | --enable-fastcgi \ | ||
619 | --disable-cli \ | ||
620 | ${php_extensions} \ | ||
621 | || die | ||
622 | |||
623 | mmake || die | ||
624 | |||
625 | |||
626 | # | ||
627 | # build apache mod | ||
628 | # | ||
629 | |||
630 | # prepare build with the previous run, to save a lot of time | ||
631 | current_run=apache | ||
632 | echo "preparing build for '${current_run}'" | ||
633 | cp -arv ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run} || die | ||
634 | cd ${BUILDDIR}/build-${current_run} | ||
635 | |||
636 | mconfigure \ | ||
637 | --srcdir=${SRCDIR} \ | ||
638 | ${php_base_config} \ | ||
639 | --with-apxs2 \ | ||
640 | --disable-cli \ | ||
641 | ${php_extensions} \ | ||
642 | || die | ||
643 | |||
644 | mmake || die | ||
645 | |||
646 | |||
647 | # | ||
648 | # build embedded | ||
649 | # | ||
650 | |||
651 | # prepare build with the previous run, to save a lot of time | ||
652 | current_run=embedded | ||
653 | echo "preparing build for '${current_run}'" | ||
654 | cp -arv ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run} || die | ||
655 | cd ${BUILDDIR}/build-${current_run} | ||
656 | |||
657 | mconfigure \ | ||
658 | --srcdir=${SRCDIR} \ | ||
659 | ${php_base_config} \ | ||
660 | --enable-embed=shared \ | ||
661 | --disable-cli \ | ||
662 | ${php_extensions} \ | ||
663 | || die | ||
664 | |||
665 | mmake || die | ||
666 | |||
667 | |||
668 | # | ||
669 | # build pear | ||
670 | # | ||
671 | |||
672 | # prepare build with the previous run, to save a lot of time | ||
673 | current_run=pear | ||
674 | echo "preparing build for '${current_run}'" | ||
675 | cp -arv ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run} || die | ||
676 | cd ${BUILDDIR}/build-${current_run} | ||
677 | |||
678 | mconfigure \ | ||
679 | --srcdir=${SRCDIR} \ | ||
680 | ${php_base_config} \ | ||
681 | --disable-cgi \ | ||
682 | --without-readline \ | ||
683 | --enable-pcntl \ | ||
684 | --with-pear \ | ||
685 | ${php_extensions} \ | ||
686 | || die | ||
687 | |||
688 | mmake || die | ||
689 | |||
690 | # # | ||
691 | # # build fpm | ||
692 | # # | ||
693 | # | ||
694 | # # prepare build with the previous run, to save a lot of time | ||
695 | # current_run=fpm | ||
696 | # echo "preparing build for '${current_run}'" | ||
697 | # cp -arv ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run} || die | ||
698 | # cd ${BUILDDIR}/build-${current_run} | ||
699 | # | ||
700 | # mconfigure \ | ||
701 | # --srcdir=${SRCDIR} \ | ||
702 | # ${php_base_config} \ | ||
703 | # --enable-fpm \ | ||
704 | # --without-mysql \ | ||
705 | # --disable-pdo \ | ||
706 | # ${php_disable_shared_extensions} \ | ||
707 | # || die | ||
708 | # | ||
709 | # mmake || die | ||
710 | |||
711 | # # | ||
712 | # # build phpdbg | ||
713 | # # | ||
714 | # | ||
715 | # # prepare build with the previous run, to save a lot of time | ||
716 | # current_run=phpdbg | ||
717 | # echo "preparing build for '${current_run}'" | ||
718 | # cp -arv ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run} || die | ||
719 | # cd ${BUILDDIR}/build-${current_run} | ||
720 | # | ||
721 | # mconfigure \ | ||
722 | # --srcdir=${SRCDIR} \ | ||
723 | # ${php_base_config} \ | ||
724 | # --enable-phpdbg \ | ||
725 | # ${php_extensions} \ | ||
726 | # || die | ||
727 | # | ||
728 | # mmake || die | ||
729 | |||
730 | echo "DEBUG: end" | ||
731 | } | ||
732 | |||
733 | src_install_php() | ||
734 | { | ||
735 | cd ${BUILDDIR}/build-php | ||
736 | mmake -j1 INSTALL_ROOT=${BINDIR} EXTENSION_DIR=${PHP_EXTENSIONS_DIR} PEAR_INSTALLDIR=${PHP_PEAR_DIR} install || die | ||
737 | |||
738 | # fix a broken symlink | ||
739 | mlink phar.phar /usr/bin/phar || die | ||
740 | |||
741 | local php_ini=${SRCDIR}/php.ini-production | ||
742 | |||
743 | # php config | ||
744 | minstalldir /etc/php/conf.d || die | ||
745 | # remove windows remark | ||
746 | sed -i -e '/^;extension_dir = "ext"/d' -e '/^; On windows:$/d' ${php_ini} || die | ||
747 | # fix extensions dir location | ||
748 | sed -i "s:^;\(extension_dir =\).*:\1 ${PHP_EXTENSIONS_DIR}:" ${php_ini} || die | ||
749 | # allow short php open-tags | ||
750 | sed -i "s:^\(short_open_tag =\).*:\1 On:" ${php_ini} || die | ||
751 | minstallfile ${php_ini} /etc/php/php.ini || die | ||
752 | |||
753 | # fix extension_dir also in php-config | ||
754 | sed -i "s:^\(extension_dir=\).*:\1${PHP_EXTENSIONS_DIR}:" ${BINDIR}/usr/bin/php-config || die | ||
755 | |||
756 | # remove all extensions provided by other split-packages | ||
757 | local ext | ||
758 | for ext in curl bcmath dba gd gmp intl mbstring mysqli mysqlnd \ | ||
759 | opcache pdo_mysql pdo sqlite3 pdo_sqlite \ | ||
760 | soap sysvmsg sysvsem sysvshm posix xsl wddx dom xmlreader \ | ||
761 | xmlwriter xmlrpc json | ||
762 | do | ||
763 | rm ${BINDIR}/${PHP_EXTENSIONS_DIR}/${ext}.so || die ${ext} | ||
764 | done | ||
765 | |||
766 | # remove all static extensions too | ||
767 | rm ${BINDIR}/${PHP_EXTENSIONS_DIR}/*.a || die | ||
768 | |||
769 | # enable all default extensions | ||
770 | local MCONFIG | ||
771 | local i | ||
772 | local phpmod | ||
773 | for i in $(ls ${BINDIR}/${PHP_EXTENSIONS_DIR}/*.so | sort ) | ||
774 | do | ||
775 | phpmod="$(basename ${i} .so)" | ||
776 | MCONFIG="/etc/php/conf.d/${phpmod}.ini" | ||
777 | mclearconfig || die | ||
778 | maddconfig "extension=${phpmod}" || die | ||
779 | done | ||
780 | |||
781 | # disable config-protect for modules conf dir | ||
782 | minstalldir /etc/env.d || die | ||
783 | MCONFIG="/etc/env.d/30php" | ||
784 | mclearconfig || die | ||
785 | maddconfig 'CONFIG_PROTECT_MASK="/etc/php/conf.d"' || die | ||
786 | |||
787 | minstalldocs CREDITS CODING_STANDARDS EXTENSIONS LICENSE NEWS README* TODO* || die | ||
788 | } | ||
789 | |||
790 | src_install_php-cgi() | ||
791 | { | ||
792 | cd ${BUILDDIR}/build-cgi | ||
793 | minstallexec sapi/cgi/php-cgi || die | ||
794 | } | ||
795 | |||
796 | src_install_php-apache() | ||
797 | { | ||
798 | cd ${BUILDDIR}/build-apache | ||
799 | |||
800 | # install apache sapi | ||
801 | local APACHE_MOD_DIR="$(apxs -q LIBEXECDIR)" | ||
802 | minstalldir ${APACHE_MOD_DIR} || die | ||
803 | minstallexec libs/libphp${PVER%%.*}.so ${APACHE_MOD_DIR} || die | ||
804 | |||
805 | # install apache module config | ||
806 | local APACHE_SYSCONFDIR="$(apxs -q SYSCONFDIR)" | ||
807 | minstalldir ${APACHE_SYSCONFDIR}/modules.d || die | ||
808 | minstallfile -s php${PVER%%.*}_module.conf ${APACHE_SYSCONFDIR}/modules.d/php${PVER%%.*}.conf || die | ||
809 | } | ||
810 | |||
811 | src_install_php-embedded() | ||
812 | { | ||
813 | cd ${BUILDDIR}/build-embedded | ||
814 | |||
815 | # install sapi library | ||
816 | minstalldir /usr/$(mlibdir) || die | ||
817 | minstallexec libs/libphp${PVER%%.*}.so /usr/$(mlibdir)/libphp${PVER%%.*}.so || die | ||
818 | |||
819 | # install include | ||
820 | minstalldir /usr/include/${PNAME}/sapi/embed || die | ||
821 | minstallfile ${SRCDIR}/sapi/embed/php_embed.h /usr/include/${PNAME}/sapi/embed || die | ||
822 | } | ||
823 | |||
824 | src_install_php-pear() | ||
825 | { | ||
826 | cd ${BUILDDIR}/build-pear | ||
827 | mmake INSTALL_ROOT=${BINDIR} EXTENSION_DIR=${PHP_EXTENSIONS_DIR} PEAR_INSTALLDIR=${PHP_PEAR_DIR} install-pear || die | ||
828 | |||
829 | local i | ||
830 | for i in $(find ${BINDIR}/ -name '.*') | ||
831 | do | ||
832 | if [[ -e ${i} ]] | ||
833 | then | ||
834 | rm -rf ${i} || die ${i} | ||
835 | fi | ||
836 | done | ||
837 | } | ||
838 | |||
839 | #src_install_php-fpm() | ||
840 | #{ | ||
841 | # cd ${BUILDDIR}/build-fpm | ||
842 | # mmake INSTALL_ROOT=${BINDIR} install-fpm || die | ||
843 | # | ||
844 | # mkeepdir /var/log/php-fpm || die | ||
845 | # mkeepdir /run/php-fpm || die | ||
846 | # | ||
847 | # # config | ||
848 | # minstalldir /etc/php || die | ||
849 | # minstalldir /etc/php/fpm.conf.d || die | ||
850 | # minstallfile -s php-fpm.conf /etc/php/ || die | ||
851 | # minstallfile -s php-fpm-www.conf /etc/php/fpm.conf.d/www.conf || die | ||
852 | # | ||
853 | # # systemd | ||
854 | # minstalltmp php-fpm.tmpfilesd php-fpm.conf || die | ||
855 | # minstallunit php-fpm.service || die | ||
856 | # minstalllog php-fpm.logrotate php-fpm || die | ||
857 | # minstallconf php-fpm.confd php-fpm || die | ||
858 | #} | ||
859 | |||
860 | #src_install_php-phpdbg() | ||
861 | #{ | ||
862 | # cd ${BUILDDIR}/build-phpdbg | ||
863 | # mmake INSTALL_ROOT=${BINDIR} install-phpdbg || die | ||
864 | #} | ||
865 | |||
866 | # being a little tricky here: | ||
867 | for subpackage in ${SPLIT_PACKAGES} | ||
868 | do | ||
869 | # exclude all other packages than php-addon-modules | ||
870 | case ${subpackage} in | ||
871 | php) continue ;; | ||
872 | php-cgi) continue ;; | ||
873 | php-apache) continue ;; | ||
874 | php-embedded) continue ;; | ||
875 | php-pear) continue ;; | ||
876 | php-fpm) continue ;; | ||
877 | php-phpdbg) continue ;; | ||
878 | esac | ||
879 | |||
880 | eval "src_install_${subpackage}(){ install_php_extensions ${subpackage#*-} || die; }" | ||
881 | done | ||
882 | |||
883 | # exceptions | ||
884 | src_install_php-mysql() | ||
885 | { | ||
886 | install_php_extensions mysqli mysqlnd pdo_mysql || die | ||
887 | } | ||
888 | |||
889 | #src_install_php-odbc() | ||
890 | #{ | ||
891 | # install_php_extensions odbc pdo_odbc || die | ||
892 | #} | ||
893 | |||
894 | src_install_php-process() | ||
895 | { | ||
896 | install_php_extensions sysvmsg sysvsem sysvshm posix || die | ||
897 | } | ||
898 | |||
899 | src_install_php-sqlite() | ||
900 | { | ||
901 | install_php_extensions sqlite3 pdo_sqlite || die | ||
902 | } | ||
903 | |||
904 | src_install_php-xml() | ||
905 | { | ||
906 | install_php_extensions dom wddx xmlreader xmlwriter xsl || die | ||
907 | } |