%{!?php_inidir: %{expand: %%global php_inidir %{_sysconfdir}/php.d}} %{!?php_incldir: %{expand: %%global php_incldir %{_includedir}/php}} %global pecl_name apcu %global commit 4322fad60f018f10f533ac4946799ef4e3dbd0fd %global gitver %(c=%{commit}; echo ${c:0:7}) %global with_zts 0%{?__ztsphp:1} Name: php-apcu Summary: Shared memory user data cache for PHP Version: 4.0.0 Release: 0.4%{?gitver:.git%{gitver}}%{?dist} Source0: https://github.com/krakjoe/%{pecl_name}/archive/%{commit}/%{pecl_name}-%{version}-%{gitver}.tar.gz Source1: %{pecl_name}.ini Source2: %{pecl_name}-panel.conf Source3: %{pecl_name}.conf.php License: PHP Group: Development/Languages URL: https://github.com/krakjoe/yac BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: php-devel # Should be a drop in replacement for APC, will Obsolete it in the future Conflicts: php-pecl-apc # Same provides than APC, this is a drop in replacement Provides: php-apc = %{version} Provides: php-apc%{?_isa} = %{version} Provides: php-pecl-apc = %{version} Provides: php-pecl-apc%{?_isa} = %{version} Provides: php-pecl(APC) = %{version} Provides: php-pecl(APC)%{?_isa} = %{version} # Filter private shared %{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} %{?filter_setup} %description APCu is userland caching: APC stripped of opcode caching in preparation for the deployment of Zend Optimizer+ as the primary solution to opcode caching in future versions of PHP. APCu has a revised and simplified codebase, by the time the PECL release is available, every part of APCu being used will have received review and where necessary or appropriate, changes. Simplifying and documenting the API of APCu completely removes the barrier to maintenance and development of APCu in the future, and additionally allows us to make optimizations not possible previously because of APC's inherent complexity. APCu only supports userland caching (and dumping) of variables, providing an upgrade path for the future. When O+ takes over, many will be tempted to use 3rd party solutions to userland caching, possibly even distributed solutions; this would be a grave error. The tried and tested APC codebase provides far superior support for local storage of PHP variables. %package devel Summary: APCu developer files (header) Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: php-devel%{?_isa} %description devel These are the files needed to compile programs using APCu. %package -n apcu-panel Summary: APCu control panel Group: Applications/Internet %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 BuildArch: noarch %endif Requires: %{name} = %{version}-%{release} Requires: mod_php, httpd, php-gd %description -n apcu-panel This package provides the APCu control panel, with Apache configuration, available on http://localhost/apcu-panel/ %prep %setup -qc mv %{pecl_name}-%{commit} NTS %if %{with_zts} # duplicate for ZTS build cp -pr NTS ZTS %endif %build cd NTS %{_bindir}/phpize %configure --with-php-config=%{_bindir}/php-config make %{?_smp_mflags} %if %{with_zts} cd ../ZTS %{_bindir}/zts-phpize %configure --with-php-config=%{_bindir}/zts-php-config make %{?_smp_mflags} %endif %install rm -rf %{buildroot} # Install the NTS stuff make -C NTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{SOURCE1} %{buildroot}%{php_inidir}/%{pecl_name}.ini # Install the ZTS stuff %if %{with_zts} make -C ZTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{SOURCE1} %{buildroot}%{php_ztsinidir}/%{pecl_name}.ini %endif # Install the Control Panel # Pages install -d -m 755 %{buildroot}%{_datadir}/apcu-panel sed -e s:apc.conf.php:%{_sysconfdir}/apcu-panel/conf.php:g \ NTS/apc.php >%{buildroot}%{_datadir}/apcu-panel/index.php # Apache config install -D -m 644 -p %{SOURCE2} \ %{buildroot}%{_sysconfdir}/httpd/conf.d/apcu-panel.conf # Panel config install -D -m 644 -p %{SOURCE3} \ %{buildroot}%{_sysconfdir}/apcu-panel/conf.php %check cd NTS # Check than both extensions are reported (BC mode) %{_bindir}/php -n -d extension_dir=modules -d extension=apcu.so -m | grep 'apcu' %{_bindir}/php -n -d extension_dir=modules -d extension=apcu.so -m | grep 'apc$' # Upstream test suite TEST_PHP_EXECUTABLE=%{_bindir}/php \ TEST_PHP_ARGS="-n -d extension_dir=$PWD/modules -d extension=%{pecl_name}.so" \ NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ %{_bindir}/php -n run-tests.php %if %{with_zts} cd ../ZTS %{__ztsphp} -n -d extension_dir=modules -d extension=apcu.so -m | grep 'apcu' %{__ztsphp} -n -d extension_dir=modules -d extension=apcu.so -m | grep 'apc$' TEST_PHP_EXECUTABLE=%{__ztsphp} \ TEST_PHP_ARGS="-n -d extension_dir=$PWD/modules -d extension=%{pecl_name}.so" \ NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ %{__ztsphp} -n run-tests.php %endif %clean rm -rf %{buildroot} %files %defattr(-, root, root, 0755) %doc NTS/{NOTICE,LICENSE,README.md} %config(noreplace) %{php_inidir}/%{pecl_name}.ini %{php_extdir}/%{pecl_name}.so %if %{with_zts} %{php_ztsextdir}/%{pecl_name}.so %config(noreplace) %{php_ztsinidir}/%{pecl_name}.ini %endif %files devel %defattr(-,root,root,-) %{php_incldir}/ext/%{pecl_name} %if %{with_zts} %{php_ztsincldir}/ext/%{pecl_name} %endif %files -n apcu-panel %defattr(-,root,root,-) # Need to restrict access, as it contains a clear password %attr(750,apache,root) %dir %{_sysconfdir}/apcu-panel %config(noreplace) %{_sysconfdir}/apcu-panel/conf.php %config(noreplace) %{_sysconfdir}/httpd/conf.d/apcu-panel.conf %{_datadir}/apcu-panel %changelog * Tue Mar 26 2013 Remi Collet - 4.0.0-0.4.git4322fad - new snapshot (test before release) * Mon Mar 25 2013 Remi Collet - 4.0.0-0.3.git647cb2b - new snapshot with our pull request - allow to run test suite simultaneously on 32/64 arch - build warning free * Mon Mar 25 2013 Remi Collet - 4.0.0-0.2.git6d20302 - new snapshot with full APC compatibility * Sat Mar 23 2013 Remi Collet - 4.0.0-0.1.git44e8dd4 - initial package, version 4.0.0