Magellan Linux

Contents of /smage/trunk/extras/php/php-7.3.7-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 13462 - (show annotations) (download)
Thu Jul 11 12:48:08 2019 UTC (4 years, 9 months ago) by niro
File size: 20721 byte(s)
-fixed php extension location sed and do not use the .so extension on modules in the configuration anymore. fixed mysqli errors, this module must be loaded after the mysqlnd module
1 # $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 }