## ## php-eaccelerator.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2010 OpenPKG Foundation e.V. ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # package information Name: php-eaccelerator Summary: Zend/PHP Accelerator URL: http://eaccelerator.net/ Vendor: Dmitry Stogov et al. Packager: OpenPKG Foundation e.V. Distribution: OpenPKG Community Class: PLUS Group: Language License: GPL Version: 0.9.5.3 Release: 20080519 # package options %option with_apache yes # list of sources Source0: http://bart.eaccelerator.net/source/%{version}/eaccelerator-%{version}.tar.bz2 Patch0: php-eaccelerator.patch # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20040130, libtool, autoconf, automake PreReq: OpenPKG, openpkg >= 20040130 BuildPreReq: php PreReq: php %if "%{with_apache}" == "yes" PreReq: apache, apache-php %endif AutoReq: no AutoReqProv: no %description eAccelerator is an accelerator, optimizer, encoder and dynamic content cache for PHP/Zend. It increases performance of PHP scripts by caching them in compiled state, so that the overhead of compiling is almost completely eliminated. Also it uses some optimizations to speed up execution of PHP scripts. eAccelerator typically reduces server load and increases the speed of PHP code by 1-10 times. eAccelerator is a fork of TurckMMCache. %track prog php-eaccelerator = { version = %{version} url = http://bart.eaccelerator.net/source/ regex = (\d+(\.\d+)+)/ url = http://bart.eaccelerator.net/source/__NEWVER__/ regex = eaccelerator-(\d+(\.\d+)+)\.tar\.bz2 } %prep %setup -q -n eaccelerator-%{version} %patch -p0 %build # configure module %{l_prefix}/bin/phpize CC="%{l_cc}" \ CFLAGS="%{l_cflags -O}" \ CPPFLAGS="%{l_cppflags}" \ LDFLAGS="%{l_ldflags}" \ GREP="grep" \ ./configure \ --prefix=%{l_prefix} \ --with-php-config=%{l_prefix}/bin/php-config \ --enable-eaccelerator \ --with-eaccelerator-userid=%{l_nusr} \ --with-eaccelerator-crash-detection \ --with-eaccelerator-optimizer \ --with-eaccelerator-encoder \ --with-eaccelerator-loader \ --with-eaccelerator-sessions \ --with-eaccelerator-shared-memory \ --with-eaccelerator-content-caching \ --with-eaccelerator-disassembler \ --with-eaccelerator-info \ --enable-shared \ --disable-static # build module %{l_make} %{l_mflags -O} %install # create installation hierarchy rm -rf $RPM_BUILD_ROOT %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/bin \ $RPM_BUILD_ROOT%{l_prefix}/libexec/php-eaccelerator \ $RPM_BUILD_ROOT%{l_prefix}/lib/php-eaccelerator \ $RPM_BUILD_ROOT%{l_prefix}/share/php-eaccelerator \ $RPM_BUILD_ROOT%{l_prefix}/var/php-eaccelerator # install module %{l_shtool} install -c -m 755 \ .libs/eaccelerator.so $RPM_BUILD_ROOT%{l_prefix}/libexec/php-eaccelerator/ # install administration user interface %{l_shtool} install -c -m 644 \ control.php dasm.php $RPM_BUILD_ROOT%{l_prefix}/lib/php-eaccelerator/ # install PHP configuration %{l_shtool} install -c -m 644 \ -e 's;^\(zend_extension="\)\(eaccelerator\.so.*\)$;\1%{l_prefix}/libexec/php-''eaccelerator/\2;' \ -e 's;/tmp/eaccelerator;%{l_prefix}/var/php-''eaccelerator;' \ -e 's/^\(eaccelerator\.log_file\)/; \1/' \ -e 's;/var/log/httpd/eaccelerator_log;%{l_prefix}/var/php-''eaccelerator/php-''eaccelerator.log;' \ -e 's;^\(eaccelerator.compress_level = "\)9\("\);\14\2;' \ -e 's;shm_and_disk;shm_only;' \ -e 's;^\(eaccelerator.allowed_admin_path = "\)\("\);\1%{l_prefix}/lib/php-''eaccelerator/\2;' \ eaccelerator.ini $RPM_BUILD_ROOT%{l_prefix}/share/php-eaccelerator/ # install encoder utility ( echo "#!/bin/sh" echo "exec %{l_prefix}/bin/php -q %{l_prefix}/libexec/php-eaccelerator/encoder.php \"\$@\"" ) >encoder %{l_shtool} install -c -m 755 \ encoder $RPM_BUILD_ROOT%{l_prefix}/bin/php-encoder %{l_shtool} install -c -m 644 \ encoder.php $RPM_BUILD_ROOT%{l_prefix}/libexec/php-eaccelerator/ # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ '%attr(1777,%{l_musr},%{l_mgrp}) %{l_prefix}/var/php-eaccelerator' %files -f files %clean rm -rf $RPM_BUILD_ROOT %post if [ ".$1" = .1 ]; then # add hook to PHP configuration phpini="$RPM_INSTALL_PREFIX/etc/php/php.ini" if [ -f $phpini ]; then cat $RPM_INSTALL_PREFIX/share/php-eaccelerator/eaccelerator.ini |\ $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ -a -i "$RPM_INSTALL_PREFIX:php-eaccelerator" -p ";" $phpini fi %if "%{with_apache}" == "yes" # add hook to Apache/PHP configuration phpini="$RPM_INSTALL_PREFIX/etc/apache/php.ini" if [ -f $phpini ]; then cat $RPM_INSTALL_PREFIX/share/php-eaccelerator/eaccelerator.ini |\ $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ -a -i "$RPM_INSTALL_PREFIX:php-eaccelerator" -p ";" $phpini fi # add hook to Apache configuration apacheconf="$RPM_INSTALL_PREFIX/etc/apache/apache.conf" if [ -f $apacheconf ]; then ( echo "Alias /php-eaccelerator $RPM_INSTALL_PREFIX/lib/php-eaccelerator" ) | $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ -a -i "$RPM_INSTALL_PREFIX:php-eaccelerator" $apacheconf fi # display final hints on installation ( echo "You can access the online administration control page under" echo " http://localhost/php-eaccelerator/control.php" echo "The login is \"admin\" with password \"eAccelerator\"." ) | %{l_rpmtool} msg -b -t notice %endif fi %preun # before erase, remove log files [ $1 -eq 0 ] || exit 0 rm -f $RPM_INSTALL_PREFIX/var/php-eaccelerator/* >/dev/null 2>&1 || true %postun if [ ".$1" = .0 ]; then # remove hook from PHP configuration phpini="$RPM_INSTALL_PREFIX/etc/php/php.ini" if [ -f $phpini ]; then $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ -r -i "$RPM_INSTALL_PREFIX:php-eaccelerator" -p ";" $phpini fi %if "%{with_apache}" == "yes" # remove hook from Apache/PHP configuration phpini="$RPM_INSTALL_PREFIX/etc/apache/php.ini" if [ -f $phpini ]; then $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ -r -i "$RPM_INSTALL_PREFIX:php-eaccelerator" -p ";" $phpini fi # remove hook from Apache configuration apacheconf="$RPM_INSTALL_PREFIX/etc/apache/apache.conf" if [ -f $apacheconf ]; then $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ -r -i "$RPM_INSTALL_PREFIX:php-eaccelerator" $apacheconf fi %endif fi