summaryrefslogtreecommitdiffstats
path: root/php-pecl-memcache-dev.spec
diff options
context:
space:
mode:
Diffstat (limited to 'php-pecl-memcache-dev.spec')
-rw-r--r--php-pecl-memcache-dev.spec379
1 files changed, 379 insertions, 0 deletions
diff --git a/php-pecl-memcache-dev.spec b/php-pecl-memcache-dev.spec
new file mode 100644
index 0000000..a6b6eeb
--- /dev/null
+++ b/php-pecl-memcache-dev.spec
@@ -0,0 +1,379 @@
+# spec file for php-pecl-memcache
+#
+# Copyright (c) 2007-2015 Remi Collet
+# License: CC-BY-SA
+# http://creativecommons.org/licenses/by-sa/4.0/
+#
+# Please, preserve the changelog entries
+#
+%{?scl: %scl_package php-pecl-memcache}
+%{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d}
+%{!?__pecl: %global __pecl %{_bindir}/pecl}
+%{!?__php: %global __php %{_bindir}/php}
+
+%global pecl_name memcache
+# Not ready, some failed UDP tests. Neded investigation.
+%global with_tests %{?_with_tests:1}%{!?_with_tests:0}
+%global with_zts 0%{?__ztsphp:1}
+%if "%{php_version}" < "5.6"
+%global ini_name %{pecl_name}.ini
+%else
+%global ini_name 40-%{pecl_name}.ini
+%endif
+
+Summary: Extension to work with the Memcached caching daemon
+Name: %{?scl_prefix}php-pecl-memcache
+Version: 3.0.8
+Release: 7%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}
+License: PHP
+Group: Development/Languages
+URL: http://pecl.php.net/package/%{pecl_name}
+
+Source: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
+# Missing in official archive
+# http://svn.php.net/viewvc/pecl/memcache/branches/NON_BLOCKING_IO/tests/connect.inc?view=co
+Source3: connect.inc
+
+Patch0: %{pecl_name}-gcc5.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: %{?scl_prefix}php-devel
+BuildRequires: %{?scl_prefix}php-pear
+BuildRequires: zlib-devel
+%if %{with_tests}
+BuildRequires: memcached
+%endif
+
+Requires(post): %{__pecl}
+Requires(postun): %{__pecl}
+Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api}
+Requires: %{?scl_prefix}php(api) = %{php_core_api}
+%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}}
+
+Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version}
+Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}
+Provides: %{?scl_prefix}php-%{pecl_name} = %{version}
+Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version}
+
+%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1}
+# Other third party repo stuff
+Obsoletes: php53-pecl-%{pecl_name}
+Obsoletes: php53u-pecl-%{pecl_name}
+Obsoletes: php54-pecl-%{pecl_name}
+Obsoletes: php54w-pecl-%{pecl_name}
+%if "%{php_version}" > "5.5"
+Obsoletes: php55u-pecl-%{pecl_name}
+Obsoletes: php55w-pecl-%{pecl_name}
+%endif
+%if "%{php_version}" > "5.6"
+Obsoletes: php56u-pecl-%{pecl_name}
+Obsoletes: php56w-pecl-%{pecl_name}
+%endif
+%endif
+
+%if 0%{?fedora} < 20 && 0%{?rhel} < 7
+# Filter shared private
+%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$}
+%{?filter_setup}
+%endif
+
+
+%description
+Memcached is a caching daemon designed especially for
+dynamic web applications to decrease database load by
+storing objects in memory.
+
+This extension allows you to work with memcached through
+handy OO and procedural interfaces.
+
+Memcache can be used as a PHP session handler.
+
+
+%prep
+%setup -c -q
+
+mv %{pecl_name}-%{version} NTS
+pushd NTS
+%patch0 -p1 -b .gcc5
+
+# Chech version as upstream often forget to update this
+extver=$(sed -n '/#define PHP_MEMCACHE_VERSION/{s/.* "//;s/".*$//;p}' php_memcache.h)
+if test "x${extver}" != "x%{version}"; then
+ : Error: Upstream version is now ${extver}, expecting %{version}.
+ : Update the pdover macro and rebuild.
+ exit 1
+fi
+popd
+
+cat >%{ini_name} << 'EOF'
+; ----- Enable %{pecl_name} extension module
+extension=%{pecl_name}.so
+
+; ----- Options for the %{pecl_name} module
+; see http://www.php.net/manual/en/memcache.ini.php
+
+; Whether to transparently failover to other servers on errors
+;memcache.allow_failover=1
+; Data will be transferred in chunks of this size
+;memcache.chunk_size=32768
+; Autocompress large data
+;memcache.compress_threshold=20000
+; The default TCP port number to use when connecting to the memcached server
+;memcache.default_port=11211
+; Hash function {crc32, fnv}
+;memcache.hash_function=crc32
+; Hash strategy {standard, consistent}
+;memcache.hash_strategy=consistent
+; Defines how many servers to try when setting and getting data.
+;memcache.max_failover_attempts=20
+; The protocol {ascii, binary} : You need a memcached >= 1.3.0 to use the binary protocol
+; The binary protocol results in less traffic and is more efficient
+;memcache.protocol=ascii
+; Redundancy : When enabled the client sends requests to N servers in parallel
+;memcache.redundancy=1
+;memcache.session_redundancy=2
+; Lock Timeout
+;memcache.lock_timeout = 15
+
+; ----- Options to use the memcache session handler
+
+; RPM note : save_handler and save_path are defined
+; for mod_php, in /etc/httpd/conf.d/php.conf
+; for php-fpm, in /etc/php-fpm.d/*conf
+
+; Use memcache as a session handler
+;session.save_handler=memcache
+; Defines a comma separated of server urls to use for session storage
+;session.save_path="tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
+EOF
+
+%if %{with_zts}
+cp -r 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}
+
+make -C NTS install INSTALL_ROOT=%{buildroot}
+
+# Drop in the bit of configuration
+install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name}
+
+%if %{with_zts}
+make -C ZTS install INSTALL_ROOT=%{buildroot}
+install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
+%endif
+
+# Install XML package description
+install -Dpm 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
+
+# Test & Documentation
+for i in $(grep 'role="test"' package.xml | sed -e 's/^.*name="//;s/".*$//')
+do install -Dpm 644 NTS/$i %{buildroot}%{pecl_testdir}/%{pecl_name}/$i
+done
+for i in $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//')
+do install -Dpm 644 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i
+done
+
+
+%check
+: Minimal load test for NTS extension
+%{__php} --no-php-ini \
+ --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \
+ -m | grep %{pecl_name}
+
+%if %{with_zts}
+: Minimal load test for ZTS extension
+%{__ztsphp} --no-php-ini \
+ --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \
+ -m | grep %{pecl_name}
+%endif
+
+%if %{with_tests}
+: Configuration for tests
+cd NTS
+cp %{SOURCE3} tests
+sed -e "s:/var/run/memcached/memcached.sock:$PWD/memcached.sock:" \
+ -i tests/connect.inc
+
+: Launch the daemons
+memcached -p 11211 -U 11211 -d -P $PWD/memcached1.pid
+memcached -p 11212 -U 11212 -d -P $PWD/memcached2.pid
+memcached -s $PWD/memcached.sock -d -P $PWD/memcached3.pid
+
+: Upstream test suite for NTS extension
+ret=0
+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 || ret=1
+
+: Cleanup
+if [ -f memcached2.pid ]; then
+ kill $(cat memcached?.pid)
+fi
+
+exit $ret
+%endif
+
+
+%clean
+rm -rf %{buildroot}
+
+
+%post
+%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
+
+
+%postun
+if [ $1 -eq 0 ] ; then
+ %{pecl_uninstall} %{pecl_name} >/dev/null || :
+fi
+
+
+%files
+%defattr(-, root, root, -)
+%doc %{pecl_docdir}/%{pecl_name}
+%doc %{pecl_testdir}/%{pecl_name}
+%{pecl_xmldir}/%{name}.xml
+%config(noreplace) %{php_inidir}/%{ini_name}
+%{php_extdir}/%{pecl_name}.so
+%if %{with_zts}
+%config(noreplace) %{php_ztsinidir}/%{ini_name}
+%{php_ztsextdir}/%{pecl_name}.so
+%endif
+
+
+%changelog
+* Tue Feb 10 2015 Remi Collet <rcollet@redhat.com> - 3.0.8-7
+- fix gcc 5 FTBFS
+
+* Wed Dec 24 2014 Remi Collet <remi@fedoraproject.org> - 3.0.8-5.1
+- Fedora 21 SCL mass rebuild
+
+* Mon Aug 25 2014 Remi Collet <rcollet@redhat.com> - 3.0.8-5
+- allow SCL build
+
+* Fri Apr 25 2014 Remi Collet <remi@fedoraproject.org> - 3.0.8-4
+- bump release (for EL-7)
+
+* Thu Apr 10 2014 Remi Collet <remi@fedoraproject.org> - 3.0.8-3
+- add numerical prefix to extension configuration file
+
+* Fri Mar 7 2014 Remi Collet <remi@fedoraproject.org> - 3.0.8-2
+- cleanups
+- install doc in pecl_docdir
+- install tests in pecl_testdir
+
+* Mon Apr 08 2013 Remi Collet <remi@fedoraproject.org> - 3.0.8-1
+- Update to 3.0.8
+
+* Sat Dec 29 2012 Remi Collet <remi@fedoraproject.org> - 3.0.7-5
+- add patch for https://bugs.php.net/59602
+ segfault in getExtendedStats
+
+* Fri Nov 30 2012 Remi Collet <remi@fedoraproject.org> - 3.0.7-4.1
+- also provides php-memcache
+
+* Fri Oct 19 2012 Remi Collet <remi@fedoraproject.org> - 3.0.7-4
+- improve comment in configuration about session.
+
+* Mon Sep 24 2012 Remi Collet <remi@fedoraproject.org> - 3.0.7-3
+- switch back to previous patch (memleak better than segfault)
+
+* Sun Sep 23 2012 Remi Collet <remi@fedoraproject.org> - 3.0.7-2
+- use upstream patch instead of our (memleak)
+
+* Sun Sep 23 2012 Remi Collet <remi@fedoraproject.org> - 3.0.7-1
+- update to 3.0.7
+- drop patches merged upstream
+- cleanup spec
+
+* Sat Sep 8 2012 Remi Collet <remi@fedoraproject.org> - 3.0.6-5
+- add LICENSE
+- Obsoletes php53*, php54* on EL
+
+* Sat Jul 7 2012 Remi Collet <remi@fedoraproject.org> - 3.0.6-4
+- sync patch with rawhide
+
+* Thu Jul 5 2012 Joe Orton <jorton@redhat.com> - 3.0.6-4
+- fix php_stream_cast() usage
+- fix memory corruption after unserialization (Paul Clifford)
+- package license
+
+* Sun Nov 13 2011 Remi Collet <remi@fedoraproject.org> - 3.0.6-3
+- build against php 5.4
+- add patch for ZTS build, see https://bugs.php.net/60284
+
+* Mon Oct 03 2011 Remi Collet <Fedora@FamilleCollet.com> 3.0.6-2
+- clean spec for latest macros
+- build zts extension
+
+* Mon Apr 11 2011 Remi Collet <Fedora@FamilleCollet.com> 3.0.6-1
+- update to 3.0.6
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.5-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Dec 27 2010 Remi Collet <rpms@famillecollet.com> 3.0.5-3
+- relocate using phpname macro
+
+* Sat Oct 23 2010 Remi Collet <Fedora@FamilleCollet.com> 3.0.5-2
+- add filter_provides to avoid private-shared-object-provides memcache.so
+
+* Tue Oct 05 2010 Remi Collet <Fedora@FamilleCollet.com> 3.0.5-1
+- update to 3.0.5
+
+* Thu Sep 30 2010 Remi Collet <Fedora@FamilleCollet.com> 3.0.4-4
+- patch for bug #599305 (upstream #17566)
+- add minimal load test in %%check
+
+* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.4-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Sun Jul 12 2009 Remi Collet <Fedora@FamilleCollet.com> 3.0.4-2
+- rebuild for new PHP 5.3.0 ABI (20090626)
+
+* Sat Feb 28 2009 Remi Collet <Fedora@FamilleCollet.com> 3.0.4-1
+- new version 3.0.4
+
+* Tue Jan 13 2009 Remi Collet <Fedora@FamilleCollet.com> 3.0.3-1
+- new version 3.0.3
+
+* Thu Sep 11 2008 Remi Collet <Fedora@FamilleCollet.com> 3.0.2-1
+- new version 3.0.2
+
+* Thu Sep 11 2008 Remi Collet <Fedora@FamilleCollet.com> 2.2.4-1
+- new version 2.2.4 (bug fixes)
+
+* Sat Feb 9 2008 Remi Collet <Fedora@FamilleCollet.com> 2.2.3-1
+- new version
+
+* Thu Jan 10 2008 Remi Collet <Fedora@FamilleCollet.com> 2.2.2-1
+- new version
+
+* Thu Nov 01 2007 Remi Collet <Fedora@FamilleCollet.com> 2.2.1-1
+- new version
+
+* Sat Sep 22 2007 Remi Collet <Fedora@FamilleCollet.com> 2.2.0-1
+- new version
+- add new INI directives (hash_strategy + hash_function) to config
+- add BR on php-devel >= 4.3.11
+
+* Mon Aug 20 2007 Remi Collet <Fedora@FamilleCollet.com> 2.1.2-1
+- initial RPM