blob: 225c8f43185058121376dd2917c614ed235243a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
# Copyright 1999-2010 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-v1.eblit,v 1.12 2010/10/27 10:33:18 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/modules/"
newins "${file}" "${file/*\/}"
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}/20php${PHP_MV}-envd" \
"20php${PHP_MV}"
sed -e "s|/lib/|/$(get_libdir)/|g" -i \
"${D}/etc/env.d/20php${PHP_MV}"
# set php-config variable correctly (bug #278439)
sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
"${D}/usr/$(get_libdir)/php5/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}"
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
if use concurrentmodphp ; then
einfo "Installing Apache2 config file 70_mod_php${PHP_MV}_concurr.conf"
insinto "${APACHE_MODULES_CONFDIR}"
newins "${FILESDIR}/70_mod_php${PHP_MV}_concurr.conf-apache2" \
"70_mod_php${PHP_MV}_concurr.conf"
# Put the ld version script in the right place so
# it's always accessible
insinto "/var/lib/php-pkg/${CATEGORY}/${PN}-${PVR}/"
doins "${FILESDIR}/php${PHP_MV}-ldvs"
else
einfo "Installing Apache2 config 70_mod_php${PHP_MV}.conf"
insinto ${APACHE_MODULES_CONFDIR}
newins "${FILESDIR}/70_mod_php${PHP_MV}.conf-apache2" \
"70_mod_php${PHP_MV}.conf"
fi
fi
if [[ "${sapi}" == "fpm" ]] ; then
einfo "Installing FPM CGI config file php-fpm.conf"
epatch "${FILESDIR}/php-fpm-gentooified.patch"
insinto ${PHP_INI_DIR}
doins "${WORKDIR}/sapis-build/fpm/sapi/fpm/php-fpm.conf"
dodir "/etc/init.d"
insinto "/etc/init.d"
newins "${FILESDIR}/php-fpm.init" "php-fpm"
fperms 755 "/etc/init.d/php-fpm"
dosym "${PHP_DESTDIR}/bin/php-fpm" "/usr/bin/php-fpm"
fi
}
|