# 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.13 2011/07/23 10:14:46 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 # Generate the USE file for PHP phpconfutils_generate_usefile # 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 }