summaryrefslogtreecommitdiff
blob: 8c6d11df5c14fd1cf9e928014c4e2a5dbee72d5b (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
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-php/eaccelerator/eaccelerator-0.9.3-r1.ebuild,v 1.2 2005/07/12 17:12:30 sebastian Exp $

PHP_EXT_NAME="eaccelerator"
PHP_EXT_ZENDEXT="yes"
[ -z "${EACCELERATOR_CACHEDIR}" ] && EACCELERATOR_CACHEDIR=/var/cache/eaccelerator
inherit php-ext-source

DESCRIPTION="A PHP Accelerator & Encoder."
HOMEPAGE="http://www.eaccelerator.net/"
SRC_URI="mirror://sourceforge/eaccelerator/${P}.tar.gz"
IUSE="apache2 inode session"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~sparc ~x86"

DEPEND="$DEPEND
		!dev-php/ioncube_loaders
		!dev-php/php-accelerator
		!dev-php/PECL-apc"

HTTPD_USER=root
HTTPD_GROUP=root

has_version "net-www/apache" && USE_APACHE=1 && inherit webapp-apache
[ -n "${USE_APACHE}" ] && webapp-detect || NO_WEBSERVER=1

pkg_setup() {
	if [ "${NO_WEBSERVER}" = "1" ]; then
		ewarn "No webserver detected - ${EACCELERATOR_CACHEDIR} will be"
		ewarn "owned by ${HTTPD_USER} instead"
	else
		einfo "Configuring cache dir ${EACCELERATOR_CACHEDIR} for ${WEBAPP_SERVER}"
	fi
}

src_compile() {
	# eAccelerator does not work with Zend Thread Safety (ZTS)
	# so about if we are using Apache 2 with an MPM that would
	# require ZTS.
	if use apache2; then
		APACHE2_MPM="`/usr/sbin/apache2 -l | egrep 'worker|perchild|leader|threadpool|prefork'|cut -d. -f1|sed -e 's/^[[:space:]]*//g;s/[[:space:]]+/ /g;'`"
		case "${APACHE2_MPM}" in
			*prefork*) ;;
			*) eerror "eAccelerator does not yet work with the Apache 2 MPM in use." ; die ;;
		esac;
	fi

	myconf="--enable-eaccelerator=shared"

	if use !session; then
		myconf="${myconf} --without-eaccelerator-sessions"
	fi

	if use !inode; then
		myconf="${myconf} --without-eaccelerator-use-inode"
	fi

	php-ext-source_src_compile
}

src_install() {
	php-ext-source_src_install

	keepdir ${EACCELERATOR_CACHEDIR}
	fowners ${HTTPD_USER}:${HTTPD_GROUP} "${EACCELERATOR_CACHEDIR}"
	fperms 750 "${EACCELERATOR_CACHEDIR}"

	insinto /usr/share/${PN}
	doins encoder.php eaccelerator.php eaccelerator_password.php
	dodoc AUTHORS ChangeLog COPYING NEWS README README.eLoader

	php-ext-base_addtoinifiles "eaccelerator.shm_size" '"64"'
	php-ext-base_addtoinifiles "eaccelerator.cache_dir" "\"${EACCELERATOR_CACHEDIR}\""
	php-ext-base_addtoinifiles "eaccelerator.enable" '"1"'
	php-ext-base_addtoinifiles "eaccelerator.optimizer" '"1"'
	php-ext-base_addtoinifiles "eaccelerator.debug" '"0"'
	php-ext-base_addtoinifiles "eaccelerator.check_mtime" '"1"'
	php-ext-base_addtoinifiles "eaccelerator.filter" '""'
	php-ext-base_addtoinifiles "eaccelerator.shm_max" '"0"'
	php-ext-base_addtoinifiles "eaccelerator.shm_ttl" '"0"'
	php-ext-base_addtoinifiles "eaccelerator.shm_prune_period" '"0"'
	php-ext-base_addtoinifiles "eaccelerator.shm_only" '"0"'
	php-ext-base_addtoinifiles "eaccelerator.compress" '"1"'
	php-ext-base_addtoinifiles "eaccelerator.compress_level" '"9"'
	php-ext-base_addtoinifiles "eaccelerator.keys" '"shm_and_disk"'
	php-ext-base_addtoinifiles "eaccelerator.sessions" '"shm_and_disk"'
	php-ext-base_addtoinifiles "eaccelerator.content" '"shm_and_disk"'
	php-ext-base_addtoinifiles ";eaccelerator.admin.name" '"username"'
	php-ext-base_addtoinifiles ";eaccelerator.admin.password" '"hashed_password"'
}

pkg_postinst () {
	einfo "You need to restart your webserver to activate eAccelerator."
	einfo
	einfo "A web interface is available to manage the eAccelerator cache."
	einfo "Copy /usr/share/eaccelerator/*.php to somewhere"
	einfo "where your web server can see it. See the documentation on how"
	einfo "to secure this web interface with authentication."
	einfo
	einfo "A PHP script encoder is available to encode your PHP scripts."
	einfo "The encoder is available as /usr/share/eaccelerator/encoder.php"
	einfo "The encoded file format is not yet considered stable."
}