/[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.31
1# Copyright 1999-2007 Gentoo Foundation 1# Copyright 1999-2011 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.31 2011/12/14 23:10:51 mabi Exp $
4 4
5# @ECLASS: depend.php.eclass
6# @MAINTAINER:
7# Gentoo PHP team <php-bugs@gentoo.org>
8# @AUTHOR:
5# Author: Stuart Herbert <stuart@gentoo.org> 9# Author: Stuart Herbert <stuart@gentoo.org>
6# Author: Luca Longinotti <chtekk@gentoo.org> 10# Author: Luca Longinotti <chtekk@gentoo.org>
7# Author: Jakub Moc <jakub@gentoo.org> (documentation) 11# 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. 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
19inherit eutils phpconfutils 18inherit 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 19
72# PHP5-only depend functions 20# PHP5-only depend functions
73 21
74# @FUNCTION: need_php5_cli 22# @FUNCTION: need_php5_cli
75# @DESCRIPTION: 23# @DESCRIPTION:
76# Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP5 24# Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP5
77# with cli SAPI. 25# with cli SAPI.
78need_php5_cli() { 26need_php5_cli() {
79 DEPEND="${DEPEND} =virtual/php-5*" 27 DEPEND="${DEPEND} =dev-lang/php-5*"
80 RDEPEND="${RDEPEND} =virtual/php-5*" 28 RDEPEND="${RDEPEND} =dev-lang/php-5*"
81 PHP_VERSION="5" 29 PHP_VERSION="5"
82} 30}
83 31
84# @FUNCTION: need_php5_httpd 32# @FUNCTION: need_php5_httpd
85# @DESCRIPTION: 33# @DESCRIPTION:
125# @FUNCTION: need_php_cli 73# @FUNCTION: need_php_cli
126# @DESCRIPTION: 74# @DESCRIPTION:
127# Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP 75# Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP
128# (any version) with cli SAPI. 76# (any version) with cli SAPI.
129need_php_cli() { 77need_php_cli() {
130 DEPEND="${DEPEND} virtual/php" 78 DEPEND="${DEPEND} dev-lang/php"
131 RDEPEND="${RDEPEND} virtual/php" 79 RDEPEND="${RDEPEND} dev-lang/php"
132} 80}
133 81
134# @FUNCTION: need_php_httpd 82# @FUNCTION: need_php_httpd
135# @DESCRIPTION: 83# @DESCRIPTION:
136# Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP 84# Set this after setting DEPEND/RDEPEND in your ebuild if the ebuild requires PHP
151} 99}
152 100
153# @FUNCTION: need_php_by_category 101# @FUNCTION: need_php_by_category
154# @DESCRIPTION: 102# @DESCRIPTION:
155# Set this after setting DEPEND/RDEPEND in your ebuild to depend on PHP version 103# 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 104# determined by ${CATEGORY} - any PHP version or PHP5 for dev-php or
157# dev-php5, respectively. 105# dev-php5, respectively.
158need_php_by_category() { 106need_php_by_category() {
159 case "${CATEGORY}" in 107 case "${CATEGORY}" in
160 dev-php) need_php ;; 108 dev-php) need_php ;;
161 dev-php4) need_php4 ;;
162 dev-php5) need_php5 ;;
163 *) die "Version of PHP required by packages in category ${CATEGORY} unknown" 109 *) die "Version of PHP required by packages in category ${CATEGORY} unknown"
164 esac 110 esac
165} 111}
166 112
167 113
172# are installed. 118# are installed.
173has_php() { 119has_php() {
174 # Detect which PHP version we have installed 120 # Detect which PHP version we have installed
175 if has_version '=dev-lang/php-5*' ; then 121 if has_version '=dev-lang/php-5*' ; then
176 PHP_VERSION="5" 122 PHP_VERSION="5"
177 elif has_version '=dev-lang/php-4*' ; then
178 PHP_VERSION="4"
179 else 123 else
180 die "Unable to find an installed dev-lang/php package" 124 die "Unable to find an installed dev-lang/php package"
181 fi 125 fi
182 126
183 # If we get here, then PHP_VERSION tells us which version of PHP we 127 # If we get here, then PHP_VERSION tells us which version of PHP we
259 local x 203 local x
260 204
261 einfo "Checking for required PHP feature(s) ..." 205 einfo "Checking for required PHP feature(s) ..."
262 206
263 for x in $@ ; do 207 for x in $@ ; do
208 case $x in
209 pcre|spl|reflection|mhash)
210 eqawarn "require_php_with_use MUST NOT check for the pcre, spl, mhash or reflection USE flag."
211 eqawarn "These USE flags are removed from >=dev-lang/php-5.3 and your ebuild will break"
212 eqawarn "if you check the USE flags against PHP 5.3 ebuilds."
213 eqawarn "Please use USE dependencies from EAPI 2 instead"
214 ;;
215 esac
216
264 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then 217 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
265 einfo " Discovered missing USE flag: ${x}" 218 einfo " Discovered missing USE flag: ${x}"
266 missing_use="${missing_use} ${x}" 219 missing_use="${missing_use} ${x}"
267 fi 220 fi
268 done 221 done
393# pdo-external use flag and pecl-pdo-* ebuilds were removed. 346# pdo-external use flag and pecl-pdo-* ebuilds were removed.
394# You should use require_php_with_use pdo instead now. 347# You should use require_php_with_use pdo instead now.
395# @RETURN: die if feature is missing 348# @RETURN: die if feature is missing
396require_pdo() { 349require_pdo() {
397 has_php 350 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 351
410 # Was PHP5 compiled with internal PDO support? 352 # Was PHP5 compiled with internal PDO support?
411 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then 353 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then
412 return 354 return
413 else 355 else
434 return 376 return
435 fi 377 fi
436 378
437 local PHP_PACKAGE_FOUND="" 379 local PHP_PACKAGE_FOUND=""
438 380
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 381 if has_version '=dev-lang/php-5*' ; then
449 PHP_PACKAGE_FOUND="1" 382 PHP_PACKAGE_FOUND="1"
450 pkg="$(best_version '=dev-lang/php-5*')" 383 pkg="$(best_version '=dev-lang/php-5*')"
451 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then 384 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
452 PHP_VERSION="5" 385 PHP_VERSION="5"
478 return 411 return
479 fi 412 fi
480 413
481 local PHP_PACKAGE_FOUND="" 414 local PHP_PACKAGE_FOUND=""
482 415
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 416 if has_version '=dev-lang/php-5*' ; then
493 PHP_PACKAGE_FOUND="1" 417 PHP_PACKAGE_FOUND="1"
494 pkg="$(best_version '=dev-lang/php-5*')" 418 pkg="$(best_version '=dev-lang/php-5*')"
495 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then 419 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
496 PHP_VERSION="5" 420 PHP_VERSION="5"
518 has_php 442 has_php
519 443
520 # Has our PHP been built with SQLite support? 444 # Has our PHP been built with SQLite support?
521 if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then 445 if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then
522 return 446 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 447 fi
531 448
532 # If we get here, then we don't have any SQLite support for PHP installed 449 # If we get here, then we don't have any SQLite support for PHP installed
533 eerror 450 eerror
534 eerror "No SQLite extension for PHP found." 451 eerror "No SQLite extension for PHP found."

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

  ViewVC Help
Powered by ViewVC 1.1.20