| 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/php-ext-source-r2.eclass,v 1.8 2011/01/10 11:25:21 olemarkus Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/php-ext-source-r2.eclass,v 1.13 2011/08/15 12:48:27 olemarkus Exp $ |
| 4 | # |
4 | # |
| 5 | # Author: Tal Peer <coredumb@gentoo.org> |
5 | # Author: Tal Peer <coredumb@gentoo.org> |
| 6 | # Author: Stuart Herbert <stuart@gentoo.org> |
6 | # Author: Stuart Herbert <stuart@gentoo.org> |
| 7 | # Author: Luca Longinotti <chtekk@gentoo.org> |
7 | # Author: Luca Longinotti <chtekk@gentoo.org> |
| 8 | # Author: Jakub Moc <jakub@gentoo.org> (documentation) |
8 | # Author: Jakub Moc <jakub@gentoo.org> (documentation) |
| … | |
… | |
| 58 | [[ -z "${PHP_EXT_ZENDEXT}" ]] && PHP_EXT_ZENDEXT="no" |
58 | [[ -z "${PHP_EXT_ZENDEXT}" ]] && PHP_EXT_ZENDEXT="no" |
| 59 | |
59 | |
| 60 | # @ECLASS-VARIABLE: USE_PHP |
60 | # @ECLASS-VARIABLE: USE_PHP |
| 61 | # @DESCRIPTION: |
61 | # @DESCRIPTION: |
| 62 | # Lists the PHP slots compatibile the extension is compatibile with |
62 | # Lists the PHP slots compatibile the extension is compatibile with |
| 63 | [[ -z "${USE_PHP}" ]] && USE_PHP="php5-2 php5-3" |
63 | [[ -z "${USE_PHP}" ]] && USE_PHP="php5-3 php5-2" |
| 64 | |
64 | |
| 65 | # @ECLASS-VARIABLE: PHP_EXT_OPTIONAL_USE |
65 | # @ECLASS-VARIABLE: PHP_EXT_OPTIONAL_USE |
| 66 | # @DESCRIPTION: |
66 | # @DESCRIPTION: |
| 67 | # If set, this is the USE flag that the PHP dependencies are behind |
67 | # If set, this is the USE flag that the PHP dependencies are behind |
| 68 | # Most commonly set as PHP_EXT_OPTIONAL_USE=php to get the dependencies behind |
68 | # Most commonly set as PHP_EXT_OPTIONAL_USE=php to get the dependencies behind |
| … | |
… | |
| 230 | for x in ${PHPSAPILIST} ; do |
230 | for x in ${PHPSAPILIST} ; do |
| 231 | if [[ -f "/etc/php/${x}-${1}/php.ini" ]] ; then |
231 | if [[ -f "/etc/php/${x}-${1}/php.ini" ]] ; then |
| 232 | PHPINIFILELIST="${PHPINIFILELIST} etc/php/${x}-${1}/ext/${PHP_EXT_NAME}.ini" |
232 | PHPINIFILELIST="${PHPINIFILELIST} etc/php/${x}-${1}/ext/${PHP_EXT_NAME}.ini" |
| 233 | fi |
233 | fi |
| 234 | done |
234 | done |
|
|
235 | PHPFULLINIFILELIST="${PHPFULLINIFILELIST} ${PHPINIFILELIST}" |
| 235 | } |
236 | } |
| 236 | |
237 | |
| 237 | # @FUNCTION: php-ext-source-r2_createinifiles |
238 | # @FUNCTION: php-ext-source-r2_createinifiles |
| 238 | # @DESCRIPTION: |
239 | # @DESCRIPTION: |
| 239 | # Builds ini files for every enabled slot and SAPI |
240 | # Builds ini files for every enabled slot and SAPI |
| … | |
… | |
| 244 | # Pull in the PHP settings |
245 | # Pull in the PHP settings |
| 245 | |
246 | |
| 246 | # Build the list of <ext>.ini files to edit/add to |
247 | # Build the list of <ext>.ini files to edit/add to |
| 247 | php-ext-source-r2_buildinilist ${slot} |
248 | php-ext-source-r2_buildinilist ${slot} |
| 248 | |
249 | |
|
|
250 | |
| 249 | # Add the needed lines to the <ext>.ini files |
251 | # Add the needed lines to the <ext>.ini files |
|
|
252 | local file |
| 250 | if [[ "${PHP_EXT_INI}" = "yes" ]] ; then |
253 | if [[ "${PHP_EXT_INI}" = "yes" ]] ; then |
|
|
254 | for file in ${PHPINIFILELIST}; do |
| 251 | php-ext-source-r2_addextension "${PHP_EXT_NAME}.so" |
255 | php-ext-source-r2_addextension "${PHP_EXT_NAME}.so" "${file}" |
|
|
256 | done |
| 252 | fi |
257 | fi |
|
|
258 | |
| 253 | |
259 | |
| 254 | # Symlink the <ext>.ini files from ext/ to ext-active/ |
260 | # Symlink the <ext>.ini files from ext/ to ext-active/ |
|
|
261 | local inifile |
| 255 | for inifile in ${PHPINIFILELIST} ; do |
262 | for inifile in ${PHPINIFILELIST} ; do |
|
|
263 | if [[ -n "${PHP_EXT_INIFILE}" ]]; then |
|
|
264 | cat "${FILESDIR}/${PHP_EXT_INIFILE}" > "${inifile}" |
|
|
265 | einfo "Added content of ${FILESDIR}/${PHP_EXT_INIFILE} to ${inifile}" |
|
|
266 | fi |
|
|
267 | |
|
|
268 | |
|
|
269 | |
|
|
270 | |
| 256 | inidir="${inifile/${PHP_EXT_NAME}.ini/}" |
271 | inidir="${inifile/${PHP_EXT_NAME}.ini/}" |
| 257 | inidir="${inidir/ext/ext-active}" |
272 | inidir="${inidir/ext/ext-active}" |
| 258 | dodir "/${inidir}" |
273 | dodir "/${inidir}" |
| 259 | dosym "/${inifile}" "/${inifile/ext/ext-active}" |
274 | dosym "/${inifile}" "/${inifile/ext/ext-active}" |
| 260 | done |
275 | done |
| 261 | |
276 | |
| 262 | # Add support for installing PHP files into a version dependant directory |
277 | # Add support for installing PHP files into a version dependant directory |
| 263 | PHP_EXT_SHARED_DIR="/usr/share/php/${PHP_EXT_NAME}" |
278 | PHP_EXT_SHARED_DIR="/usr/share/php/${PHP_EXT_NAME}" |
| 264 | done |
279 | done |
|
|
280 | |
| 265 | } |
281 | } |
| 266 | |
282 | |
| 267 | php-ext-source-r2_addextension() { |
283 | php-ext-source-r2_addextension() { |
| 268 | if [[ "${PHP_EXT_ZENDEXT}" = "yes" ]] ; then |
284 | if [[ "${PHP_EXT_ZENDEXT}" = "yes" ]] ; then |
| 269 | # We need the full path for ZendEngine extensions |
285 | # We need the full path for ZendEngine extensions |
| … | |
… | |
| 295 | # We don't need the full path for normal extensions! |
311 | # We don't need the full path for normal extensions! |
| 296 | ext_type="extension" |
312 | ext_type="extension" |
| 297 | ext_file="${1}" |
313 | ext_file="${1}" |
| 298 | fi |
314 | fi |
| 299 | |
315 | |
| 300 | php-ext-source-r2_addtoinifiles "${ext_type}" "${ext_file}" "Extension added" |
316 | php-ext-source-r2_addtoinifile "${ext_type}" "${ext_file}" "${2}" "Extension added" |
| 301 | } |
317 | } |
| 302 | |
318 | |
| 303 | # $1 - Setting name |
319 | # $1 - Setting name |
| 304 | # $2 - Setting value |
320 | # $2 - Setting value |
| 305 | # $3 - File to add to |
321 | # $3 - File to add to |
| 306 | # $4 - Sanitized text to output |
322 | # $4 - Sanitized text to output |
| 307 | php-ext-source-r2_addtoinifile() { |
323 | php-ext-source-r2_addtoinifile() { |
|
|
324 | local inifile="${WORKDIR}/${3}" |
| 308 | if [[ ! -d $(dirname ${3}) ]] ; then |
325 | if [[ ! -d $(dirname ${inifile}) ]] ; then |
| 309 | mkdir -p $(dirname ${3}) |
326 | mkdir -p $(dirname ${inifile}) |
| 310 | fi |
327 | fi |
| 311 | |
328 | |
| 312 | # Are we adding the name of a section? |
329 | # Are we adding the name of a section? |
| 313 | if [[ ${1:0:1} == "[" ]] ; then |
330 | if [[ ${1:0:1} == "[" ]] ; then |
| 314 | echo "${1}" >> "${3}" |
331 | echo "${1}" >> "${inifile}" |
| 315 | my_added="${1}" |
332 | my_added="${1}" |
| 316 | else |
333 | else |
| 317 | echo "${1}=${2}" >> "${3}" |
334 | echo "${1}=${2}" >> "${inifile}" |
| 318 | my_added="${1}=${2}" |
335 | my_added="${1}=${2}" |
| 319 | fi |
336 | fi |
| 320 | |
337 | |
| 321 | if [[ -z "${4}" ]] ; then |
338 | if [[ -z "${4}" ]] ; then |
| 322 | einfo "Added '${my_added}' to /${3}" |
339 | einfo "Added '${my_added}' to /${3}" |
| 323 | else |
340 | else |
| 324 | einfo "${4} to /${3}" |
341 | einfo "${4} to /${3}" |
| 325 | fi |
342 | fi |
| 326 | |
343 | |
| 327 | insinto /$(dirname ${3}) |
344 | insinto /$(dirname ${3}) |
| 328 | doins "${3}" |
345 | doins "${inifile}" |
| 329 | } |
346 | } |
| 330 | |
347 | |
| 331 | # @FUNCTION: php-ext-source-r2_addtoinifiles |
348 | # @FUNCTION: php-ext-source-r2_addtoinifiles |
| 332 | # @USAGE: <setting name> <setting value> [message to output]; or just [section name] |
349 | # @USAGE: <setting name> <setting value> [message to output]; or just [section name] |
| 333 | # @DESCRIPTION: |
350 | # @DESCRIPTION: |
| … | |
… | |
| 347 | # php-ext-source-r2_addtoinifiles "debugger.enabled" "on" |
364 | # php-ext-source-r2_addtoinifiles "debugger.enabled" "on" |
| 348 | # php-ext-source-r2_addtoinifiles "debugger.profiler_enabled" "on" |
365 | # php-ext-source-r2_addtoinifiles "debugger.profiler_enabled" "on" |
| 349 | # @CODE |
366 | # @CODE |
| 350 | php-ext-source-r2_addtoinifiles() { |
367 | php-ext-source-r2_addtoinifiles() { |
| 351 | local x |
368 | local x |
| 352 | for x in ${PHPINIFILELIST} ; do |
369 | for x in ${PHPFULLINIFILELIST} ; do |
| 353 | php-ext-source-r2_addtoinifile "${1}" "${2}" "${x}" "${3}" |
370 | php-ext-source-r2_addtoinifile "${1}" "${2}" "${x}" "${3}" |
| 354 | done |
371 | done |
| 355 | } |
372 | } |