/[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.30
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.30 2011/08/22 04:46:31 vapier 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 ;; 109 dev-php5) need_php5 ;;
163 *) die "Version of PHP required by packages in category ${CATEGORY} unknown" 110 *) die "Version of PHP required by packages in category ${CATEGORY} unknown"
164 esac 111 esac
165} 112}
166 113
172# are installed. 119# are installed.
173has_php() { 120has_php() {
174 # Detect which PHP version we have installed 121 # Detect which PHP version we have installed
175 if has_version '=dev-lang/php-5*' ; then 122 if has_version '=dev-lang/php-5*' ; then
176 PHP_VERSION="5" 123 PHP_VERSION="5"
177 elif has_version '=dev-lang/php-4*' ; then
178 PHP_VERSION="4"
179 else 124 else
180 die "Unable to find an installed dev-lang/php package" 125 die "Unable to find an installed dev-lang/php package"
181 fi 126 fi
182 127
183 # If we get here, then PHP_VERSION tells us which version of PHP we 128 # If we get here, then PHP_VERSION tells us which version of PHP we
259 local x 204 local x
260 205
261 einfo "Checking for required PHP feature(s) ..." 206 einfo "Checking for required PHP feature(s) ..."
262 207
263 for x in $@ ; do 208 for x in $@ ; do
209 case $x in
210 pcre|spl|reflection|mhash)
211 eqawarn "require_php_with_use MUST NOT check for the pcre, spl, mhash or reflection USE flag."
212 eqawarn "These USE flags are removed from >=dev-lang/php-5.3 and your ebuild will break"
213 eqawarn "if you check the USE flags against PHP 5.3 ebuilds."
214 eqawarn "Please use USE dependencies from EAPI 2 instead"
215 ;;
216 esac
217
264 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then 218 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
265 einfo " Discovered missing USE flag: ${x}" 219 einfo " Discovered missing USE flag: ${x}"
266 missing_use="${missing_use} ${x}" 220 missing_use="${missing_use} ${x}"
267 fi 221 fi
268 done 222 done
393# pdo-external use flag and pecl-pdo-* ebuilds were removed. 347# pdo-external use flag and pecl-pdo-* ebuilds were removed.
394# You should use require_php_with_use pdo instead now. 348# You should use require_php_with_use pdo instead now.
395# @RETURN: die if feature is missing 349# @RETURN: die if feature is missing
396require_pdo() { 350require_pdo() {
397 has_php 351 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 352
410 # Was PHP5 compiled with internal PDO support? 353 # Was PHP5 compiled with internal PDO support?
411 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then 354 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then
412 return 355 return
413 else 356 else
434 return 377 return
435 fi 378 fi
436 379
437 local PHP_PACKAGE_FOUND="" 380 local PHP_PACKAGE_FOUND=""
438 381
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 382 if has_version '=dev-lang/php-5*' ; then
449 PHP_PACKAGE_FOUND="1" 383 PHP_PACKAGE_FOUND="1"
450 pkg="$(best_version '=dev-lang/php-5*')" 384 pkg="$(best_version '=dev-lang/php-5*')"
451 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then 385 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
452 PHP_VERSION="5" 386 PHP_VERSION="5"
478 return 412 return
479 fi 413 fi
480 414
481 local PHP_PACKAGE_FOUND="" 415 local PHP_PACKAGE_FOUND=""
482 416
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 417 if has_version '=dev-lang/php-5*' ; then
493 PHP_PACKAGE_FOUND="1" 418 PHP_PACKAGE_FOUND="1"
494 pkg="$(best_version '=dev-lang/php-5*')" 419 pkg="$(best_version '=dev-lang/php-5*')"
495 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then 420 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
496 PHP_VERSION="5" 421 PHP_VERSION="5"
518 has_php 443 has_php
519 444
520 # Has our PHP been built with SQLite support? 445 # Has our PHP been built with SQLite support?
521 if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then 446 if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then
522 return 447 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 448 fi
531 449
532 # If we get here, then we don't have any SQLite support for PHP installed 450 # If we get here, then we don't have any SQLite support for PHP installed
533 eerror 451 eerror
534 eerror "No SQLite extension for PHP found." 452 eerror "No SQLite extension for PHP found."

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

  ViewVC Help
Powered by ViewVC 1.1.20