diff options
Diffstat (limited to 'dev-lang/php/files/eblits/src_install-v2.eblit')
-rw-r--r-- | dev-lang/php/files/eblits/src_install-v2.eblit | 165 |
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 + +} |