/[gentoo-x86]/eclass/depend.php.eclass
Gentoo

Contents of /eclass/depend.php.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.21 - (hide annotations) (download)
Sat Sep 1 15:58:17 2007 UTC (7 years, 1 month ago) by jokey
Branch: MAIN
Changes since 1.20: +148 -65 lines
Bunch of php eclass docification

1 chtekk 1.18 # Copyright 1999-2007 Gentoo Foundation
2 stuart 1.1 # Distributed under the terms of the GNU General Public License v2
3 jokey 1.21 # $Header: $
4    
5     # Author: Stuart Herbert <stuart@gentoo.org>
6     # Author: Luca Longinotti <chtekk@gentoo.org>
7     # Author: Jakub Moc <jakub@gentoo.org> (documentation)
8    
9     # @ECLASS: depend.php.eclass
10     # @MAINTAINER:
11     # Gentoo PHP team <php-bugs@gentoo.org>
12     # @BLURB: Functions to allow ebuilds to depend on php[45] and check for specific features.
13     # @DESCRIPTION:
14     # This eclass provides functions that allow ebuilds to depend on php[45] and check
15     # for specific PHP features, SAPIs etc. Also provides dodoc-php wrapper to install
16     # documentation for PHP packages to php-specific location.
17 chtekk 1.18
18 stuart 1.1
19 chtekk 1.12 inherit eutils phpconfutils
20 stuart 1.1
21 trapni 1.4 # PHP4-only depend functions
22 jokey 1.21
23     # @FUNCTION: need_php4_cli
24     # @DESCRIPTION:
25     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP4
26     # with cli SAPI.
27 chtekk 1.12 need_php4_cli() {
28 stuart 1.1 DEPEND="${DEPEND} =virtual/php-4*"
29     RDEPEND="${RDEPEND} =virtual/php-4*"
30 chtekk 1.12 PHP_VERSION="4"
31 stuart 1.1 }
32    
33 jokey 1.21 # @FUNCTION: need_php4_httpd
34     # @DESCRIPTION:
35     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP4
36     # with either cgi or apache2 SAPI.
37 chtekk 1.12 need_php4_httpd() {
38 stuart 1.1 DEPEND="${DEPEND} =virtual/httpd-php-4*"
39     RDEPEND="${RDEPEND} =virtual/httpd-php-4*"
40 chtekk 1.12 PHP_VERSION="4"
41 stuart 1.1 }
42    
43 jokey 1.21 # @FUNCTION: need_php4
44     # @DESCRIPTION:
45     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP4
46     # (with any SAPI).
47 chtekk 1.12 need_php4() {
48 stuart 1.1 DEPEND="${DEPEND} =dev-lang/php-4*"
49     RDEPEND="${RDEPEND} =dev-lang/php-4*"
50 chtekk 1.12 PHP_VERSION="4"
51 stuart 1.1 PHP_SHARED_CAT="php4"
52     }
53    
54     # common settings go in here
55 chtekk 1.12 uses_php4() {
56 stuart 1.1 # cache this
57     libdir=$(get_libdir)
58    
59     PHPIZE="/usr/${libdir}/php4/bin/phpize"
60     PHPCONFIG="/usr/${libdir}/php4/bin/php-config"
61     PHPCLI="/usr/${libdir}/php4/bin/php"
62     PHPCGI="/usr/${libdir}/php4/bin/php-cgi"
63     PHP_PKG="`best_version =dev-lang/php-4*`"
64     PHPPREFIX="/usr/${libdir}/php4"
65 chtekk 1.17 EXT_DIR="`${PHPCONFIG} --extension-dir 2>/dev/null`"
66 stuart 1.1
67     einfo
68     einfo "Using ${PHP_PKG}"
69     einfo
70     }
71    
72 trapni 1.4 # PHP5-only depend functions
73 jokey 1.21
74     # @FUNCTION: need_php5_cli
75     # @DESCRIPTION:
76     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP5
77     # with cli SAPI.
78 chtekk 1.12 need_php5_cli() {
79 stuart 1.1 DEPEND="${DEPEND} =virtual/php-5*"
80     RDEPEND="${RDEPEND} =virtual/php-5*"
81 chtekk 1.12 PHP_VERSION="5"
82 stuart 1.1 }
83    
84 jokey 1.21 # @FUNCTION: need_php5_httpd
85     # @DESCRIPTION:
86     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP5
87     # with either cgi or apache2 SAPI.
88 chtekk 1.12 need_php5_httpd() {
89 stuart 1.1 DEPEND="${DEPEND} =virtual/httpd-php-5*"
90     RDEPEND="${RDEPEND} =virtual/httpd-php-5*"
91 chtekk 1.12 PHP_VERSION="5"
92 stuart 1.1 }
93    
94 jokey 1.21 # @FUNCTION: need_php5
95     # @DESCRIPTION:
96     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP5
97     # (with any SAPI).
98 chtekk 1.12 need_php5() {
99 stuart 1.1 DEPEND="${DEPEND} =dev-lang/php-5*"
100     RDEPEND="${RDEPEND} =dev-lang/php-5*"
101 chtekk 1.12 PHP_VERSION="5"
102 stuart 1.1 PHP_SHARED_CAT="php5"
103     }
104    
105     # common settings go in here
106 chtekk 1.12 uses_php5() {
107 stuart 1.1 # cache this
108     libdir=$(get_libdir)
109    
110     PHPIZE="/usr/${libdir}/php5/bin/phpize"
111     PHPCONFIG="/usr/${libdir}/php5/bin/php-config"
112     PHPCLI="/usr/${libdir}/php5/bin/php"
113     PHPCGI="/usr/${libdir}/php5/bin/php-cgi"
114     PHP_PKG="`best_version =dev-lang/php-5*`"
115     PHPPREFIX="/usr/${libdir}/php5"
116 chtekk 1.17 EXT_DIR="`${PHPCONFIG} --extension-dir 2>/dev/null`"
117 stuart 1.1
118     einfo
119     einfo "Using ${PHP_PKG}"
120     einfo
121     }
122    
123 trapni 1.4 # general PHP depend functions
124 jokey 1.21
125     # @FUNCTION: need_php_cli
126     # @DESCRIPTION:
127     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP
128     # (any version) with cli SAPI.
129 chtekk 1.12 need_php_cli() {
130 trapni 1.4 DEPEND="${DEPEND} virtual/php"
131     RDEPEND="${RDEPEND} virtual/php"
132     }
133    
134 jokey 1.21 # @FUNCTION: need_php_httpd
135     # @DESCRIPTION:
136     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP
137     # (any version) with either cgi or apache2 SAPI.
138 chtekk 1.12 need_php_httpd() {
139 trapni 1.4 DEPEND="${DEPEND} virtual/httpd-php"
140     RDEPEND="${RDEPEND} virtual/httpd-php"
141     }
142    
143 jokey 1.21 # @FUNCTION: need_php
144     # @DESCRIPTION:
145     # Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP
146     # (any version with any SAPI).
147 chtekk 1.12 need_php() {
148 stuart 1.1 DEPEND="${DEPEND} dev-lang/php"
149     RDEPEND="${RDEPEND} dev-lang/php"
150     PHP_SHARED_CAT="php"
151     }
152    
153 jokey 1.21 # @FUNCTION: need_php_by_category
154     # @DESCRIPTION:
155     # Set this after setting DEPEND/RDEPEND in your ebuild to depend on PHP version
156     # determined by ${CATEGORY} - any PHP version, PHP4 or PHP5 for dev-php, dev-php4 and
157     # dev-php5, respectively.
158 chtekk 1.12 need_php_by_category() {
159 stuart 1.1 case "${CATEGORY}" in
160     dev-php) need_php ;;
161     dev-php4) need_php4 ;;
162     dev-php5) need_php5 ;;
163 chtekk 1.18 *) die "Version of PHP required by packages in category ${CATEGORY} unknown"
164 stuart 1.1 esac
165     }
166    
167 chtekk 1.12
168 jokey 1.21 # @FUNCTION: has_php
169     # @DESCRIPTION:
170     # Call this function from your pkg_setup, src_compile, src_install etc. if you
171     # need to know which PHP version is being used and where the PHP binaries/data
172     # are installed.
173 chtekk 1.12 has_php() {
174     # If PHP_PKG is already set, then we have remembered our PHP settings
175     # from last time
176     if [[ -n ${PHP_PKG} ]] ; then
177     return
178     fi
179    
180     if [[ -z ${PHP_VERSION} ]] ; then
181     # Detect which PHP version we have installed
182     if has_version '=dev-lang/php-5*' ; then
183     PHP_VERSION="5"
184     elif has_version '=dev-lang/php-4*' ; then
185     PHP_VERSION="4"
186     else
187     die "Unable to find an installed dev-lang/php package"
188     fi
189     fi
190    
191     # If we get here, then PHP_VERSION tells us which version of PHP we
192     # want to use
193     uses_php${PHP_VERSION}
194     }
195    
196 jokey 1.21 # @FUNCTION: require_php_sapi_from
197     # @USAGE: <list of SAPIs>
198     # @DESCRIPTION:
199 chtekk 1.12 # Call this function from pkg_setup if your package only works with
200 jokey 1.21 # specific SAPI(s) and specify a list of PHP SAPI USE flags that are
201     # required (one or more from cli, cgi, apache2) as arguments.
202     # Returns if any of the listed SAPIs have been installed, dies if none
203     # of them is available.
204     #
205     # Unfortunately, if you want to be really sure that the required SAPI is
206     # provided by PHP, you will have to use this function or similar ones (like
207     # require_php_cli or require_php_cgi) in pkg_setup until we are able to
208     # depend on USE flags being enabled. The above described need_php[45]_cli
209     # and need_php[45]_httpd functions cannot guarantee these requirements.
210     # See Bug 2272 for details.
211 chtekk 1.12 require_php_sapi_from() {
212 stuart 1.1 has_php
213    
214 chtekk 1.12 local has_sapi="0"
215 stuart 1.1 local x
216    
217     einfo "Checking for compatible SAPI(s)"
218    
219     for x in $@ ; do
220 chtekk 1.13 if built_with_use =${PHP_PKG} ${x} || phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
221 stuart 1.1 einfo " Discovered compatible SAPI ${x}"
222 chtekk 1.12 has_sapi="1"
223 stuart 1.1 fi
224     done
225    
226 chtekk 1.12 if [[ "${has_sapi}" == "1" ]] ; then
227 stuart 1.1 return
228     fi
229    
230     eerror
231     eerror "${PHP_PKG} needs to be re-installed with one of the following"
232     eerror "USE flags enabled:"
233     eerror
234     eerror " $@"
235     eerror
236 chtekk 1.12 die "No compatible PHP SAPIs found"
237 stuart 1.1 }
238    
239 jokey 1.21 # @FUNCTION: require_php_with_use
240     # @USAGE: <list of USE flags>
241     # @DESCRIPTION:
242 chtekk 1.12 # Call this function from pkg_setup if your package requires PHP compiled
243 jokey 1.21 # with specific USE flags. Returns if all of the listed USE flags are enabled.
244     # Dies if any of the listed USE flags are disabled.
245 stuart 1.1
246 jokey 1.21 # @VARIABLE: PHPCHECKNODIE
247     # @DESCRIPTION:
248     # You can set PHPCHECKNODIE to non-empty value in your ebuild to chain multiple
249     # require_php_with_(any)_use checks without making the ebuild die on every failure.
250     # This is useful in cases when certain PHP features are only required if specific
251     # USE flag(s) are enabled for that ebuild.
252     # @CODE
253     # Example:
254     #
255     # local flags="pcre session snmp sockets wddx"
256     # use mysql && flags="${flags} mysql"
257     # use postgres && flags="${flags} postgres"
258     # if ! PHPCHECKNODIE="yes" require_php_with_use ${flags} \
259     # || ! PHPCHECKNODIE="yes" require_php_with_any_use gd gd-external ; then
260     # die "Re-install ${PHP_PKG} with ${flags} and either gd or gd-external"
261     # fi
262     # @CODE
263 chtekk 1.12 require_php_with_use() {
264 stuart 1.1 has_php
265    
266 chtekk 1.11 local missing_use=""
267 stuart 1.1 local x
268    
269 chtekk 1.14 einfo "Checking for required PHP feature(s) ..."
270 stuart 1.1
271     for x in $@ ; do
272 chtekk 1.12 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
273 chtekk 1.14 einfo " Discovered missing USE flag: ${x}"
274 stuart 1.1 missing_use="${missing_use} ${x}"
275     fi
276     done
277    
278 chtekk 1.15 if [[ -z "${missing_use}" ]] ; then
279     if [[ -z "${PHPCHECKNODIE}" ]] ; then
280     return
281     else
282     return 0
283     fi
284 stuart 1.1 fi
285    
286 chtekk 1.15 if [[ -z "${PHPCHECKNODIE}" ]] ; then
287     eerror
288     eerror "${PHP_PKG} needs to be re-installed with all of the following"
289     eerror "USE flags enabled:"
290     eerror
291     eerror " $@"
292     eerror
293     die "Missing PHP USE flags found"
294     else
295     return 1
296     fi
297 stuart 1.1 }
298    
299 jokey 1.21 # @FUNCTION: require_php_with_any_use
300     # @USAGE: <list of USE flags>
301     # @DESCRIPTION:
302     # Call this function from pkg_setup if your package requires PHP compiled with
303     # any of specified USE flags. Returns if any of the listed USE flags are enabled.
304     # Dies if all of the listed USE flags are disabled.
305 chtekk 1.12 require_php_with_any_use() {
306     has_php
307 stuart 1.1
308 chtekk 1.12 local missing_use=""
309     local x
310 hollow 1.3
311 chtekk 1.14 einfo "Checking for required PHP feature(s) ..."
312 stuart 1.1
313 chtekk 1.12 for x in $@ ; do
314     if built_with_use =${PHP_PKG} ${x} || phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
315     einfo " USE flag ${x} is enabled, ok ..."
316     return
317 stuart 1.1 else
318 chtekk 1.12 missing_use="${missing_use} ${x}"
319 stuart 1.1 fi
320 chtekk 1.12 done
321    
322 chtekk 1.15 if [[ -z "${missing_use}" ]] ; then
323     if [[ -z "${PHPCHECKNODIE}" ]] ; then
324     return
325     else
326     return 0
327     fi
328 stuart 1.1 fi
329    
330 chtekk 1.15 if [[ -z "${PHPCHECKNODIE}" ]] ; then
331     eerror
332     eerror "${PHP_PKG} needs to be re-installed with any of the following"
333     eerror "USE flags enabled:"
334     eerror
335     eerror " $@"
336     eerror
337     die "Missing PHP USE flags found"
338     else
339     return 1
340     fi
341 stuart 1.1 }
342    
343     # ========================================================================
344     # has_*() functions
345     #
346 chtekk 1.12 # These functions return 0 if the condition is satisfied, 1 otherwise
347 stuart 1.1 # ========================================================================
348    
349 jokey 1.21 # @FUNCTION: has_zts
350     # @DESCRIPTION:
351     # Check if our PHP was compiled with ZTS (Zend Thread Safety) enabled.
352     # @RETURN: 0 if true, 1 otherwise
353 chtekk 1.12 has_zts() {
354 stuart 1.1 has_php
355    
356 chtekk 1.13 if built_with_use =${PHP_PKG} apache2 threads || phpconfutils_built_with_use =${PHP_PKG} apache2 threads ; then
357 stuart 1.1 return 0
358     fi
359    
360     return 1
361     }
362    
363 jokey 1.21 # @FUNCTION: has_debug
364     # @DESCRIPTION:
365     # Check if our PHP was built with debug support enabled.
366     # @RETURN: 0 if true, 1 otherwise
367 chtekk 1.18 has_debug() {
368 hollow 1.3 has_php
369    
370 chtekk 1.18 if built_with_use =${PHP_PKG} debug || phpconfutils_built_with_use =${PHP_PKG} debug ; then
371 hollow 1.3 return 0
372     fi
373    
374     return 1
375     }
376    
377 jokey 1.21 # @FUNCTION: has_concurrentmodphp
378     # @DESCRIPTION:
379     # Check if our PHP was built with the concurrentmodphp support enabled.
380     # @RETURN: 0 if true, 1 otherwise
381 chtekk 1.18 has_concurrentmodphp() {
382 chtekk 1.12 has_php
383    
384 chtekk 1.18 if built_with_use =${PHP_PKG} apache2 concurrentmodphp || phpconfutils_built_with_use =${PHP_PKG} apache2 concurrentmodphp ; then
385 chtekk 1.12 return 0
386     fi
387    
388     return 1
389     }
390    
391 stuart 1.1 # ========================================================================
392     # require_*() functions
393     #
394 chtekk 1.12 # These functions die() if PHP was built without the required features
395 stuart 1.1 # ========================================================================
396    
397 jokey 1.21 # @FUNCTION: require_pdo
398     # @DESCRIPTION:
399     # Require a PHP built with PDO support (PHP5 only).
400     # @RETURN: die if feature is missing
401 chtekk 1.12 require_pdo() {
402 stuart 1.1 has_php
403    
404 chtekk 1.12 # Do we have PHP5 installed?
405     if [[ "${PHP_VERSION}" == "4" ]] ; then
406 stuart 1.1 eerror
407 hollow 1.3 eerror "This package requires PDO."
408     eerror "PDO is only available for PHP 5."
409 chtekk 1.18 eerror "You must install >=dev-lang/php-5.1 with"
410     eerror "either the 'pdo' or the 'pdo-external'"
411     eerror "USE flags turned on."
412 stuart 1.1 eerror
413     die "PHP 5 not installed"
414     fi
415    
416 chtekk 1.12 # Was PHP5 compiled with internal PDO support?
417 chtekk 1.13 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then
418 stuart 1.1 return
419     fi
420    
421 chtekk 1.12 # Ok, maybe PDO was built as an external extension?
422 chtekk 1.13 if ( built_with_use =${PHP_PKG} pdo-external || phpconfutils_built_with_use =${PHP_PKG} pdo-external ) && has_version 'dev-php5/pecl-pdo' ; then
423 stuart 1.1 return
424     fi
425    
426 chtekk 1.12 # Ok, as last resort, it suffices that pecl-pdo was installed to have PDO support
427     if has_version 'dev-php5/pecl-pdo' ; then
428 stuart 1.1 return
429     fi
430    
431 chtekk 1.18 # If we get here, then we don't have PDO support
432 stuart 1.1 eerror
433     eerror "No PDO extension for PHP found."
434     eerror "Please note that PDO only exists for PHP 5."
435     eerror "Please install a PDO extension for PHP 5,"
436 chtekk 1.18 eerror "you must install >=dev-lang/php-5.1 with"
437     eerror "either the 'pdo' or the 'pdo-external'"
438     eerror "USE flags turned on."
439 stuart 1.1 eerror
440 chtekk 1.12 die "No PDO extension for PHP 5 found"
441 stuart 1.1 }
442    
443 jokey 1.21 # @FUNCTION: require_php_cli
444     # @DESCRIPTION:
445     # Determines which installed PHP version has the CLI SAPI enabled.
446     # Useful for PEAR stuff, or anything which needs to run PHP script
447     # depending on the CLI SAPI.
448     # @RETURN: die if feature is missing
449 chtekk 1.12 require_php_cli() {
450     # If PHP_PKG is set, then we have remembered our PHP settings
451 stuart 1.1 # from last time
452 chtekk 1.11 if [[ -n ${PHP_PKG} ]] ; then
453 stuart 1.1 return
454     fi
455    
456 chtekk 1.12 local PHP_PACKAGE_FOUND=""
457    
458     # Detect which PHP version we have installed
459 chtekk 1.6 if has_version '=dev-lang/php-4*' ; then
460 chtekk 1.12 PHP_PACKAGE_FOUND="1"
461 chtekk 1.6 pkg="`best_version '=dev-lang/php-4*'`"
462 chtekk 1.13 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
463 chtekk 1.12 PHP_VERSION="4"
464 chtekk 1.6 fi
465 sebastian 1.10 fi
466    
467     if has_version '=dev-lang/php-5*' ; then
468 chtekk 1.12 PHP_PACKAGE_FOUND="1"
469 stuart 1.1 pkg="`best_version '=dev-lang/php-5*'`"
470 chtekk 1.13 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
471 chtekk 1.12 PHP_VERSION="5"
472 stuart 1.1 fi
473 sebastian 1.10 fi
474    
475 chtekk 1.11 if [[ -z ${PHP_PACKAGE_FOUND} ]] ; then
476 stuart 1.1 die "Unable to find an installed dev-lang/php package"
477     fi
478    
479 chtekk 1.11 if [[ -z ${PHP_VERSION} ]] ; then
480 hoffie 1.20 die "No PHP CLI installed. Re-emerge dev-lang/php with USE=cli."
481 stuart 1.1 fi
482    
483 chtekk 1.12 # If we get here, then PHP_VERSION tells us which version of PHP we
484 stuart 1.1 # want to use
485 hollow 1.3 uses_php${PHP_VERSION}
486     }
487    
488 jokey 1.21 # @FUNCTION: require_php_cgi
489     # @DESCRIPTION:
490     # Determines which installed PHP version has the CGI SAPI enabled.
491     # Useful for anything which needs to run PHP scripts depending on the CGI SAPI.
492     # @RETURN: die if feature is missing
493 chtekk 1.12 require_php_cgi() {
494     # If PHP_PKG is set, then we have remembered our PHP settings
495 hollow 1.3 # from last time
496 chtekk 1.11 if [[ -n ${PHP_PKG} ]] ; then
497 hollow 1.3 return
498     fi
499    
500 chtekk 1.12 local PHP_PACKAGE_FOUND=""
501    
502     # Detect which PHP version we have installed
503 chtekk 1.6 if has_version '=dev-lang/php-4*' ; then
504 chtekk 1.12 PHP_PACKAGE_FOUND="1"
505 chtekk 1.6 pkg="`best_version '=dev-lang/php-4*'`"
506 chtekk 1.13 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
507 chtekk 1.12 PHP_VERSION="4"
508 chtekk 1.6 fi
509 sebastian 1.9 fi
510    
511     if has_version '=dev-lang/php-5*' ; then
512 chtekk 1.12 PHP_PACKAGE_FOUND="1"
513 hollow 1.3 pkg="`best_version '=dev-lang/php-5*'`"
514 chtekk 1.13 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
515 chtekk 1.12 PHP_VERSION="5"
516 hollow 1.3 fi
517 sebastian 1.9 fi
518 chtekk 1.11
519     if [[ -z ${PHP_PACKAGE_FOUND} ]] ; then
520 hollow 1.3 die "Unable to find an installed dev-lang/php package"
521     fi
522    
523 chtekk 1.11 if [[ -z ${PHP_VERSION} ]] ; then
524 hoffie 1.20 die "No PHP CGI installed. Re-emerge dev-lang/php with USE=cgi."
525 hollow 1.3 fi
526    
527 chtekk 1.12 # If we get here, then PHP_VERSION tells us which version of PHP we
528 hollow 1.3 # want to use
529 stuart 1.1 uses_php${PHP_VERSION}
530     }
531    
532 jokey 1.21 # @FUNCTION: require_sqlite
533     # @DESCRIPTION:
534 chtekk 1.12 # Require a PHP built with SQLite support
535 jokey 1.21 # @RETURN: die if feature is missing
536 chtekk 1.12 require_sqlite() {
537 stuart 1.1 has_php
538    
539 chtekk 1.12 # Has our PHP been built with SQLite support?
540     if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then
541 stuart 1.1 return
542     fi
543    
544 chtekk 1.12 # Do we have pecl-sqlite installed for PHP4?
545     if [[ "${PHP_VERSION}" == "4" ]] ; then
546     if has_version 'dev-php4/pecl-sqlite' ; then
547 stuart 1.1 return
548     fi
549     fi
550    
551 chtekk 1.12 # If we get here, then we don't have any SQLite support for PHP installed
552 stuart 1.1 eerror
553 chtekk 1.12 eerror "No SQLite extension for PHP found."
554     eerror "Please install an SQLite extension for PHP,"
555 stuart 1.1 eerror "this is done best by simply adding the"
556     eerror "'sqlite' USE flag when emerging dev-lang/php."
557     eerror
558 chtekk 1.12 die "No SQLite extension for PHP found"
559 stuart 1.1 }
560 hollow 1.3
561 jokey 1.21 # @FUNCTION: require_gd
562     # @DESCRIPTION:
563 chtekk 1.12 # Require a PHP built with GD support
564 jokey 1.21 # @RETURN: die if feature is missing
565 chtekk 1.12 require_gd() {
566 hollow 1.3 has_php
567    
568 chtekk 1.12 # Do we have the internal GD support installed?
569     if built_with_use =${PHP_PKG} gd || phpconfutils_built_with_use =${PHP_PKG} gd ; then
570 hollow 1.3 return
571     fi
572    
573 chtekk 1.12 # Ok, maybe GD was built using the external library support?
574     if built_with_use =${PHP_PKG} gd-external || phpconfutils_built_with_use =${PHP_PKG} gd-external ; then
575 hollow 1.3 return
576     fi
577    
578 chtekk 1.12 # If we get here, then we have no GD support
579 hollow 1.3 eerror
580     eerror "No GD support for PHP found."
581     eerror "Please install the GD support for PHP,"
582     eerror "you must install dev-lang/php with either"
583     eerror "the 'gd' or the 'gd-external' USE flags"
584     eerror "turned on."
585     eerror
586     die "No GD support found for PHP"
587     }
588 chtekk 1.6
589     # ========================================================================
590     # Misc functions
591     #
592     # These functions provide miscellaneous checks and functionality.
593     # ========================================================================
594    
595 jokey 1.21 # @FUNCTION: php_binary_extension
596     # @DESCRIPTION:
597     # Executes some checks needed when installing a binary PHP extension.
598 chtekk 1.6 php_binary_extension() {
599     has_php
600    
601 chtekk 1.12 local PUSE_ENABLED=""
602    
603     # Binary extensions do not support the change of PHP
604 chtekk 1.6 # API version, so they can't be installed when USE flags
605 chtekk 1.16 # are enabled which change the PHP API version, they also
606     # don't provide correctly versioned symbols for our use
607 chtekk 1.6
608 chtekk 1.18 if has_debug ; then
609 chtekk 1.6 eerror
610     eerror "You cannot install binary PHP extensions"
611     eerror "when the 'debug' USE flag is enabled!"
612     eerror "Please reemerge dev-lang/php with the"
613     eerror "'debug' USE flag turned off."
614     eerror
615 chtekk 1.12 PUSE_ENABLED="1"
616     fi
617    
618 chtekk 1.18 if has_concurrentmodphp ; then
619 chtekk 1.16 eerror
620     eerror "You cannot install binary PHP extensions when"
621     eerror "the 'concurrentmodphp' USE flag is enabled!"
622     eerror "Please reemerge dev-lang/php with the"
623     eerror "'concurrentmodphp' USE flag turned off."
624     eerror
625     PUSE_ENABLED="1"
626     fi
627    
628 chtekk 1.12 if [[ -n ${PUSE_ENABLED} ]] ; then
629 chtekk 1.18 die "'debug' and/or 'concurrentmodphp' USE flags turned on!"
630 chtekk 1.6 fi
631     }
632    
633 jokey 1.21 # @FUNCTION: dodoc-php
634     # @USAGE: <list of docs>
635     # @DESCRIPTION:
636     # Alternative to dodoc function for use in our PHP eclasses and ebuilds.
637     # Stored here because depend.php gets always sourced everywhere in the PHP
638     # ebuilds and eclasses. It simply is dodoc with a changed path to the docs.
639     # NOTE: No support for docinto is provided!
640 chtekk 1.12 dodoc-php() {
641     if [[ $# -lt 1 ]] ; then
642 chtekk 1.6 echo "$0: at least one argument needed" 1>&2
643     exit 1
644     fi
645    
646     phpdocdir="${D}/usr/share/doc/${CATEGORY}/${PF}/"
647    
648 chtekk 1.12 if [[ ! -d "${phpdocdir}" ]] ; then
649 chtekk 1.6 install -d "${phpdocdir}"
650     fi
651    
652 chtekk 1.12 for x in $@ ; do
653     if [[ -s "${x}" ]] ; then
654 chtekk 1.6 install -m0644 "${x}" "${phpdocdir}"
655     gzip -f -9 "${phpdocdir}/${x##*/}"
656 chtekk 1.12 elif [[ ! -e "${x}" ]] ; then
657 chtekk 1.6 echo "dodoc-php: ${x} does not exist" 1>&2
658     fi
659     done
660     }

  ViewVC Help
Powered by ViewVC 1.1.20