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

Contents of /eclass/depend.php.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.23 - (hide annotations) (download)
Sun Jan 6 19:30:24 2008 UTC (6 years, 6 months ago) by swegener
Branch: MAIN
Changes since 1.22: +6 -6 lines
whitespace

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 swegener 1.23 # $Header: /var/cvsroot/gentoo-x86/eclass/depend.php.eclass,v 1.22 2007/12/24 12:29:36 armin76 Exp $
4 jokey 1.21
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 swegener 1.23 # This eclass provides functions that allow ebuilds to depend on php[45] and check
15 jokey 1.21 # 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 armin76 1.22 PHP_PKG="$(best_version =dev-lang/php-4*)"
64 stuart 1.1 PHPPREFIX="/usr/${libdir}/php4"
65 armin76 1.22 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 armin76 1.22 PHP_PKG="$(best_version =dev-lang/php-5*)"
115 stuart 1.1 PHPPREFIX="/usr/${libdir}/php5"
116 armin76 1.22 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 swegener 1.23 # need to know which PHP version is being used and where the PHP binaries/data
172 jokey 1.21 # 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 swegener 1.23 # depend on USE flags being enabled. The above described need_php[45]_cli
209 jokey 1.21 # 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 swegener 1.23 # This is useful in cases when certain PHP features are only required if specific
251 jokey 1.21 # 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 armin76 1.22 # This function is now redundant and DEPRECATED since
401     # pdo-external use flag and pecl-pdo-* ebuilds were removed.
402     # You should use require_php_with_use pdo instead now.
403 jokey 1.21 # @RETURN: die if feature is missing
404 chtekk 1.12 require_pdo() {
405 stuart 1.1 has_php
406    
407 chtekk 1.12 # Do we have PHP5 installed?
408     if [[ "${PHP_VERSION}" == "4" ]] ; then
409 stuart 1.1 eerror
410 hollow 1.3 eerror "This package requires PDO."
411     eerror "PDO is only available for PHP 5."
412 armin76 1.22 eerror "You must install >=dev-lang/php-5.1 with USE=\"pdo\"."
413     eerror "pdo USE flags turned on."
414 stuart 1.1 eerror
415     die "PHP 5 not installed"
416     fi
417    
418 chtekk 1.12 # Was PHP5 compiled with internal PDO support?
419 chtekk 1.13 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then
420 stuart 1.1 return
421 armin76 1.22 else
422     eerror
423     eerror "No PDO extension for PHP found."
424     eerror "Please note that PDO only exists for PHP 5."
425     eerror "Please install a PDO extension for PHP 5."
426     eerror "You must install >=dev-lang/php-5.1 with USE=\"pdo\"."
427     eerror
428     die "No PDO extension for PHP 5 found"
429 stuart 1.1 fi
430     }
431    
432 jokey 1.21 # @FUNCTION: require_php_cli
433     # @DESCRIPTION:
434     # Determines which installed PHP version has the CLI SAPI enabled.
435     # Useful for PEAR stuff, or anything which needs to run PHP script
436     # depending on the CLI SAPI.
437     # @RETURN: die if feature is missing
438 chtekk 1.12 require_php_cli() {
439     # If PHP_PKG is set, then we have remembered our PHP settings
440 stuart 1.1 # from last time
441 chtekk 1.11 if [[ -n ${PHP_PKG} ]] ; then
442 stuart 1.1 return
443     fi
444    
445 chtekk 1.12 local PHP_PACKAGE_FOUND=""
446    
447     # Detect which PHP version we have installed
448 chtekk 1.6 if has_version '=dev-lang/php-4*' ; then
449 chtekk 1.12 PHP_PACKAGE_FOUND="1"
450 armin76 1.22 pkg="$(best_version '=dev-lang/php-4*')"
451 chtekk 1.13 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
452 chtekk 1.12 PHP_VERSION="4"
453 chtekk 1.6 fi
454 sebastian 1.10 fi
455    
456     if has_version '=dev-lang/php-5*' ; then
457 chtekk 1.12 PHP_PACKAGE_FOUND="1"
458 armin76 1.22 pkg="$(best_version '=dev-lang/php-5*')"
459 chtekk 1.13 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
460 chtekk 1.12 PHP_VERSION="5"
461 stuart 1.1 fi
462 sebastian 1.10 fi
463    
464 chtekk 1.11 if [[ -z ${PHP_PACKAGE_FOUND} ]] ; then
465 stuart 1.1 die "Unable to find an installed dev-lang/php package"
466     fi
467    
468 chtekk 1.11 if [[ -z ${PHP_VERSION} ]] ; then
469 hoffie 1.20 die "No PHP CLI installed. Re-emerge dev-lang/php with USE=cli."
470 stuart 1.1 fi
471    
472 chtekk 1.12 # If we get here, then PHP_VERSION tells us which version of PHP we
473 stuart 1.1 # want to use
474 hollow 1.3 uses_php${PHP_VERSION}
475     }
476    
477 jokey 1.21 # @FUNCTION: require_php_cgi
478     # @DESCRIPTION:
479     # Determines which installed PHP version has the CGI SAPI enabled.
480     # Useful for anything which needs to run PHP scripts depending on the CGI SAPI.
481     # @RETURN: die if feature is missing
482 chtekk 1.12 require_php_cgi() {
483     # If PHP_PKG is set, then we have remembered our PHP settings
484 hollow 1.3 # from last time
485 chtekk 1.11 if [[ -n ${PHP_PKG} ]] ; then
486 hollow 1.3 return
487     fi
488    
489 chtekk 1.12 local PHP_PACKAGE_FOUND=""
490    
491     # Detect which PHP version we have installed
492 chtekk 1.6 if has_version '=dev-lang/php-4*' ; then
493 chtekk 1.12 PHP_PACKAGE_FOUND="1"
494 armin76 1.22 pkg="$(best_version '=dev-lang/php-4*')"
495 chtekk 1.13 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
496 chtekk 1.12 PHP_VERSION="4"
497 chtekk 1.6 fi
498 sebastian 1.9 fi
499    
500     if has_version '=dev-lang/php-5*' ; then
501 chtekk 1.12 PHP_PACKAGE_FOUND="1"
502 armin76 1.22 pkg="$(best_version '=dev-lang/php-5*')"
503 chtekk 1.13 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
504 chtekk 1.12 PHP_VERSION="5"
505 hollow 1.3 fi
506 sebastian 1.9 fi
507 chtekk 1.11
508     if [[ -z ${PHP_PACKAGE_FOUND} ]] ; then
509 hollow 1.3 die "Unable to find an installed dev-lang/php package"
510     fi
511    
512 chtekk 1.11 if [[ -z ${PHP_VERSION} ]] ; then
513 hoffie 1.20 die "No PHP CGI installed. Re-emerge dev-lang/php with USE=cgi."
514 hollow 1.3 fi
515    
516 chtekk 1.12 # If we get here, then PHP_VERSION tells us which version of PHP we
517 hollow 1.3 # want to use
518 stuart 1.1 uses_php${PHP_VERSION}
519     }
520    
521 jokey 1.21 # @FUNCTION: require_sqlite
522     # @DESCRIPTION:
523 chtekk 1.12 # Require a PHP built with SQLite support
524 jokey 1.21 # @RETURN: die if feature is missing
525 chtekk 1.12 require_sqlite() {
526 stuart 1.1 has_php
527    
528 chtekk 1.12 # Has our PHP been built with SQLite support?
529     if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then
530 stuart 1.1 return
531     fi
532    
533 chtekk 1.12 # Do we have pecl-sqlite installed for PHP4?
534     if [[ "${PHP_VERSION}" == "4" ]] ; then
535     if has_version 'dev-php4/pecl-sqlite' ; then
536 stuart 1.1 return
537     fi
538     fi
539    
540 chtekk 1.12 # If we get here, then we don't have any SQLite support for PHP installed
541 stuart 1.1 eerror
542 chtekk 1.12 eerror "No SQLite extension for PHP found."
543     eerror "Please install an SQLite extension for PHP,"
544 stuart 1.1 eerror "this is done best by simply adding the"
545     eerror "'sqlite' USE flag when emerging dev-lang/php."
546     eerror
547 chtekk 1.12 die "No SQLite extension for PHP found"
548 stuart 1.1 }
549 hollow 1.3
550 jokey 1.21 # @FUNCTION: require_gd
551     # @DESCRIPTION:
552 chtekk 1.12 # Require a PHP built with GD support
553 jokey 1.21 # @RETURN: die if feature is missing
554 chtekk 1.12 require_gd() {
555 hollow 1.3 has_php
556    
557 chtekk 1.12 # Do we have the internal GD support installed?
558     if built_with_use =${PHP_PKG} gd || phpconfutils_built_with_use =${PHP_PKG} gd ; then
559 hollow 1.3 return
560     fi
561    
562 chtekk 1.12 # Ok, maybe GD was built using the external library support?
563     if built_with_use =${PHP_PKG} gd-external || phpconfutils_built_with_use =${PHP_PKG} gd-external ; then
564 hollow 1.3 return
565     fi
566    
567 chtekk 1.12 # If we get here, then we have no GD support
568 hollow 1.3 eerror
569     eerror "No GD support for PHP found."
570     eerror "Please install the GD support for PHP,"
571     eerror "you must install dev-lang/php with either"
572     eerror "the 'gd' or the 'gd-external' USE flags"
573     eerror "turned on."
574     eerror
575     die "No GD support found for PHP"
576     }
577 chtekk 1.6
578     # ========================================================================
579     # Misc functions
580     #
581     # These functions provide miscellaneous checks and functionality.
582     # ========================================================================
583    
584 jokey 1.21 # @FUNCTION: php_binary_extension
585     # @DESCRIPTION:
586     # Executes some checks needed when installing a binary PHP extension.
587 chtekk 1.6 php_binary_extension() {
588     has_php
589    
590 chtekk 1.12 local PUSE_ENABLED=""
591    
592     # Binary extensions do not support the change of PHP
593 chtekk 1.6 # API version, so they can't be installed when USE flags
594 chtekk 1.16 # are enabled which change the PHP API version, they also
595     # don't provide correctly versioned symbols for our use
596 chtekk 1.6
597 chtekk 1.18 if has_debug ; then
598 chtekk 1.6 eerror
599     eerror "You cannot install binary PHP extensions"
600     eerror "when the 'debug' USE flag is enabled!"
601     eerror "Please reemerge dev-lang/php with the"
602     eerror "'debug' USE flag turned off."
603     eerror
604 chtekk 1.12 PUSE_ENABLED="1"
605     fi
606    
607 chtekk 1.18 if has_concurrentmodphp ; then
608 chtekk 1.16 eerror
609     eerror "You cannot install binary PHP extensions when"
610     eerror "the 'concurrentmodphp' USE flag is enabled!"
611     eerror "Please reemerge dev-lang/php with the"
612     eerror "'concurrentmodphp' USE flag turned off."
613     eerror
614     PUSE_ENABLED="1"
615     fi
616    
617 chtekk 1.12 if [[ -n ${PUSE_ENABLED} ]] ; then
618 chtekk 1.18 die "'debug' and/or 'concurrentmodphp' USE flags turned on!"
619 chtekk 1.6 fi
620     }
621    
622 jokey 1.21 # @FUNCTION: dodoc-php
623     # @USAGE: <list of docs>
624     # @DESCRIPTION:
625     # Alternative to dodoc function for use in our PHP eclasses and ebuilds.
626 swegener 1.23 # Stored here because depend.php gets always sourced everywhere in the PHP
627 jokey 1.21 # ebuilds and eclasses. It simply is dodoc with a changed path to the docs.
628     # NOTE: No support for docinto is provided!
629 chtekk 1.12 dodoc-php() {
630     if [[ $# -lt 1 ]] ; then
631 chtekk 1.6 echo "$0: at least one argument needed" 1>&2
632     exit 1
633     fi
634    
635     phpdocdir="${D}/usr/share/doc/${CATEGORY}/${PF}/"
636    
637 chtekk 1.12 if [[ ! -d "${phpdocdir}" ]] ; then
638 chtekk 1.6 install -d "${phpdocdir}"
639     fi
640    
641 chtekk 1.12 for x in $@ ; do
642     if [[ -s "${x}" ]] ; then
643 chtekk 1.6 install -m0644 "${x}" "${phpdocdir}"
644     gzip -f -9 "${phpdocdir}/${x##*/}"
645 chtekk 1.12 elif [[ ! -e "${x}" ]] ; then
646 chtekk 1.6 echo "dodoc-php: ${x} does not exist" 1>&2
647     fi
648     done
649     }

  ViewVC Help
Powered by ViewVC 1.1.20