diff options
Diffstat (limited to 'eclass/php-pear-lib-r1.eclass')
-rw-r--r-- | eclass/php-pear-lib-r1.eclass | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/eclass/php-pear-lib-r1.eclass b/eclass/php-pear-lib-r1.eclass new file mode 100644 index 00000000..bbd0b495 --- /dev/null +++ b/eclass/php-pear-lib-r1.eclass @@ -0,0 +1,102 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/eclass/php-pear-lib-r1.eclass,v 1.28 2015/02/11 02:53:18 grknight Exp $ + +# @ECLASS: php-pear-lib-r1.eclass +# @MAINTAINER: +# Gentoo PHP team <php-bugs@gentoo.org> +# @AUTHOR: +# Author: Luca Longinotti <chtekk@gentoo.org> +# @BLURB: Provides means for an easy installation of PEAR-based libraries. +# @DESCRIPTION: +# This class provides means for an easy installation of PEAR-based libraries, +# such as Creole, Jargon, Phing etc., while retaining the functionality to put +# the libraries into version-dependant directories. + +inherit multilib + +EXPORT_FUNCTIONS pkg_setup src_install + +# Silence repoman warnings +case "${EAPI:-0}" in + 5) + PHP_DEPEND="dev-lang/php:*" + ;; + *) + PHP_DEPEND="dev-lang/php" + ;; +esac + +DEPEND="${PHP_DEPEND} + >=dev-php/pear-1.9.0" +RDEPEND="${DEPEND}" + +if [[ -n $PHP_PEAR_CHANNEL ]] ; then + PHP_PEAR_PV=${PV/_rc/RC} + [[ -z ${PHP_PEAR_PN} ]] && die "Missing PHP_PEAR_PN. Please notify the maintainer" + PHP_PEAR_P=${PHP_PEAR_PN}-${PHP_PEAR_PV} + + S="${WORKDIR}/${PHP_PEAR_P}" + + SRC_URI="http://${PHP_PEAR_URI}/get/${PHP_PEAR_P}.tgz" +fi + + +# @FUNCTION: php-pear-lib-r1_pkg_setup +# @DESCRIPTION: +# Adds required PEAR channel if necessary +php-pear-lib-r1_pkg_setup() { + if [[ -n $PHP_PEAR_CHANNEL ]] ; then + if [[ -f $PHP_PEAR_CHANNEL ]]; then + pear channel-add $PHP_PEAR_CHANNEL || einfo "Ignore any errors about existing channels" + else + die "Could not find channel file $PHP_PEAR_CHANNEL" + fi + fi +} + + +# @FUNCTION: php-pear-lib-r1_src_install +# @DESCRIPTION: +# Takes care of standard install for PEAR-based libraries. +php-pear-lib-r1_src_install() { + # SNMP support + addpredict /usr/share/snmp/mibs/.index + local varlib="/var/lib" + if [[ -L "${varlib}" ]]; then + varlib="$( readlink -e "${varlib}" )" + fi + addpredict "${varlib}"/net-snmp/ + addpredict "${varlib}"/net-snmp/mib_indexes + unset varlib + addpredict /session_mm_cli0.sem + + PHP_BIN="/usr/bin/php" + + cd "${S}" + + if [[ -f "${WORKDIR}"/package2.xml ]] ; then + mv -f "${WORKDIR}/package2.xml" "${S}" + local WWW_DIR="/usr/share/webapps/${PN}/${PVR}/htdocs" + peardev -d php_bin="${PHP_BIN}" -d www_dir="${WWW_DIR}" \ + install --force --loose --nodeps --offline --packagingroot="${D}" \ + "${S}/package2.xml" || die "Unable to install PEAR package" + else + mv -f "${WORKDIR}/package.xml" "${S}" + local WWW_DIR="/usr/share/webapps/${PN}/${PVR}/htdocs" + peardev -d php_bin="${PHP_BIN}" -d www_dir="${WWW_DIR}" \ + install --force --loose --nodeps --offline --packagingroot="${D}" \ + "${S}/package.xml" || die "Unable to install PEAR package" + fi + + rm -Rf "${D}/usr/share/php/.channels" \ + "${D}/usr/share/php/.depdblock" \ + "${D}/usr/share/php/.depdb" \ + "${D}/usr/share/php/.filemap" \ + "${D}/usr/share/php/.lock" \ + "${D}/usr/share/php/.registry" + + einfo + einfo "Installing to /usr/share/php ..." + einfo +} |