Magellan Linux

Contents of /trunk/extras/php5/php5-5.3.0-r5.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5095 - (show annotations) (download)
Sun Mar 7 12:39:19 2010 UTC (14 years, 2 months ago) by niro
File size: 15036 byte(s)
-fixed dependencies
1 # $Id$
2
3 PNAME="php5"
4 PVER="5.3.0"
5 PBUILD="r5"
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/tar-1.22
45 >= sys-apps/sed-4"
46
47 SRCFILE="${PNAME/5/}-${PVER}.tar.bz2"
48 SRCDIR="${BUILDDIR}/${PNAME/5/}-${PVER}"
49
50 SUHOSIN_PVER="0.9.8"
51 PHP5_EXTENSIONS_DIR="/usr/$(mlibdir)/${PNAME}/extensions"
52 PHP5_PEAR_INSTALLDIR="/usr/share/${PNAME}/pear"
53
54 SPLIT_PACKAGES="${PNAME}
55 ${PNAME}-cgi
56 ${PNAME}-apache
57 ${PNAME}-embedded
58 ${PNAME}-pear
59 ${PNAME}-bcmath
60 ${PNAME}-curl
61 ${PNAME}-dba
62 ${PNAME}-enchant
63 ${PNAME}-gd
64 ${PNAME}-gmp
65 ${PNAME}-ldap
66 ${PNAME}-mbstring
67 ${PNAME}-pdo
68 ${PNAME}-mysql
69 ${PNAME}-odbc
70 ${PNAME}-process
71 ${PNAME}-pspell
72 ${PNAME}-soap
73 ${PNAME}-sqlite
74 ${PNAME}-tidy
75 ${PNAME}-xml
76 ${PNAME}-xmlrpc"
77
78 # splits with more then one module:
79 # ${PNAME}-odbc = odbc, pdo_odbc
80 # ${PNAME}-mysql = mysql, mysqli, pdo_mysql
81 # ${PNAME}-xml = xsl, wddx, dom, xmlreader, xmlwriter
82 # ${PNAME}-process = sysvmsg, sysvsem, sysvshm, posix
83 # ${PNAME}-sqlite = sqlite, sqlite3, pdo_sqlite
84
85 sminclude mtools
86
87 SRC_URI=(
88 http://de2.php.net/distributions/${SRCFILE}
89 http://us2.php.net/distributions/${SRCFILE}
90 mirror://${PNAME}/${SRCFILE}
91 mirror://${PNAME}/${PNAME}-5.2.4-multilib.patch
92 mirror://${PNAME}/${PNAME}-5.2.3-httpd-config.patch
93 mirror://${PNAME}/${PNAME}-5.2.4-build-dir.patch
94 mirror://${PNAME}/${PNAME}-${PVER}-suhosin-${SUHOSIN_PVER}.patch
95 mirror://${PNAME}/${PNAME}-${PVER}-gd-segfault.patch
96 mirror://${PNAME}/php5_module.conf
97 )
98
99 # 5.3 stable series
100 UP2TAG="5.3"
101 UP2DATE="updatecmd ${HOMEPAGE} | grep 'Current.*${UP2TAG}.*Stable' | sed 's/.*\:\ \(.*\)/\1/'"
102
103 # install-helper function
104 install_php5_extensions()
105 {
106 local extensions="$@"
107 [[ -z ${extensions} ]] && die "no extensions given"
108
109 # set default PHP5_BUILD_DIR, env can override this
110 : ${PHP5_BUILD_DIR="${BUILDDIR}/build-php"}
111
112 cd ${PHP5_BUILD_DIR}
113
114 # needed directories
115 minstalldir /etc/${PNAME}/conf.d || die
116 minstalldir ${PHP5_EXTENSIONS_DIR} || die
117
118 local ext
119 for ext in ${extensions}
120 do
121 # install extensions and the config ini
122 minstallexec modules/${ext}.so ${PHP5_EXTENSIONS_DIR} || die "mod ${ext}"
123 echo "extension=${ext}.so" > ${BINDIR}/etc/${PNAME}/conf.d/${ext}.ini || die "ini ${ext}"
124 done
125 }
126
127
128 split_info_php5()
129 {
130 DESCRIPTION="PHP Hypertext Preprocessor, a scripting language especially suited for web development."
131 DEPEND=">= sys-libs/ncurses-5.7
132 >= sys-libs/readline-6.0
133 >= sys-libs/zlib-1.2
134 >= app-arch/bzip2-1
135 >= dev-libs/libxml2-2.7
136 >= dev-libs/openssl-0.9.8
137 >= dev-libs/libpcre-8.0"
138 }
139
140 split_info_php5-cgi()
141 {
142 DESCRIPTION="GI and FCGI SAPI for PHP."
143 DEPEND="== dev-lang/php5-${PVER}"
144 }
145
146 split_info_php5-apache()
147 {
148 DESCRIPTION="Apache SAPI for PHP."
149 DEPEND="== dev-lang/php5-${PVER}
150 >= dev-libs/libxml2-2.7
151 >= dev-libs/libpcre-8
152 >= net-www/apache2-2.2"
153 }
154
155 split_info_php5-embedded()
156 {
157 DESCRIPTION="PHP library for embedding in applications."
158 DEPEND="== dev-lang/php5-${PVER}
159 >= dev-libs/libxml2-2.7
160 >= dev-libs/libpcre-8"
161 }
162
163 split_info_php5-pear()
164 {
165 DESCRIPTION="PHP Extension and Application Repository."
166 DEPEND="== dev-lang/php5-${PVER}"
167 }
168
169 split_info_php5-bcmath()
170 {
171 DESCRIPTION="A module for PHP applications for using the bcmath library."
172 DEPEND="== dev-lang/php5-${PVER}"
173 }
174
175 split_info_php5-curl()
176 {
177 DESCRIPTION="A module for PHP applications that use curl."
178 DEPEND="== dev-lang/php5-${PVER}
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}.patch || die
321
322 # fixes segfaults of gd in phpinfo()
323 mpatch ${PNAME}-${PVER}-gd-segfault.patch || die
324
325 # fully regenerate aclocal too
326 rm aclocal.m4 || die
327
328 # rebuild configure
329 autoreconf --force --install --verbose || die
330
331 # force use of system libtool
332 mlibtoolize || die
333 }
334
335 src_compile()
336 {
337 local php_base_config
338 local php_extensions
339 local current_run
340
341 # --with-libdir needed, doesn't honor --libdir
342 php_base_config="--with-libdir=$(mlibdir) \
343 --with-config-file-path=/etc/${PNAME} \
344 --with-config-file-scan-dir=/etc/${PNAME}/conf.d \
345 --enable-inline-optimization \
346 --enable-discard-path \
347 --disable-debug \
348 --disable-static \
349 --enable-shared \
350 --without-pear"
351
352 php_extensions="--with-zlib \
353 --with-bz2=shared \
354 --enable-bcmath=shared \
355 --enable-calendar=shared \
356 --enable-exif=shared \
357 --enable-ftp=shared \
358 --with-gettext=shared \
359 --enable-mbstring=shared \
360 --enable-mbregex \
361 --with-ncurses=shared \
362 --with-openssl=shared \
363 --with-gd=shared,/usr \
364 --enable-gd-native-ttf \
365 --with-freetype-dir=shared,/usr \
366 --with-ttf \
367 --with-t1lib=/usr \
368 --with-pcre-regex \
369 --with-gmp=shared \
370 --with-curl=shared \
371 --with-curlwrappers \
372 --enable-dba=shared \
373 --with-db4=shared \
374 --with-mysql=shared \
375 --with-mysqli=shared \
376 --with-unixODBC=shared,/usr \
377 --with-sqlite=shared \
378 --with-sqlite3=shared \
379 --enable-pdo=shared \
380 --with-pdo-odbc=shared,unixODBC,/usr \
381 --with-pdo-mysql=shared,/usr \
382 --with-pdo-sqlite=shared,/usr \
383 --enable-dbase=shared \
384 --enable-dom=shared \
385 --with-xmlrpc=shared \
386 --enable-xmlreader=shared \
387 --enable-xmlwriter=shared \
388 --with-xsl=shared,/usr \
389 --enable-wddx=shared \
390 --enable-soap=shared \
391 --enable-json=shared \
392 --enable-zip=shared \
393 --enable-phar=shared \
394 --enable-posix=shared \
395 --enable-fileinfo=shared \
396 --enable-sockets=shared \
397 --enable-sysvsem=shared \
398 --enable-sysvshm=shared \
399 --enable-sysvmsg=shared \
400 --with-tidy=shared \
401 --with-ldap=shared \
402 --with-ldap-sasl \
403 --with-enchant=shared \
404 --with-pspell=shared"
405 # ToDo:
406 # --with-mcrypt=shared \
407 # --with-mhash=shared \
408 # --with-imap=shared \
409 # --with-imap-ssl \
410 # --enable-maintainer-zts <- threaded apache2 support
411
412
413 #
414 # build php:
415 #
416
417 # prepare build outside of the SRCDIR
418 install -d ${BUILDDIR}/build-php
419 cd ${BUILDDIR}/build-php
420 ln -snf ${SRCDIR}/configure
421
422 mconfigure \
423 --srcdir=${SRCDIR} \
424 ${php_base_config} \
425 --disable-cgi \
426 --with-readline \
427 ${php_extensions} \
428 || die
429
430 mmake || die
431
432
433 #
434 # build cgi/fastcgi
435 #
436
437 # prepare build with the previous run, to save a lot of time
438 current_run=cgi
439 cp -a ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run}
440 cd ${BUILDDIR}/build-${current_run}
441
442 mconfigure \
443 --srcdir=${SRCDIR} \
444 ${php_base_config} \
445 --enable-cgi \
446 --enable-force-cgi-redirect \
447 --enable-fastcgi \
448 --disable-cli \
449 ${php_extensions} \
450 || die
451
452 mmake || die
453
454
455 #
456 # build apache mod
457 #
458
459 # prepare build with the previous run, to save a lot of time
460 current_run=apache
461 cp -a ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run}
462 cd ${BUILDDIR}/build-${current_run}
463
464 mconfigure \
465 --srcdir=${SRCDIR} \
466 ${php_base_config} \
467 --with-apxs2 \
468 --disable-cli \
469 ${php_extensions} \
470 || die
471
472 mmake || die
473
474
475 #
476 # build embedded
477 #
478
479 # prepare build with the previous run, to save a lot of time
480 current_run=embedded
481 cp -a ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run}
482 cd ${BUILDDIR}/build-${current_run}
483
484 mconfigure \
485 --srcdir=${SRCDIR} \
486 ${php_base_config} \
487 --enable-embed=shared \
488 --disable-cli \
489 ${php_extensions} \
490 || die
491
492 mmake || die
493
494
495 #
496 # build pear
497 #
498
499 # prepare build with the previous run, to save a lot of time
500 current_run=pear
501 cp -a ${BUILDDIR}/build-php ${BUILDDIR}/build-${current_run}
502 cd ${BUILDDIR}/build-${current_run}
503
504 mconfigure \
505 --srcdir=${SRCDIR} \
506 ${php_base_config} \
507 --disable-cgi \
508 --with-readline \
509 --enable-pcntl \
510 --with-pear \
511 ${php_extensions} \
512 || die
513
514 mmake || die
515 }
516
517 src_install_php5()
518 {
519 cd ${BUILDDIR}/build-php
520 mmake -j1 INSTALL_ROOT=${BINDIR} EXTENSION_DIR=${PHP5_EXTENSIONS_DIR} PEAR_INSTALLDIR=${PHP5_PEAR_INSTALLDIR} install || die
521
522 # fix a broken symlink
523 mlink phar.phar /usr/bin/phar || die
524
525 local php_ini=${SRCDIR}/php.ini-production
526
527 # php config
528 minstalldir /etc/${PNAME}/conf.d || die
529 # fix extensions dir location
530 sed -i "s:^\(extension_dir =\).*:\1 ${PHP5_EXTENSIONS_DIR}:" ${php_ini} || die
531 # allow short php open-tags
532 sed -i "s:^\(short_open_tag =\).*:\1 On:" ${php_ini} || die
533 minstallfile ${php_ini} /etc/${PNAME}/php.ini || die
534
535 # fix extension_dir also in phmp-config
536 sed -i "s:^\(extension_dir=\).*:\1${PHP5_EXTENSIONS_DIR}:" ${BINDIR}/usr/bin/php-config || die
537
538 # remove all extensions provided by other split-packages
539 local ext
540 for ext in curl bcmath dba enchant gd gmp ldap mbstring mysql mysqli \
541 pdo_mysql odbc pdo_odbc pdo pspell sqlite sqlite3 pdo_sqlite \
542 soap sysvmsg sysvsem sysvshm posix tidy xsl wddx dom xmlreader \
543 xmlwriter xmlrpc
544 do
545 rm ${BINDIR}/${PHP5_EXTENSIONS_DIR}/${ext}.so || die ${ext}
546 done
547
548 # enable all default extensions
549 local i
550 for i in $(ls ${BINDIR}/${PHP5_EXTENSIONS_DIR}/*.so | sort )
551 do
552 echo "extension=$(basename ${i})" \
553 > ${BINDIR}/etc/${PNAME}/conf.d/$(basename ${i} .so).ini || die
554 done
555
556 minstalldocs CREDITS CODING_STANDARDS EXTENSIONS LICENSE NEWS README* TODO* || die
557 }
558
559 src_installl_php5-cgi()
560 {
561 cd ${BUILDDIR}/build-cgi
562 minstallexec sapi/cgi/php-cgi || die
563 }
564
565 src_install_php5-apache()
566 {
567 cd ${BUILDDIR}/build-apache
568
569 # install apache sapi
570 local APACHE_MOD_DIR="$(apxs -q LIBEXECDIR)"
571 minstalldir ${APACHE_MOD_DIR} || die
572 minstallexec libs/libphp5.so ${APACHE_MOD_DIR} || die
573
574 # install apache module config
575 local APACHE_SYSCONFDIR="$(apxs -q SYSCONFDIR)"
576 minstalldir ${APACHE_SYSCONFDIR}/modules.d || die
577 minstallfile -s php5_module.conf ${APACHE_SYSCONFDIR}/modules.d/php5.conf || die
578 }
579
580 src_install_php5-embedded()
581 {
582 cd ${BUILDDIR}/build-embedded
583
584 # install sapi library
585 minstalldir /usr/$(mlibdir) || die
586 minstallexec libs/libphp5.so /usr/$(mlibdir)/libphp5.so || die
587
588 # install include
589 minstalldir /usr/include/${PNAME}/sapi/embed || die
590 minstallfile ${SRCDIR}/sapi/embed/php_embed.h /usr/include/${PNAME}/sapi/embed || die
591 }
592
593 src_install_php5-pear()
594 {
595 cd ${BUILDDIR}/build-pear
596 mmake EXTENSION_DIR=${PHP5_EXTENSIONS_DIR} PEAR_INSTALLDIR=${PHP5_PEAR_INSTALLDIR} install-pear || die
597
598 local i
599 for i in $(find ${BINDIR}/ -name '.*')
600 do
601 if [[ -e ${i} ]]
602 then
603 rm -rf ${i} || die ${i}
604 fi
605 done
606 }
607
608
609 # being a little tricky here:
610 for subpackage in ${SPLIT_PACKAGES}
611 do
612 # exclude all other packages than php5-addon-modules
613 case ${subpackage} in
614 php5) continue ;;
615 php5-cgi) continue ;;
616 php5-apache) continue ;;
617 php5-embedded) continue ;;
618 php5-pear) continue ;;
619 esac
620
621 eval "src_install_${subpackage}(){ install_php5_extensions ${subpackage#*-} || die; }"
622 done
623
624 # exceptions
625 src_install_php5-mysql()
626 {
627 install_php5_extensions mysql mysqli pdo_mysql || die
628 }
629
630 src_install_php5-odbc()
631 {
632 install_php5_extensions odbc pdo_odbc || die
633 }
634
635 src_install_php5-process()
636 {
637 install_php5_extensions sysvmsg sysvsem sysvshm posix || die
638 }
639
640 src_install_php5-sqlite()
641 {
642 install_php5_extensions sqlite sqlite3 pdo_sqlite || die
643 }
644
645 src_install_php5-xml()
646 {
647 install_php5_extension dom wddx xmlreader xmlwriter xls || die
648 }

Properties

Name Value
svn:keywords Id