From 708a3d9b16cc14d3a26fe6de20e2f2f16c03bb78 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sat, 8 Sep 2012 19:11:12 +0200 Subject: php-eaccelerator: update to 1.0-dev for PHP 5.4 --- php-eaccelerator-config.patch | 27 +++ php-eaccelerator-dev.spec | 390 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 417 insertions(+) create mode 100644 php-eaccelerator-config.patch create mode 100644 php-eaccelerator-dev.spec diff --git a/php-eaccelerator-config.patch b/php-eaccelerator-config.patch new file mode 100644 index 0000000..4eb749a --- /dev/null +++ b/php-eaccelerator-config.patch @@ -0,0 +1,27 @@ +--- eaccelerator.ini.orig 2012-09-08 18:15:19.000000000 +0200 ++++ eaccelerator.ini 2012-09-08 18:22:31.000000000 +0200 +@@ -12,13 +12,8 @@ + + ; You must uncomment one (and only one) line from the following to load + ; eAccelerator extension. +-extension="eaccelerator.so" +-;zend_extension="/usr/lib/php/modules/eaccelerator.so" +-;zend_extension_ts="/usr/lib/php/modules/eaccelerator.so" +- +-;extension="eaccelerator.dll" +-;zend_extension_ts="c:\php4\eaccelerator.dll" +-;zend_extension="c:\php4\eaccelerator.dll" ++;extension="eaccelerator.so" ++zend_extension="@EXTDIR@/eaccelerator.so" + + ; The amount of shared memory (in megabytes) that eAccelerator will use. + ; "0" means OS default. Default value is "0". +@@ -28,7 +23,7 @@ + ; code, session data, content and user entries here. The same data can be + ; stored in shared memory also (for more quick access). Default value is + ; "/tmp/eaccelerator". +-eaccelerator.cache_dir = "/tmp/eaccelerator" ++eaccelerator.cache_dir = "@CACHEDIR@" + + ; Enables or disables eAccelerator. Should be "1" for enabling or + ; "0" for disabling. Default value is "1". diff --git a/php-eaccelerator-dev.spec b/php-eaccelerator-dev.spec new file mode 100644 index 0000000..3e54802 --- /dev/null +++ b/php-eaccelerator-dev.spec @@ -0,0 +1,390 @@ +# This is the apache userid, used for sysvipc semaphores which is the default +# on ppc since spinlock is not detected (not supported?) +# We also use it for the default ownership of the cache directory +%global apache 48 +%global gitver 42067ac +%global cache %{_var}/cache/php-eaccelerator + +Summary: PHP accelerator, optimizer, encoder and dynamic content cacher +Name: php-eaccelerator +Version: 1.0 +Release: 0.1.git%{gitver}%{?dist} +Epoch: 1 +# The eaccelerator module itself is GPLv2+ +# The PHP control panel is under the Zend license (control.php and dasm.php) +License: GPLv2+ and Zend +Group: Development/Languages +URL: http://eaccelerator.net/ + +# github.com/eaccelerator/eaccelerator/tarvall/42067ac7e2d55caa5d060580489f5043357ffbe2 +Source0: eaccelerator-eaccelerator-%{gitver}.tar.gz +Source1: %{name}.cron + +# Fix packaging directory path +Patch0: %{name}-config.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildRequires: php-devel >= 5.1.0 +# Required by phpize +BuildRequires: autoconf, automake, libtool + +# ABI check is not enough for this extension (http://eaccelerator.net/ticket/438) +Requires: php-common%{?_isa} = %{php_version} +# Required by our cleanup cron job +Requires: tmpwatch + +Conflicts: php-mmcache, php-pecl-apc, php-xcache + +# Other third party repo stuff +Obsoletes: php53-eaccelerator +Obsoletes: php53u-eaccelerator +%if "%{php_version}" > "5.4" +Obsoletes: php54-eaccelerator +%endif + +# Filter private shared object +%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} +%{?filter_setup} + + +%description +eAccelerator is a free open-source PHP accelerator & optimizer. It increases +the performance of PHP scripts by caching them in their compiled state, so +that the overhead of compiling is almost completely eliminated. It also +optimizes scripts to speed up their execution. eAccelerator typically reduces +server load and increases the speed of your PHP code by 1-10 times. + +eAccelerator stores compiled PHP scripts in shared memory and executes code +directly from it. It creates locks only for a short time, while searching for a +compiled PHP script in the cache, so one script can be executed simultaneously +by several engines. Files that can't fit in shared memory are cached on disk +only. + +eAccelerator was born in December 2004 as a fork of the Turck MMCache project. +Turck MMCache was created by Dmitry Stogov and much of the eAccelerator code +is still based on his work. + + +%prep +%setup -q -c + +cp %{SOURCE1} . + +# prepare duplicated build tree +mv eaccelerator-eaccelerator-%{gitver} nts +cp -r nts zts + +cd nts +%patch0 -p0 -b .upstream +# Change paths in the example config +sed -e 's|@EXTDIR@/|%{php_extdir}/|' \ + -e 's|@CACHEDIR@|%{cache}|' \ + -i eaccelerator.ini + +cd ../zts +%patch0 -p0 -b .upstream +# Change paths in the example config +sed -e 's|@EXTDIR@/|%{php_ztsextdir}/|' \ + -e 's|@CACHEDIR@|%{cache}|' \ + -i eaccelerator.ini + + +%build +cd nts +%{_bindir}/phpize +%configure \ + --with-php-config=%{_bindir}/php-config \ +%ifnarch %{ix86} x86_64 + --with-eaccelerator-userid="%{apache}" +%endif + +make %{?_smp_mflags} + +cd ../zts +%{_bindir}/zts-phpize +%configure \ + --with-php-config=%{_bindir}/zts-php-config \ +%ifnarch %{ix86} x86_64 + --with-eaccelerator-userid="%{apache}" +%endif + +make %{?_smp_mflags} + + +%install +rm -rf %{buildroot} +make -C nts install INSTALL_ROOT=%{buildroot} +make -C zts install INSTALL_ROOT=%{buildroot} + +# The cache directory where pre-compiled files will reside +mkdir -p %{buildroot}%{cache} + +# Drop in the bit of configuration +install -D -m 0644 nts/eaccelerator.ini \ + %{buildroot}%{php_inidir}/eaccelerator.ini +install -D -m 0644 zts/eaccelerator.ini \ + %{buildroot}%{php_ztsinidir}/eaccelerator.ini + +# Cache removal cron job +install -D -m 0755 -p php-eaccelerator.cron \ + %{buildroot}%{_sysconfdir}/cron.daily/php-eaccelerator + + +%clean +rm -rf %{buildroot} + + +%preun +# Upon last removal (not update), clean all cache files +if [ $1 -eq 0 ]; then + rm -rf %{cache}/* &>/dev/null || : +fi + +%post +# We don't want to require "httpd" in case PHP is used with some other web +# server or without any, but we do want the owner of this directory to default +# to apache for a working "out of the box" experience on the most common setup. +# +# We can't store numeric ownerships in %%files and have it work, so "fix" here, +# but only change the ownership if it's the current user (which is root), which +# allows users to manually change ownership and not have it change back. + +if [ -d %{cache} ] +then + # Please remember to empty your eAccelerator disk cache + # when upgrading, otherwise things will break! + rm -rf %{cache}/* &>/dev/null || : +else + # Create the ghost'ed directory with default ownership and mode + mkdir -p %{cache} + chown %{apache}:%{apache} %{cache} + chmod 0750 %{cache} +fi + + +%check +# Check if the built extensions can be loaded +%{__php} -n \ + -d zend_extension=%{buildroot}%{php_extdir}/eaccelerator.so \ + -m | grep eAccelerator + +%{__ztsphp} -n \ + -d zend_extension=%{buildroot}%{php_ztsextdir}/eaccelerator.so \ + -m | grep eAccelerator + + +%files +%defattr(-,root,root,-) +%doc nts/{AUTHORS,ChangeLog,COPYING,NEWS,README} +%doc nts/*.php +%{_sysconfdir}/cron.daily/php-eaccelerator +%config(noreplace) %{php_inidir}/eaccelerator.ini +%config(noreplace) %{php_ztsinidir}/eaccelerator.ini +%{php_extdir}/eaccelerator.so +%{php_ztsextdir}/eaccelerator.so +# We need this hack, as otherwise rpm resets ownership upon package upgrade +%ghost %{cache} + + +%changelog +* Sat Sep 8 2012 Remi Collet - 1:1.0-0.1.git42067ac +- update to 1.0-dev for php 5.4 + +* Thu Aug 16 2012 Remi Collet - 1:0.9.6.1-17 +- rebuild against PHP 5.3.16 + +* Fri Jul 20 2012 Remi Collet - 1:0.9.6.1-16 +- rebuild against PHP 5.3.15 + +* Thu Jun 14 2012 Remi Collet - 1:0.9.6.1-15 +- rebuild against PHP 5.3.14 + +* Wed May 09 2012 Remi Collet - 1:0.9.6.1-14 +- rebuild against PHP 5.3.13 + +* Thu May 03 2012 Remi Collet - 1:0.9.6.1-13 +- rebuild against PHP 5.3.12 + +* Fri Apr 27 2012 Remi Collet - 1:0.9.6.1-12 +- rebuild against PHP 5.3.11 + +* Fri Feb 03 2012 Remi Collet - 1:0.9.6.1-11 +- rebuild against PHP 5.3.10 + +* Tue Jan 10 2012 Remi Collet - 1:0.9.6.1-10 +- rebuild against PHP 5.3.9 +- add ZTS build + +* Tue Aug 23 2011 Remi Collet - 1:0.9.6.1-9 +- rebuild against PHP 5.3.8 + +* Thu Aug 18 2011 Remi Collet - 1:0.9.6.1-8 +- rebuild against PHP 5.3.7 +- add filter (to avoid private-shared-object-provides) + +* Wed Jul 13 2011 Matthias Saou 1:0.9.6.1-7 +- Add missing tmpwatch requirement (#711236). +- Stop using macros for simple commands, following recent guidelines changes. + +* Thu Mar 17 2011 Remi Collet - 1:0.9.6.1-6 +- rebuild against PHP 5.3.6 + +* Wed Feb 09 2011 Fedora Release Engineering - 1:0.9.6.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sat Jan 08 2011 Remi Collet - 1:0.9.6.1-4 +- allow relocation with %%{phpname} macro + +* Sat Jan 08 2011 Remi Collet - 1:0.9.6.1-4 +- rebuild against PHP 5.3.5 + +* Sun Aug 08 2010 Remi Collet - 1:0.9.6.1-3 +- rebuild against PHP 5.3.4 + +* Sun Aug 08 2010 Remi Collet - 1:0.9.6.1-2 +- strong requires PHP version +- rebuild against php 5.3.3 + +* Sat Jul 03 2010 Remi Collet - 1:0.9.6.1-1 +- update to 0.9.6.1 + +* Sat Feb 06 2010 Remi Collet - 1:0.9.6-1 +- add missing %%dist tag + +* Sat Feb 06 2010 Remi Collet - 1:0.9.6-1 +- update to 0.9.6 +- add minimal %%check (extension loadable) + +* Sun Jul 26 2009 Fedora Release Engineering - 1:0.9.6-0.2.svn358 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jul 14 2009 Remi Collet - 1:0.9.6-0.1.svn358 +- rebuild for new PHP 5.3.0 ABI (20090626) +- update to latest SVN snapshot +- remove shared-memory, sessions and content-caching options + +* Thu Feb 26 2009 Fedora Release Engineering - 1:0.9.5.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Dec 24 2008 Matthias Saou 1:0.9.5.3-2 +- Update default cache dir to be ghosted and take care of creating it and + changing default ownership in the %%post scriplet (fixes #443407). + +* Mon Dec 22 2008 Matthias Saou 1:0.9.5.3-1 +- Update to 0.9.5.3. +- Include daily cleanup cron job (#470460). + +* Tue Feb 19 2008 Fedora Release Engineering +- Autorebuild for GCC 4.3 + +* Mon Nov 26 2007 Matthias Saou 1:0.9.5.2-1 +- Update to 0.9.5.2. + +* Wed Aug 22 2007 Matthias Saou 1:0.9.5.1-7 +- Rebuild for new BuildID feature. + +* Sun Aug 12 2007 Matthias Saou 1:0.9.5.1-6 +- Change the ifarch ppc* to ifnarch x86(_64) since alpha also needs to be + excluded (#251302). + +* Mon Aug 6 2007 Matthias Saou 1:0.9.5.1-5 +- Update License field. + +* Wed Jul 25 2007 Jeremy Katz - 1:0.9.5.1-4 +- rebuild for toolchain bug + +* Tue Jul 24 2007 Matthias Saou 1:0.9.5.1-3 +- Include patch to skip the exact PHP version check, we'll rely on our + package's php_zend_api version requirement to "get it right". + +* Thu Jul 19 2007 Jesse Keating 1:0.9.5.1-2 +- Rebuild for new php + +* Fri Jun 22 2007 Matthias Saou 1:0.9.5.1-1 +- Update to 0.9.5.1. +- Major spec file cleanup, based on current PHP packaging guidelines. +- Set Epoch to 1, since the proper versionning is lower than previously :-( +- Remove two upstreamed patches (php52fix and trac187). +- Use sed instead of perl for the config file changes. +- No longer use dist because we want to use the same package on F-n and n+1. + +* Wed May 16 2007 Matthias Saou 5.2.2_0.9.5-2 +- Include ppc64 %%ifarch, since it's now a Fedora target. +- Include patch to fix trac bug #187. + +* Wed May 16 2007 Matthias Saou 5.2.2_0.9.5-1 +- Rebuild against PHP 5.2.2. + +* Mon Feb 19 2007 Matthias Saou 5.2.1_0.9.5-1 +- Rebuild against PHP 5.2.1. + +* Mon Dec 4 2006 Matthias Saou 5.2.0_0.9.5-2 +- Include patch to fix use of PHP 5.2 (ea #204, rh #218166). + +* Wed Nov 29 2006 Matthias Saou 5.2.0_0.9.5-1 +- Rebuild against PHP 5.2.0. + +* Wed Nov 8 2006 Matthias Saou 5.1.6_0.9.5-2 +- Change to require php-common instead of php, for fastcgi without apache. + +* Mon Oct 16 2006 Matthias Saou 5.1.6_0.9.5-1 +- Update to 0.9.5 final. +- Add cleanup of the cache directory upon package removal. + +* Thu Sep 7 2006 Matthias Saou 5.1.6_0.9.5-0.4.rc1 +- Rebuild for PHP 5.1.6, eA still checks the exact PHP version it seems :-( +- Put "Requires: php = %%{php_version}" back to avoid broken setups if/when + PHP gets updated. + +* Mon Aug 28 2006 Matthias Saou 5.1.4_0.9.5-0.4.rc1 +- FC6 rebuild. + +* Tue Aug 22 2006 Matthias Saou 5.1.4_0.9.5-0.3.rc1 +- Update to 0.9.5-rc1. +- Enable shared-memory, sessions and content-caching (#201319). +- Remove both patches of fixes, merged upstream. +- Change from creating a full eaccelerator.ini to using the included one with + path substitutions and a patch to change default values. + +* Tue May 23 2006 Matthias Saou 5.1.x_0.9.5-0.2.beta2 +- Rebuild against PHP 5.1.4. + +* Fri May 5 2006 Matthias Saou 5.1.x_0.9.5-0.2.beta2 +- Rework heavily the API version requirement detection, should work with + chroots builds where PHP isn't installed outside. +- Replace the CC way of getting the API version with php -i output. + +* Tue Apr 11 2006 Matthias Saou 5.1.x_0.9.5-0.1.beta2 +- Update to 0.9.5-beta2. + +* Tue Mar 14 2006 Matthias Saou 5.1.x_0.9.3-0.3 +- Pass userid 48 to configure script on PPC for sysvipc semaphores. + +* Tue Mar 14 2006 Matthias Saou 5.1.x_0.9.3-0.2 +- Update to latest eaccelerator-svn200603090012 snapshot. + +* Thu Feb 9 2006 Matthias Saou 5.1.x_0.9.3-0.1 +- Update to 5.1.x compatible snapshot. +- Will try to make re2c available in Extras in order to build require it. + +* Mon Oct 17 2005 Matthias Saou 4.x.x_0.9.3-4 +- Re-add %%{?_smp_mflags}, as this was a false alarm. +- Force SEM to FCNTL as the IPC version is buggy on x86_64 SMP at least. + +* Mon Jun 27 2005 Matthias Saou 4.x.x_0.9.3-3 +- Include buffer overflow patch from zoeloelip, this should fix the real + problem that wasn't in fact solved with the removal of _smp_mflags. +- Add explicit shm_and_disk defaults to the ini file. + +* Mon Jun 27 2005 Matthias Saou 4.x.x_0.9.3-2 +- Remove %%{?_smp_mflags}, since the module crashes otherwise (#161189). + +* Tue Jun 21 2005 Matthias Saou 4.x.x_0.9.3-1 +- Update to 0.9.3, bugfix release. + +* Fri Apr 7 2005 Michael Schwendt +- rebuilt + +* Tue Jan 11 2005 Matthias Saou 4.x.x_0.9.2a-0 +- Initial RPM release based on the php-mmcache spec file. + -- cgit