Magellan Linux

Contents of /trunk/extras/php5/php5-5.3.3-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5634 - (show annotations) (download)
Mon Jul 26 10:22:35 2010 UTC (13 years, 10 months ago) by niro
File size: 15300 byte(s)
-fixed suhosin patch
1 # $Id$
2
3 PNAME="php5"
4 PVER="5.3.3"
5 PBUILD="r1"
6
7 PCATEGORIE="dev-lang"
8 STATE="unstable"
9
10 #DESCRIPTION="PHP Hypertext Preprocessor, a scripting language especially suited for web development."
11 HOMEPAGE="http://php.net/"
12
13 # ToDO: mcrypt, imap, mhash, maintainer-zts, intl
14 SDEPEND=">= net-www/apache2-2.2.14
15 >= sys-libs/ncurses-5.7
16 >= sys-libs/readline-6.0
17 >= sys-libs/zlib-1.2
18 >= app-arch/bzip2-1
19 >= dev-libs/libxml2-2.7
20 >= dev-libs/libxslt-1.1.26
21 >= dev-libs/openssl-0.9.8
22 >= dev-libs/libpcre-8.0
23 >= dev-libs/gmp-4.3
24 >= media-libs/libjpeg-7
25 >= media-libs/libpng-1.2.40
26 >= x11-libs/libXpm-3.5
27 >= media-libs/gd-2.0.35
28 >= media-libs/freetype-2.3
29 >= media-libs/t1lib-5.1
30 >= net-misc/curl-7.19
31 >= app-text/aspell-0.60
32 >= app-text/enchant-1.5
33 >= app-text/htmltidy-1.46
34 >= dev-db/db-4.8
35 >= dev-db/sqlite-3.6
36 >= dev-db/mysql5-5.1
37 >= dev-db/unixodbc-2.2
38 >= net-dns/libidn-1.15
39 >= dev-libs/cyrus-sasl-2.1.23
40 >= net-nds/openldap-2.4
41 >= sys-dev/m4-1.4
42 >= sys-dev/libtool-1.5
43 >= sys-dev/gettext-0.17
44 >= sys-apps/sed-4"
45
46 SRCFILE="${PNAME/5/}-${PVER}.tar.bz2"
47 SRCDIR="${BUILDDIR}/${PNAME/5/}-${PVER}"
48
49 SUHOSIN_PVER="0.9.10"
50 PHP5_EXTENSIONS_DIR="/usr/$(mlibdir)/${PNAME}/extensions"
51 PHP5_PEAR_INSTALLDIR="/usr/share/${PNAME}/pear"
52
53 SPLIT_PACKAGES="${PNAME}
54 ${PNAME}-cgi
55 ${PNAME}-apache
56 ${PNAME}-embedded
57 ${PNAME}-pear
58 ${PNAME}-bcmath
59 ${PNAME}-curl
60 ${PNAME}-dba
61 ${PNAME}-enchant
62 ${PNAME}-gd
63 ${PNAME}-gmp
64 ${PNAME}-ldap
65 ${PNAME}-mbstring
66 ${PNAME}-pdo
67 ${PNAME}-mysql
68 ${PNAME}-odbc
69 ${PNAME}-process
70 ${PNAME}-pspell
71 ${PNAME}-soap
72 ${PNAME}-sqlite
73 ${PNAME}-tidy
74 ${PNAME}-xml
75 ${PNAME}-xmlrpc"
76
77 # splits with more then one module:
78 # ${PNAME}-odbc = odbc, pdo_odbc
79 # ${PNAME}-mysql = mysql, mysqli, pdo_mysql
80 # ${PNAME}-xml = xsl, wddx, dom, xmlreader, xmlwriter
81 # ${PNAME}-process = sysvmsg, sysvsem, sysvshm, posix
82 # ${PNAME}-sqlite = sqlite, sqlite3, pdo_sqlite
83
84 sminclude mtools
85
86 SRC_URI=(
87 http://de2.php.net/distributions/${SRCFILE}
88 http://us2.php.net/distributions/${SRCFILE}
89 mirror://${PNAME}/${SRCFILE}
90 mirror://${PNAME}/${PNAME}-5.2.4-multilib.patch
91 mirror://${PNAME}/${PNAME}-5.2.3-httpd-config.patch
92 mirror://${PNAME}/${PNAME}-5.2.4-build-dir.patch
93 mirror://${PNAME}/${PNAME}-${PVER}-suhosin-${SUHOSIN_PVER}-2.patch
94 mirror://${PNAME}/php5_module.conf
95 )
96
97 # 5.3 stable series
98 UP2TAG="5.3"
99 UP2DATE="updatecmd ${HOMEPAGE} | grep 'Current.*${UP2TAG}.*Stable' | sed 's/.*\:\ \(.*\)/\1/'"
100
101 # install-helper function
102 install_php5_extensions()
103 {
104 local extensions="$@"
105 [[ -z ${extensions} ]] && die "no extensions given"
106
107 # set default PHP5_BUILD_DIR, env can override this
108 : ${PHP5_BUILD_DIR="${BUILDDIR}/build-php"}
109
110 cd ${PHP5_BUILD_DIR}
111
112 # needed directories
113 minstalldir /etc/php5/conf.d || die
114 minstalldir ${PHP5_EXTENSIONS_DIR} || die
115
116 local ext
117 for ext in ${extensions}
118 do
119 # install extensions and the config ini
120 minstallexec modules/${ext}.so ${PHP5_EXTENSIONS_DIR} || die "mod ${ext}"
121 echo "extension=${ext}.so" > ${BINDIR}/etc/php5/conf.d/${ext}.ini || die "ini ${ext}"
122 done
123 }
124
125 split_info_php5()
126 {
127 DESCRIPTION="PHP Hypertext Preprocessor, a scripting language especially suited for web development."
128 DEPEND=">= sys-libs/ncurses-5.7
129 >= sys-libs/readline-6.0
130 >= sys-libs/zlib-1.2
131 >= app-arch/bzip2-1
132 >= dev-libs/libxml2-2.7
133 >= dev-libs/openssl-0.9.8
134 >= dev-libs/libpcre-8.0"
135 }
136
137 split_info_php5-cgi()
138 {
139 DESCRIPTION="GI and FCGI SAPI for PHP."
140 DEPEND="== dev-lang/php5-${PVER}
141 >= dev-libs/libxml2-2.7
142 >= dev-libs/libpcre-8"
143 }
144
145 split_info_php5-apache()
146 {
147 DESCRIPTION="Apache SAPI for PHP."
148 DEPEND="== dev-lang/php5-${PVER}
149 >= dev-libs/libxml2-2.7
150 >= dev-libs/libpcre-8
151 >= net-www/apache2-2.2"
152 }
153
154 split_info_php5-embedded()
155 {
156 DESCRIPTION="PHP library for embedding in applications."
157 DEPEND="== dev-lang/php5-${PVER}
158 >= dev-libs/libxml2-2.7
159 >= dev-libs/libpcre-8"
160 }
161
162 split_info_php5-pear()
163 {
164 DESCRIPTION="PHP Extension and Application Repository."
165 DEPEND="== dev-lang/php5-${PVER}"
166 }
167
168 split_info_php5-bcmath()
169 {
170 DESCRIPTION="A module for PHP applications for using the bcmath library."
171 DEPEND="== dev-lang/php5-${PVER}"
172 }
173
174 split_info_php5-curl()
175 {
176 DESCRIPTION="A module for PHP applications that use curl."
177 DEPEND="== dev-lang/php5-${PVER}
178 >= net-dns/libidn-1.15
179 >= net-misc/curl-7
180 >= net-nds/openldap-2.4"
181 }
182
183 split_info_php5-dba()
184 {
185 DESCRIPTION="A database abstraction layer module for PHP applications."
186 DEPEND="== dev-lang/php5-${PVER}"
187 }
188
189 split_info_php5-enchant()
190 {
191 DESCRIPTION="Human Language and Character Encoding Support."
192 DEPEND="== dev-lang/php5-${PVER}
193 >= app-text/enchant-1.5"
194 }
195
196 split_info_php5-gd()
197 {
198 DESCRIPTION="A module for PHP applications for using the gd graphics library."
199 DEPEND="== dev-lang/php5-${PVER}
200 >= media-libs/libjpeg-7
201 >= media-libs/libpng-1.2.40
202 >= x11-libs/libXpm-3.5
203 >= media-libs/freetype-2.3
204 >= media-libs/t1lib-5.1
205 >= media-libs/gd-2.0.35"
206 }
207
208 split_info_php5-gmp()
209 {
210 DESCRIPTION="A module for PHP applications for using the gmp library."
211 DEPEND="== dev-lang/php5-${PVER}
212 >= dev-libs/gmp-4.3"
213 }
214
215 split_info_php5-ldap()
216 {
217 DESCRIPTION="A module for PHP applications that use LDAP."
218 DEPEND="== dev-lang/php5-${PVER}
219 >= dev-libs/cyrus-sasl-2.1.23
220 >= net-nds/openldap-2.4"
221 }
222
223 split_info_php5-mbstring()
224 {
225 DESCRIPTION="A module for PHP applications which need multi-byte string handling."
226 DEPEND="== dev-lang/php5-${PVER}"
227 }
228
229 split_info_php5-mysql()
230 {
231 DESCRIPTION="Modules for PHP applications that use MySQL databases."
232 DEPEND="== dev-lang/php5-${PVER}
233 == dev-lang/php5-pdo-${PVER}
234 >= dev-db/mysql5-5.1"
235 }
236
237 split_info_php5-odbc()
238 {
239 DESCRIPTION="Modules for PHP applications that use ODBC databases."
240 DEPEND="== dev-lang/php5-${PVER}
241 == dev-lang/php5-pdo-${PVER}
242 >= dev-db/unixodbc-2.2"
243 }
244
245 split_info_php5-pdo()
246 {
247 DESCRIPTION="A database access abstraction module for PHP applications."
248 DEPEND="== dev-lang/php5-${PVER}"
249 }
250
251 split_info_php5-process()
252 {
253 DESCRIPTION="Modules for PHP script using system process interfaces."
254 DEPEND="== dev-lang/php5-${PVER}"
255 }
256
257 split_info_php5-pspell()
258 {
259 DESCRIPTION="A module for PHP applications for using pspell interfaces."
260 DEPEND="== dev-lang/php5-${PVER}
261 >= app-text/aspell-0.60"
262 }
263
264 split_info_php5-soap()
265 {
266 DESCRIPTION="A module for PHP applications that use the SOAP protocol."
267 DEPEND="== dev-lang/php5-${PVER}
268 >= dev-libs/libxml2-2.7"
269 }
270
271 split_info_php5-sqlite()
272 {
273 DESCRIPTION="Modules for PHP applications that use SQLite databases."
274 DEPEND="== dev-lang/php5-${PVER}
275 == dev-lang/php5-pdo-${PVER}
276 >= dev-db/sqlite-3.6"
277 }
278
279 split_info_php5-tidy()
280 {
281 DESCRIPTION="Standard PHP module provides tidy library support."
282 DEPEND="== dev-lang/php5-${PVER}
283 >= app-text/htmltidy-1.46"
284 }
285
286 split_info_php5-xml()
287 {
288 DESCRIPTION="Modules for PHP applications which use XML."
289 DEPEND="== dev-lang/php5-${PVER}
290 >= dev-libs/libxml2-2.7
291 >= dev-libs/libxslt-1.1.26"
292 }
293
294 split_info_php5-xmlrpc()
295 {
296 DESCRIPTION="A module for PHP applications which use the XML-RPC protocol."
297 DEPEND="== dev-lang/php5-${PVER}
298 >= dev-libs/libxml2-2.7"
299 }
300
301 src_prepare()
302 {
303 munpack ${SRCFILE} || die
304 cd ${SRCDIR}
305
306 # version branding
307 sed -i "s:^\(EXTRA_VERSION=\).*:\1-magellan-${PBUILD}:" configure.in || die
308
309 # fixes multilib search pathes
310 mpatch ${PNAME}-5.2.4-multilib.patch || die
311
312 # do not touch the system httpd.conf
313 mpatch ${PNAME}-5.2.3-httpd-config.patch || die
314
315 # fixes build dir -> /usr/lib/php5/build
316 mpatch ${PNAME}-5.2.4-build-dir.patch || die
317
318 # hardend php core patch
319 # see: http://www.hardened-php.net/suhosin/index.html
320 mpatch ${PNAME}-${PVER}-suhosin-${SUHOSIN_PVER}-2.patch || die
321
322 # fully regenerate aclocal too
323 rm aclocal.m4 || die
324
325 # rebuild configure
326 autoreconf --force --install --verbose || die
327
328 # force use of system libtool
329 mlibtoolize || die
330 }
331
332 src_compile()
333 {
334 local php_base_config
335 local php_extensions
336 local current_run
337
338 # --with-libdir needed, doesn't honor --libdir
339 php_base_config="--with-libdir=$(mlibdir) \
340 --with-config-file-path=/etc/php5 \
341 --with-config-file-scan-dir=/etc/php5/conf.d \
342 --enable-inline-optimization \
343 --enable-discard-path \
344 --disable-debug \
345 --disable-static \
346 --enable-shared \
347 --without-pear"
348
349 php_extensions="--with-zlib \
350 --with-bz2=shared \
351 --enable-bcmath=shared \
352 --enable-calendar=shared \
353 --enable-exif=shared \
354 --enable-ftp=shared \
355 --with-gettext=shared \
356 --enable-mbstring=shared \
357 --enable-mbregex \
358 --with-ncurses=shared \
359 --with-openssl=shared \
360 --with-gd=shared,/usr \
361 --enable-gd-native-ttf \
362 --with-freetype-dir=shared,/usr \
363 --with-ttf \
364 --with-t1lib=/usr \
365 --with-pcre-regex \
366 --with-gmp=shared \
367 --with-curl=shared \
368 --with-curlwrappers \
369 --enable-dba=shared \
370 --with-db4=shared \
371 --with-mysql=shared \
372 --with-mysqli=shared \
373 --with-unixODBC=shared,/usr \
374 --with-sqlite=shared \
375 --with-sqlite3=shared \
376 --enable-pdo=shared \
377 --with-pdo-odbc=shared,unixODBC,/usr \
378 --with-pdo-mysql=shared,/usr \
379 --with-pdo-sqlite=shared,/usr \
380 --enable-dbase=shared \
381 --enable-dom=shared \
382 --with-xmlrpc=shared \
383 --enable-xmlreader=shared \
384 --enable-xmlwriter=shared \
385 --with-xsl=shared,/usr \
386 --enable-wddx=shared \
387 --enable-soap=shared \
388 --enable-json=shared \
389 --enable-zip=shared \
390 --enable-phar=shared \
391 --enable-posix=shared \
392 --enable-fileinfo=shared \
393 --enable-sockets=shared \
394 --enable-sysvsem=shared \
395 --enable-sysvshm=shared \
396 --enable-sysvmsg=shared \
397 --with-tidy=shared \
398 --with-ldap=shared \
399 --with-ldap-sasl \
400 --with-enchant=shared \
401 --with-pspell=shared"
402 # ToDo:
403 # --with-mcrypt=shared \
404 # --with-mhash=shared \
405 # --with-imap=shared \
406 # --with-imap-ssl \
407 # --enable-maintainer-zts <- threaded apache2 support
408
409
410 #
411 # build php:
412 #
413
414 # prepare build outside of the SRCDIR
415 install -d ${BUILDDIR}/build-php
416 cd ${BUILDDIR}/build-php
417 ln -snf ${SRCDIR}/configure
418
419 mconfigure \
420 --srcdir=${SRCDIR} \
421 ${php_base_config} \
422 --disable-cgi \
423 --with-readline \
424 ${php_extensions} \
425 || die
426
427 mmake || die
428
429
430 #
431 # build cgi/fastcgi
432 #
433
434 # prepare build with the previous run, to save a lot of time
435 current_run=cgi
436 cp -a ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run}
437 cd ${BUILDDIR}/build-${current_run}
438
439 mconfigure \
440 --srcdir=${SRCDIR} \
441 ${php_base_config} \
442 --enable-cgi \
443 --enable-force-cgi-redirect \
444 --enable-fastcgi \
445 --disable-cli \
446 ${php_extensions} \
447 || die
448
449 mmake || die
450
451
452 #
453 # build apache mod
454 #
455
456 # prepare build with the previous run, to save a lot of time
457 current_run=apache
458 cp -a ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run}
459 cd ${BUILDDIR}/build-${current_run}
460
461 mconfigure \
462 --srcdir=${SRCDIR} \
463 ${php_base_config} \
464 --with-apxs2 \
465 --disable-cli \
466 ${php_extensions} \
467 || die
468
469 mmake || die
470
471
472 #
473 # build embedded
474 #
475
476 # prepare build with the previous run, to save a lot of time
477 current_run=embedded
478 cp -a ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run}
479 cd ${BUILDDIR}/build-${current_run}
480
481 mconfigure \
482 --srcdir=${SRCDIR} \
483 ${php_base_config} \
484 --enable-embed=shared \
485 --disable-cli \
486 ${php_extensions} \
487 || die
488
489 mmake || die
490
491
492 #
493 # build pear
494 #
495
496 # prepare build with the previous run, to save a lot of time
497 current_run=pear
498 cp -a ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run}
499 cd ${BUILDDIR}/build-${current_run}
500
501 mconfigure \
502 --srcdir=${SRCDIR} \
503 ${php_base_config} \
504 --disable-cgi \
505 --with-readline \
506 --enable-pcntl \
507 --with-pear \
508 ${php_extensions} \
509 || die
510
511 mmake || die
512 }
513
514 src_install_php5()
515 {
516 cd ${BUILDDIR}/build-php
517 mmake -j1 INSTALL_ROOT=${BINDIR} EXTENSION_DIR=${PHP5_EXTENSIONS_DIR} PEAR_INSTALLDIR=${PHP5_PEAR_INSTALLDIR} install || die
518
519 # fix a broken symlink
520 mlink phar.phar /usr/bin/phar || die
521
522 local php_ini=${SRCDIR}/php.ini-production
523
524 # php config
525 minstalldir /etc/php5/conf.d || die
526 # remove windows remark
527 sed -i -e '/^; extension_dir = "ext"/d' -e '/^; On windows:$/d' ${php_ini} || die
528 # fix extensions dir location
529 sed -i "s:^; \(extension_dir =\).*:\1 ${PHP5_EXTENSIONS_DIR}:" ${php_ini} || die
530 # allow short php open-tags
531 sed -i "s:^\(short_open_tag =\).*:\1 On:" ${php_ini} || die
532 minstallfile ${php_ini} /etc/php5/php.ini || die
533
534 # fix extension_dir also in phmp-config
535 sed -i "s:^\(extension_dir=\).*:\1${PHP5_EXTENSIONS_DIR}:" ${BINDIR}/usr/bin/php-config || die
536
537 # remove all extensions provided by other split-packages
538 local ext
539 for ext in curl bcmath dba enchant gd gmp ldap mbstring mysql mysqli \
540 pdo_mysql odbc pdo_odbc pdo pspell sqlite sqlite3 pdo_sqlite \
541 soap sysvmsg sysvsem sysvshm posix tidy xsl wddx dom xmlreader \
542 xmlwriter xmlrpc
543 do
544 rm ${BINDIR}/${PHP5_EXTENSIONS_DIR}/${ext}.so || die ${ext}
545 done
546
547 # remove all static extensions too
548 rm ${BINDIR}/${PHP5_EXTENSIONS_DIR}/*.a || die
549
550 # enable all default extensions
551 local i
552 for i in $(ls ${BINDIR}/${PHP5_EXTENSIONS_DIR}/*.so | sort )
553 do
554 echo "extension=$(basename ${i})" \
555 > ${BINDIR}/etc/php5/conf.d/$(basename ${i} .so).ini || die
556 done
557
558 # disable config-protoct for modules conf dir
559 minstalldir /etc/env.d || die
560 echo 'CONFIG_PROTECT_MASK="/etc/php5/conf.d"' > ${BINDIR}/etc/env.d/30php5 || die
561
562 minstalldocs CREDITS CODING_STANDARDS EXTENSIONS LICENSE NEWS README* TODO* || die
563 }
564
565 src_install_php5-cgi()
566 {
567 cd ${BUILDDIR}/build-cgi
568 minstallexec sapi/cgi/php-cgi || die
569 }
570
571 src_install_php5-apache()
572 {
573 cd ${BUILDDIR}/build-apache
574
575 # install apache sapi
576 local APACHE_MOD_DIR="$(apxs -q LIBEXECDIR)"
577 minstalldir ${APACHE_MOD_DIR} || die
578 minstallexec libs/libphp5.so ${APACHE_MOD_DIR} || die
579
580 # install apache module config
581 local APACHE_SYSCONFDIR="$(apxs -q SYSCONFDIR)"
582 minstalldir ${APACHE_SYSCONFDIR}/modules.d || die
583 minstallfile -s php5_module.conf ${APACHE_SYSCONFDIR}/modules.d/php5.conf || die
584 }
585
586 src_install_php5-embedded()
587 {
588 cd ${BUILDDIR}/build-embedded
589
590 # install sapi library
591 minstalldir /usr/$(mlibdir) || die
592 minstallexec libs/libphp5.so /usr/$(mlibdir)/libphp5.so || die
593
594 # install include
595 minstalldir /usr/include/${PNAME}/sapi/embed || die
596 minstallfile ${SRCDIR}/sapi/embed/php_embed.h /usr/include/${PNAME}/sapi/embed || die
597 }
598
599 src_install_php5-pear()
600 {
601 cd ${BUILDDIR}/build-pear
602 mmake INSTALL_ROOT=${BINDIR} EXTENSION_DIR=${PHP5_EXTENSIONS_DIR} PEAR_INSTALLDIR=${PHP5_PEAR_INSTALLDIR} install-pear || die
603
604 local i
605 for i in $(find ${BINDIR}/ -name '.*')
606 do
607 if [[ -e ${i} ]]
608 then
609 rm -rf ${i} || die ${i}
610 fi
611 done
612 }
613
614 # being a little tricky here:
615 for subpackage in ${SPLIT_PACKAGES}
616 do
617 # exclude all other packages than php5-addon-modules
618 case ${subpackage} in
619 php5) continue ;;
620 php5-cgi) continue ;;
621 php5-apache) continue ;;
622 php5-embedded) continue ;;
623 php5-pear) continue ;;
624 esac
625
626 eval "src_install_${subpackage}(){ install_php5_extensions ${subpackage#*-} || die; }"
627 done
628
629 # exceptions
630 src_install_php5-mysql()
631 {
632 install_php5_extensions mysql mysqli pdo_mysql || die
633 }
634
635 src_install_php5-odbc()
636 {
637 install_php5_extensions odbc pdo_odbc || die
638 }
639
640 src_install_php5-process()
641 {
642 install_php5_extensions sysvmsg sysvsem sysvshm posix || die
643 }
644
645 src_install_php5-sqlite()
646 {
647 install_php5_extensions sqlite sqlite3 pdo_sqlite || die
648 }
649
650 src_install_php5-xml()
651 {
652 install_php5_extensions dom wddx xmlreader xmlwriter xsl || die
653 }

Properties

Name Value
svn:keywords Id