Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 375081
Collapse All | Expand All

(-)a/php.eselect (-31 / +53 lines)
Lines 7-71 Link Here
7
7
8
MODULES="cli apache2 fpm cgi"
8
MODULES="cli apache2 fpm cgi"
9
9
10
get_libdir() {
10
get_libdirs() {
11
	local dir
11
	local dir libdirs
12
	for dir in $(list_libdirs); do
12
	for dir in $(list_libdirs); do
13
		[[ -L /usr/${dir} ]] && continue
13
		[[ -L /usr/${dir} ]] && continue
14
		ls /usr/${dir}/php*.* > /dev/null 2>&1
14
		ls /usr/${dir}/php*.* > /dev/null 2>&1 || continue
15
		if [[ $? -eq 0 ]] ; then
15
16
			echo /usr/$dir
16
		libdirs+=' '/usr/${dir}
17
			return
17
	done
18
		fi
18
	echo ${libdirs:-/usr/lib}
19
}
20
21
get_active_libdir() {
22
	local dir
23
	for dir in $(get_libdirs); do
24
		echo ${dir}
25
		return
19
	done
26
	done
20
	echo /usr/lib
27
	echo /usr/lib
21
}
28
}
22
29
23
find_targets() {
30
find_targets() {
24
	for dir in "${EPREFIX}"$(get_libdir)/php*.*; do
31
	local dir dirs libdir
25
		t=$(basename $dir)
32
	for libdir in $(get_libdirs); do
26
		has $t $dirs || dirs="${dirs} $t"
33
		for dir in "${EPREFIX}"${libdir}/php*.*; do
34
			t=$(basename $dir)
35
			has $t $dirs || dirs="${dirs} $t"
36
		done
27
	done
37
	done
28
  echo $dirs
38
  echo $dirs
29
}
39
}
30
40
31
find_targets_apache2() {
41
find_targets_apache2() {
42
	local target libdir
32
	for target in $(find_targets); do
43
	for target in $(find_targets); do
33
		[[ -f ${EPREFIX}$(get_libdir)/$target/apache2/libphp5.so ]] && echo $target
44
		for libdir in $(get_libdirs); do
34
	done
45
			[[ -f ${EPREFIX}${libdir}/$target/apache2/libphp5.so ]] && echo $target
46
		done
47
	done | sort -u
35
}
48
}
36
49
37
find_targets_cli() {
50
find_targets_cli() {
51
	local target libdir
38
	for target in $(find_targets); do
52
	for target in $(find_targets); do
39
		[[ -f ${EPREFIX}$(get_libdir)/$target/bin/php ]] && echo $target
53
		for libdir in $(get_libdirs); do
40
	done
54
			[[ -f ${EPREFIX}${libdir}/$target/bin/php ]] && echo $target
55
		done
56
	done | sort -u
41
}
57
}
42
58
43
find_targets_fpm() {
59
find_targets_fpm() {
60
	local target libdir
44
	for target in $(find_targets); do
61
	for target in $(find_targets); do
45
		[[ -f ${EPREFIX}$(get_libdir)/$target/bin/php-fpm ]] && echo $target
62
		for libdir in $(get_libdirs); do
46
	done
63
			[[ -f ${EPREFIX}${libdir}/$target/bin/php-fpm ]] && echo $target
64
		done
65
	done | sort -u
47
}
66
}
48
67
49
find_targets_cgi() {
68
find_targets_cgi() {
69
	local target libdir
50
	for target in $(find_targets); do
70
	for target in $(find_targets); do
51
		[[ -f ${EPREFIX}$(get_libdir)/$target/bin/php-cgi ]] && echo $target
71
		for libdir in $(get_libdirs); do
52
	done
72
			[[ -f ${EPREFIX}${libdir}/$target/bin/php-cgi ]] && echo $target
73
		done
74
	done | sort -u
53
}
75
}
54
76
55
get_active_cli() {
77
get_active_cli() {
56
	readlink -e "${EPREFIX}"/usr/bin/php | sed -ne "s:$(get_libdir)/\(php[0-9]\.[0-9][0-9]*\)/bin/php:\1:p"
78
	readlink -e "${EPREFIX}"/usr/bin/php | sed -ne "s:.*/usr/.*/\(php[0-9]\.[0-9][0-9]*\)/bin/php:\1:p"
57
}
79
}
58
80
59
get_active_cgi() {
81
get_active_cgi() {
60
	readlink -e "${EPREFIX}"/usr/bin/php-cgi | sed -ne "s:$(get_libdir)/\(php[0-9]\.[0-9]\)/bin/php-cgi:\1:p"
82
	readlink -e "${EPREFIX}"/usr/bin/php-cgi | sed -ne "s:.*/usr/.*/\(php[0-9]\.[0-9]\)/bin/php-cgi:\1:p"
61
}
83
}
62
84
63
get_active_fpm() {
85
get_active_fpm() {
64
	readlink -e "${EPREFIX}"/usr/bin/php-fpm | sed -ne "s:$(get_libdir)/\(php[0-9]\.[0-9]\)/bin/php-fpm:\1:p"
86
	readlink -e "${EPREFIX}"/usr/bin/php-fpm | sed -ne "s:.*/usr/.*/\(php[0-9]\.[0-9]\)/bin/php-fpm:\1:p"
65
}
87
}
66
88
67
get_active_apache2() {
89
get_active_apache2() {
68
	readlink -e "${EPREFIX}"$(get_libdir)/apache2/modules/libphp5.so | sed -ne "s:$(get_libdir)/\(php[0-9]\.[0-9]\)/apache2/libphp5.so:\1:p"
90
	readlink -e "${EPREFIX}"$(get_active_libdir)/apache2/modules/libphp5.so | sed -ne "s:.*/usr/.*/\(php[0-9]\.[0-9]\)/apache2/libphp5.so:\1:p"
69
}
91
}
70
92
71
resolv_target() {
93
resolv_target() {
Lines 128-146 Link Here
128
}
150
}
129
151
130
set_apache2() {
152
set_apache2() {
131
	local t=$(resolv_target apache2 $1)
153
	local libdir t=$(resolv_target apache2 $1)
132
	[[ -z $t ]] && die -q "Bad target"
154
	[[ -z $t ]] && die -q "Bad target"
133
	ln -sf "${EPREFIX}"$(get_libdir)/$t/apache2/libphp5.so $(get_libdir)/apache2/modules/ || \
155
	for libdir in $(get_libdirs); do
134
		die -q "Failed to set symlink for libphp5.so"
156
		ln -sf ../../$t/apache2/libphp5.so ${libdir}/apache2/modules/ || \
157
			die -q "Failed to set symlink for ${libdir}/apache2/modules/libphp5.so"
158
	done
135
	echo "You have to run \`${EPREFIX}/etc/init.d/apache2 restart' for the changes to take effect"
159
	echo "You have to run \`${EPREFIX}/etc/init.d/apache2 restart' for the changes to take effect"
136
}
160
}
137
161
138
set_cli() {
162
set_cli() {
139
	t=$(resolv_target cli $1)
163
	local file libdir t=$(resolv_target cli $1)
140
	[[ -z $t ]] && die -q "Bad target"
164
	[[ -z $t ]] && die -q "Bad target"
141
	local file
142
	for file in php phpize php-config; do
165
	for file in php phpize php-config; do
143
		ln -sf "${EPREFIX}"$(get_libdir)/$t/bin/$file /usr/bin/$file || \
166
		ln -sf ../..$(get_active_libdir)/$t/bin/$file /usr/bin/$file || \
144
			die -q "Failed to create symlink for ${file}"
167
			die -q "Failed to create symlink for ${file}"
145
	done
168
	done
146
}
169
}
Lines 148-162 Link Here
148
set_cgi() {
171
set_cgi() {
149
	t=$(resolv_target cgi $1)
172
	t=$(resolv_target cgi $1)
150
	[[ -z $t ]] && die -q "Bad target"
173
	[[ -z $t ]] && die -q "Bad target"
151
	local file
174
	ln -sf ../..$(get_active_libdir)/$t/bin/php-cgi /usr/bin/php-cgi || \
152
	ln -sf "${EPREFIX}"$(get_libdir)/$t/bin/php-cgi /usr/bin/php-cgi || \
153
	  die -q "Failed to create symlink for php-cgi"
175
	  die -q "Failed to create symlink for php-cgi"
154
}
176
}
155
177
156
set_fpm() {
178
set_fpm() {
157
	local t=$(resolv_target fpm $1)
179
	local t=$(resolv_target fpm $1)
158
	[[ -z $t ]] && die -q "Bad target"
180
	[[ -z $t ]] && die -q "Bad target"
159
	ln -sf "${EPREFIX}"$(get_libdir)/$t/bin/php-fpm /usr/bin/php-fpm || \
181
	ln -sf ../..$(get_active_libdir)/$t/bin/php-fpm /usr/bin/php-fpm || \
160
		die -q "Failed to create symlink for the php-fpm binary"
182
		die -q "Failed to create symlink for the php-fpm binary"
161
	echo "You have to run \`${EPREFIX}/etc/init.d/php-fpm restart' for the changes to take effect"
183
	echo "You have to run \`${EPREFIX}/etc/init.d/php-fpm restart' for the changes to take effect"
162
}
184
}

Return to bug 375081