summaryrefslogtreecommitdiffstats
path: root/dev-lang/php/files/eblits/src_install-v2.eblit
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/php/files/eblits/src_install-v2.eblit')
-rw-r--r--dev-lang/php/files/eblits/src_install-v2.eblit165
1 files changed, 165 insertions, 0 deletions
diff --git a/dev-lang/php/files/eblits/src_install-v2.eblit b/dev-lang/php/files/eblits/src_install-v2.eblit
new file mode 100644
index 0000000..b0dd1ae
--- /dev/null
+++ b/dev-lang/php/files/eblits/src_install-v2.eblit
@@ -0,0 +1,165 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/php/files/eblits/src_install-v2.eblit,v 1.14 2011/12/16 09:02:43 olemarkus Exp $
+
+eblit-php-src_install() {
+ # see bug #324739 for what happens when we don't have that
+ addpredict /usr/share/snmp/mibs/.index
+
+ # grab the first SAPI that got built and install common files from there
+ local first_sapi=""
+ for sapi in $SAPIS ; do
+ if use $sapi ; then
+ first_sapi=$sapi
+ break
+ fi
+ done
+
+ # Makefile forgets to create this before trying to write to it...
+ dodir "${PHP_DESTDIR}/bin"
+
+ # Install php environment (without any sapis)
+ cd "${WORKDIR}/sapis-build/$first_sapi"
+ emake INSTALL_ROOT="${D}" \
+ install-build install-headers install-programs \
+ || die "emake install failed"
+
+ local extension_dir="$("${D}/${PHP_DESTDIR}/bin/php-config" --extension-dir)"
+
+ # And install the modules to it
+ if use sharedext ; then
+ insinto "${extension_dir}"
+ doins "${WORKDIR}/sapis-build/${first_sapi}/modules/"*.so
+ fi
+
+ # Create the directory where we'll put version-specific php scripts
+ keepdir /usr/share/php${PHP_MV}
+
+ local sapi="", file=""
+ local sapi_list=""
+
+ for sapi in ${SAPIS}; do
+ if use "${sapi}" ; then
+ einfo "Installing SAPI: ${sapi}"
+ cd "${WORKDIR}/sapis-build/${sapi}"
+ # needed each time, php_install_ini would reset it
+ into "${PHP_DESTDIR}"
+ file=$(find "${SAPI_DIR}/${sapi}/" -type f | head -n 1)
+
+ if [[ "${file: -3}" == ".so" ]]; then
+ if [[ "${sapi}" == "apache2" ]]; then
+ insinto "${PHP_DESTDIR}/apache2/"
+ newins "${file}" "${file/*\/}"
+ keepdir "/usr/$(get_libdir)/apache2/modules"
+ else
+ dolib.so "${file}" || die "Unable to install ${sapi} sapi"
+ fi
+ else
+ dobin "${file}" || die "Unable to install ${sapi} sapi"
+ fi
+
+ php_install_ini "${sapi}"
+
+ # construct correct SAPI string for php-config
+ # thanks to ferringb for the bash voodoo
+ if [[ "${sapi}" == "apache2" ]]; then
+ sapi_list="${sapi_list:+${sapi_list} }apache2handler"
+ else
+ sapi_list="${sapi_list:+${sapi_list} }${sapi}"
+ fi
+ fi
+ done
+
+ # Install env.d files
+ newenvd "${FILESDIR}/20php5-envd" \
+ "20php${SLOT}"
+ sed -e "s|/lib/|/$(get_libdir)/|g" -i \
+ "${D}/etc/env.d/20php${SLOT}"
+ sed -e "s|php5|php${SLOT}|g" -i \
+ "${D}/etc/env.d/20php${SLOT}"
+
+ # set php-config variable correctly (bug #278439)
+ sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
+ "${D}/usr/$(get_libdir)/php${SLOT}/bin/php-config"
+}
+
+php_install_ini() {
+ local phpsapi="${1}"
+
+ # work out where we are installing the ini file
+ php_set_ini_dir "${phpsapi}"
+
+ local phpinisrc="${PHP_INI_UPSTREAM}-${phpsapi}"
+ cp "${PHP_INI_UPSTREAM}" "${phpinisrc}"
+
+ # default to allow_url_open=Off, bug 332763
+ sed -e 's|^allow_url_fopen .*|allow_url_fopen = Off|g' -i "${phpinisrc}"
+
+ # default to expose_php=Off, bug 300695
+ sed -e 's|^expose_php .*|expose_php = Off|g' -i "${phpinisrc}"
+
+ # default to /tmp for save_path, bug #282768
+ sed -e 's|^;session.save_path .*$|session.save_path = "/tmp"|g' -i "${phpinisrc}"
+
+ # Set the extension dir
+ sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" -i "${phpinisrc}"
+
+ # Set the include path to point to where we want to find PEAR packages
+ sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:/usr/share/php'${PHP_MV}':/usr/share/php"|' -i "${phpinisrc}"
+
+ dodir "${PHP_INI_DIR}"
+ insinto "${PHP_INI_DIR}"
+ newins "${phpinisrc}" "${PHP_INI_FILE}"
+
+ elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR}"
+ elog
+
+ dodir "${PHP_EXT_INI_DIR}"
+ dodir "${PHP_EXT_INI_DIR_ACTIVE}"
+
+ # Install any extensions built as shared objects
+ if use sharedext ; then
+ insinto "${PHP_EXT_INI_DIR}"
+ for extension in "${D}/${extension_dir}/"*.so ; do
+ extension="${extension##*/}"
+ inifilename="${extension/.so/.ini}"
+ echo "extension=${extension}" > "${WORKDIR}/sapis-build/${phpsapi}/modules/$inifilename"
+ doins "${WORKDIR}/sapis-build/${phpsapi}/modules/$inifilename"
+ dosym "${PHP_EXT_INI_DIR}/${inifilename}" "${PHP_EXT_INI_DIR_ACTIVE}/${inifilename}"
+ done
+ fi
+
+ # SAPI-specific handling
+ if [[ "${sapi}" == "apache2" ]] ; then
+ insinto "${APACHE_MODULES_CONFDIR}"
+ newins "${FILESDIR}/70_mod_php${PHP_MV}.conf-apache2" \
+ "70_mod_php${PHP_MV}.conf"
+ fi
+
+ if [[ "${sapi}" == "fpm" ]] ; then
+ [[ -z ${PHP_FPM_INIT_VER} ]] && PHP_FPM_INIT_VER=3
+ [[ -z ${PHP_FPM_CONF_VER} ]] && PHP_FPM_CONF_VER=0
+ einfo "Installing FPM CGI config file php-fpm.conf"
+ insinto ${PHP_INI_DIR}
+ newins "${FILESDIR}/php-fpm-r${PHP_FPM_CONF_VER}.conf" php-fpm.conf
+ dodir "/etc/init.d"
+ insinto "/etc/init.d"
+ newinitd "${FILESDIR}/php-fpm-r${PHP_FPM_INIT_VER}.init" "php-fpm"
+ #dosym "${PHP_DESTDIR}/bin/php-fpm" "/usr/bin/php-fpm"
+
+ # Remove bogus /etc/php-fpm.conf.default (bug 359906)
+ [[ -f "${D}/etc/php-fpm.conf.default" ]] && rm "${D}/etc/php-fpm.conf.default"
+ fi
+
+ # Install PHP ini files into /usr/share/php
+ if [[ ${SLOT} == '5.2' ]]; then
+ newdoc php.ini-dist php.ini-development
+ newdoc php.ini-recommended php.ini-production
+ fi
+
+ if [[ ${SLOT} == '5.3' ]]; then
+ dodoc php.ini-development
+ dodoc php.ini-production
+ fi
+
+}