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

Diff of /eclass/depend.php.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.25 Revision 1.27
1# Copyright 1999-2007 Gentoo Foundation 1# Copyright 1999-2007 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.php.eclass,v 1.25 2008/02/26 16:26:08 armin76 Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.php.eclass,v 1.27 2010/10/02 15:23:57 olemarkus Exp $
4 4
5# Author: Stuart Herbert <stuart@gentoo.org> 5# Author: Stuart Herbert <stuart@gentoo.org>
6# Author: Luca Longinotti <chtekk@gentoo.org> 6# Author: Luca Longinotti <chtekk@gentoo.org>
7# Author: Jakub Moc <jakub@gentoo.org> (documentation) 7# Author: Jakub Moc <jakub@gentoo.org> (documentation)
8 8
9# @ECLASS: depend.php.eclass 9# @ECLASS: depend.php.eclass
10# @MAINTAINER: 10# @MAINTAINER:
11# Gentoo PHP team <php-bugs@gentoo.org> 11# Gentoo PHP team <php-bugs@gentoo.org>
12# @BLURB: Functions to allow ebuilds to depend on php[45] and check for specific features. 12# @BLURB: Functions to allow ebuilds to depend on php5 and check for specific features.
13# @DESCRIPTION: 13# @DESCRIPTION:
14# This eclass provides functions that allow ebuilds to depend on php[45] and check 14# This eclass provides functions that allow ebuilds to depend on php5 and check
15# for specific PHP features, SAPIs etc. Also provides dodoc-php wrapper to install 15# for specific PHP features, SAPIs etc. Also provides dodoc-php wrapper to install
16# documentation for PHP packages to php-specific location. 16# documentation for PHP packages to php-specific location.
17 17
18 18
19inherit eutils phpconfutils 19inherit eutils phpconfutils
20
21# PHP4-only depend functions
22
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.
27need_php4_cli() {
28 DEPEND="${DEPEND} =virtual/php-4*"
29 RDEPEND="${RDEPEND} =virtual/php-4*"
30 PHP_VERSION="4"
31}
32
33# @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.
37need_php4_httpd() {
38 DEPEND="${DEPEND} =virtual/httpd-php-4*"
39 RDEPEND="${RDEPEND} =virtual/httpd-php-4*"
40 PHP_VERSION="4"
41}
42
43# @FUNCTION: need_php4
44# @DESCRIPTION:
45# Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP4
46# (with any SAPI).
47need_php4() {
48 DEPEND="${DEPEND} =dev-lang/php-4*"
49 RDEPEND="${RDEPEND} =dev-lang/php-4*"
50 PHP_VERSION="4"
51 PHP_SHARED_CAT="php4"
52}
53
54# common settings go in here
55uses_php4() {
56 # 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 EXT_DIR="$(${PHPCONFIG} --extension-dir 2>/dev/null)"
66
67 einfo
68 einfo "Using ${PHP_PKG}"
69 einfo
70}
71 20
72# PHP5-only depend functions 21# PHP5-only depend functions
73 22
74# @FUNCTION: need_php5_cli 23# @FUNCTION: need_php5_cli
75# @DESCRIPTION: 24# @DESCRIPTION:
151} 100}
152 101
153# @FUNCTION: need_php_by_category 102# @FUNCTION: need_php_by_category
154# @DESCRIPTION: 103# @DESCRIPTION:
155# Set this after setting DEPEND/RDEPEND in your ebuild to depend on PHP version 104# 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 105# determined by ${CATEGORY} - any PHP version or PHP5 for dev-php or
157# dev-php5, respectively. 106# dev-php5, respectively.
158need_php_by_category() { 107need_php_by_category() {
159 case "${CATEGORY}" in 108 case "${CATEGORY}" in
160 dev-php) need_php ;; 109 dev-php) need_php ;;
161 dev-php4) need_php4 ;;
162 dev-php5) need_php5 ;; 110 dev-php5) need_php5 ;;
163 *) die "Version of PHP required by packages in category ${CATEGORY} unknown" 111 *) die "Version of PHP required by packages in category ${CATEGORY} unknown"
164 esac 112 esac
165} 113}
166 114
172# are installed. 120# are installed.
173has_php() { 121has_php() {
174 # Detect which PHP version we have installed 122 # Detect which PHP version we have installed
175 if has_version '=dev-lang/php-5*' ; then 123 if has_version '=dev-lang/php-5*' ; then
176 PHP_VERSION="5" 124 PHP_VERSION="5"
177 elif has_version '=dev-lang/php-4*' ; then
178 PHP_VERSION="4"
179 else 125 else
180 die "Unable to find an installed dev-lang/php package" 126 die "Unable to find an installed dev-lang/php package"
181 fi 127 fi
182 128
183 # If we get here, then PHP_VERSION tells us which version of PHP we 129 # If we get here, then PHP_VERSION tells us which version of PHP we
259 local x 205 local x
260 206
261 einfo "Checking for required PHP feature(s) ..." 207 einfo "Checking for required PHP feature(s) ..."
262 208
263 for x in $@ ; do 209 for x in $@ ; do
210 case $x in
211 pcre|spl|reflection)
212 eqawarn "require_php_with_use MUST NOT check for the pcre, spl or reflection USE flag."
213 eqawarn "These USE flags are removed from >=dev-lang/php-5.3 and your ebuild will break"
214 eqawarn "if you check the USE flags against PHP 5.3 ebuilds."
215 eqawarn "Please use USE dependencies from EAPI 2 instead"
216 ;;
217 esac
218
264 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then 219 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
265 einfo " Discovered missing USE flag: ${x}" 220 einfo " Discovered missing USE flag: ${x}"
266 missing_use="${missing_use} ${x}" 221 missing_use="${missing_use} ${x}"
267 fi 222 fi
268 done 223 done
393# pdo-external use flag and pecl-pdo-* ebuilds were removed. 348# pdo-external use flag and pecl-pdo-* ebuilds were removed.
394# You should use require_php_with_use pdo instead now. 349# You should use require_php_with_use pdo instead now.
395# @RETURN: die if feature is missing 350# @RETURN: die if feature is missing
396require_pdo() { 351require_pdo() {
397 has_php 352 has_php
398
399 # Do we have PHP5 installed?
400 if [[ "${PHP_VERSION}" == "4" ]] ; then
401 eerror
402 eerror "This package requires PDO."
403 eerror "PDO is only available for PHP 5."
404 eerror "You must install >=dev-lang/php-5.1 with USE=\"pdo\"."
405 eerror "pdo USE flags turned on."
406 eerror
407 die "PHP 5 not installed"
408 fi
409 353
410 # Was PHP5 compiled with internal PDO support? 354 # Was PHP5 compiled with internal PDO support?
411 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then 355 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then
412 return 356 return
413 else 357 else
434 return 378 return
435 fi 379 fi
436 380
437 local PHP_PACKAGE_FOUND="" 381 local PHP_PACKAGE_FOUND=""
438 382
439 # Detect which PHP version we have installed
440 if has_version '=dev-lang/php-4*' ; then
441 PHP_PACKAGE_FOUND="1"
442 pkg="$(best_version '=dev-lang/php-4*')"
443 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
444 PHP_VERSION="4"
445 fi
446 fi
447
448 if has_version '=dev-lang/php-5*' ; then 383 if has_version '=dev-lang/php-5*' ; then
449 PHP_PACKAGE_FOUND="1" 384 PHP_PACKAGE_FOUND="1"
450 pkg="$(best_version '=dev-lang/php-5*')" 385 pkg="$(best_version '=dev-lang/php-5*')"
451 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then 386 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
452 PHP_VERSION="5" 387 PHP_VERSION="5"
478 return 413 return
479 fi 414 fi
480 415
481 local PHP_PACKAGE_FOUND="" 416 local PHP_PACKAGE_FOUND=""
482 417
483 # Detect which PHP version we have installed
484 if has_version '=dev-lang/php-4*' ; then
485 PHP_PACKAGE_FOUND="1"
486 pkg="$(best_version '=dev-lang/php-4*')"
487 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
488 PHP_VERSION="4"
489 fi
490 fi
491
492 if has_version '=dev-lang/php-5*' ; then 418 if has_version '=dev-lang/php-5*' ; then
493 PHP_PACKAGE_FOUND="1" 419 PHP_PACKAGE_FOUND="1"
494 pkg="$(best_version '=dev-lang/php-5*')" 420 pkg="$(best_version '=dev-lang/php-5*')"
495 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then 421 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
496 PHP_VERSION="5" 422 PHP_VERSION="5"
518 has_php 444 has_php
519 445
520 # Has our PHP been built with SQLite support? 446 # Has our PHP been built with SQLite support?
521 if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then 447 if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then
522 return 448 return
523 fi
524
525 # Do we have pecl-sqlite installed for PHP4?
526 if [[ "${PHP_VERSION}" == "4" ]] ; then
527 if has_version 'dev-php4/pecl-sqlite' ; then
528 return
529 fi
530 fi 449 fi
531 450
532 # If we get here, then we don't have any SQLite support for PHP installed 451 # If we get here, then we don't have any SQLite support for PHP installed
533 eerror 452 eerror
534 eerror "No SQLite extension for PHP found." 453 eerror "No SQLite extension for PHP found."

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.27

  ViewVC Help
Powered by ViewVC 1.1.20