Magellan Linux

Annotation of /smage/trunk/extras/php/php-7.4.7-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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