diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | igbinary-php54.patch | 12 | ||||
-rw-r--r-- | php-pecl-igbinary.spec | 232 |
3 files changed, 248 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1e65467 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../common/Makefile + diff --git a/igbinary-php54.patch b/igbinary-php54.patch new file mode 100644 index 0000000..5c5e16b --- /dev/null +++ b/igbinary-php54.patch @@ -0,0 +1,12 @@ +diff -up tests/igbinary_024.phpt.old tests/igbinary_024.phpt +--- tests/igbinary_024.phpt.old 2011-11-14 18:47:29.800802812 +0100 ++++ tests/igbinary_024.phpt 2011-11-14 18:47:39.017832456 +0100 +@@ -81,7 +81,7 @@ $o3 = new Obj3(0, 1, 4); + test('objectrecarr', $o3, false); + + $o4 = new Obj4(100); +-$o4->set(&$o4); ++$o4->set($o4); + test('objectselfrec', $o4, true); + + /* diff --git a/php-pecl-igbinary.spec b/php-pecl-igbinary.spec new file mode 100644 index 0000000..7df890a --- /dev/null +++ b/php-pecl-igbinary.spec @@ -0,0 +1,232 @@ +%{!?phpname: %{expand: %%global phpname php}} + +%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}} +%{!?php_extdir: %{expand: %%global php_extdir %(%{phpbindir}/php-config --extension-dir 2>/dev/null || echo %{_libdir}/php/modules)}} + +%global extname igbinary +%global gitver 3b8ab7e +%global prever -dev + + +Summary: Replacement for the standard PHP serializer +Name: %{phpname}-pecl-igbinary +Version: 1.1.2 +%if 0%{?gitver:1} +Release: 0.2.git%{gitver}%{?dist} +Source0: igbinary-igbinary-1.1.1-15-g3b8ab7e.tar.gz +%else +Release: 2%{?dist} +Source0: http://pecl.php.net/get/%{extname}-%{version}.tgz +# http://pecl.php.net/bugs/22598 +Source1: %{extname}-tests.tgz +%endif +# http://pecl.php.net/bugs/22599 +License: BSD +Group: System Environment/Libraries + +URL: http://pecl.php.net/package/igbinary + +# https://bugs.php.net/60298 +Patch0: igbinary-php54.patch + + +BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n) +BuildRequires: %{phpname}-pecl-apc-devel >= 3.1.7 +BuildRequires: %{phpname}-pear +BuildRequires: %{phpname}-devel >= 5.2.0 + +Requires(post): %{__pecl} +Requires(postun): %{__pecl} +Requires: %{phpname}(zend-abi) = %{php_zend_api} +Requires: %{phpname}(api) = %{php_core_api} +Obsoletes: %{phpname}-%{extname} <= 1.1.1 +Provides: %{phpname}-%{extname} = %{version}-%{release} +Provides: %{phpname}-%{extname}%{?_isa} = %{version}-%{release} +Provides: %{phpname}-pecl(%{extname}) = %{version} + + +# RPM 4.8 +%{?filter_provides_in: %filter_provides_in %{php_extdir}/.*\.so$} +%{?filter_provides_in: %filter_provides_in %{php_ztsextdir}/.*\.so$} +%{?filter_setup} +# RPM 4.9 +%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{php_extdir}/.*\\.so$ +%global __provides_exclude_from %__provides_exclude_from|%{php_ztsextdir}/.*\\.so$ + + +%description +Igbinary is a drop in replacement for the standard PHP serializer. + +Instead of time and space consuming textual representation, +igbinary stores PHP data structures in a compact binary form. +Savings are significant when using memcached or similar memory +based storages for serialized data. + + +%package devel +Summary: Igbinary developer files (header) +Group: Development/Libraries +Requires: %{phpname}-pecl-%{extname}%{?_isa} = %{version}-%{release} +Requires: %{phpname}-devel%{?_isa} +Obsoletes: %{phpname}-%{extname}-devel <= 1.1.1 +Provides: %{phpname}-%{extname}-devel = %{version}-%{release} +Provides: %{phpname}-%{extname}-devel%{?_isa} = %{version}-%{release} + +%description devel +These are the files needed to compile programs using Igbinary + + +%prep +%setup -q -c + +%if 0%{?gitver:1} +mv igbinary-igbinary-%{gitver}/package.xml . +mv igbinary-igbinary-%{gitver} %{extname}-%{version} +cd %{extname}-%{version} +%patch0 -p0 -b .php54 + +%else +cd %{extname}-%{version} +tar xzf %{SOURCE1} + +%endif + +extver=$(sed -n '/#define IGBINARY_VERSION/{s/.* "//;s/".*$//;p}' igbinary.h) +if test "x${extver}" != "x%{version}%{?prever}"; then + : Error: Upstream version is ${extver}, expecting %{version}%{?prever}. + exit 1 +fi +cd .. + +cp -r %{extname}-%{version} %{extname}-%{version}-zts + +cat >%{extname}.ini <<EOF +; Enable %{extname} extension module +extension=%{extname}.so + +; Enable or disable compacting of duplicate strings +; The default is On. +;igbinary.compact_strings=On + +; Use igbinary as session serializer +;session.serialize_handler=igbinary + +; Use igbinary as APC serializer +;apc.serializer=igbinary +EOF + + +%build +cd %{extname}-%{version} +%{_bindir}/phpize +%configure --with-php-config=%{_bindir}/php-config +make %{?_smp_mflags} + +cd ../%{extname}-%{version}-zts +%{_bindir}/zts-phpize +%configure --with-php-config=%{_bindir}/zts-php-config +make %{?_smp_mflags} + + +%install +rm -rf %{buildroot} + +make install -C %{extname}-%{version} \ + INSTALL_ROOT=%{buildroot} + +make install -C %{extname}-%{version}-zts \ + INSTALL_ROOT=%{buildroot} + +install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml + +install -D -m 644 %{extname}.ini %{buildroot}%{php_inidir}/%{extname}.ini +install -D -m 644 %{extname}.ini %{buildroot}%{php_ztsinidir}/%{extname}.ini + + +%check +cd %{extname}-%{version} + +# simple module load test +# (without APC to ensure than can run without) +%{__php} --no-php-ini \ + --define extension_dir=modules \ + --define extension=%{extname}.so \ + --modules | grep %{extname} + +# APC required for test 045 +ln -s %{php_extdir}/apc.so modules/ + +NO_INTERACTION=1 REPORT_EXIT_STATUS=1 \ +make test | tee rpmtests.log +# https://bugs.php.net/60298 +# grep -q "FAILED TEST" rpmtests.log && exit 1 + + +%clean +rm -rf %{buildroot} + + +%post +%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : + + +%postun +if [ $1 -eq 0 ] ; then + %{pecl_uninstall} %{extname} >/dev/null || : +fi + + + +%files +%defattr(-,root,root,-) +%doc %{extname}-%{version}/COPYING +%doc %{extname}-%{version}/CREDITS +%doc %{extname}-%{version}/ChangeLog +%doc %{extname}-%{version}/NEWS +%doc %{extname}-%{version}/README +%config(noreplace) %{php_inidir}/%{extname}.ini +%config(noreplace) %{php_ztsinidir}/%{extname}.ini +%{php_extdir}/%{extname}.so +%{php_ztsextdir}/%{extname}.so +%{pecl_xmldir}/%{name}.xml + + +%files devel +%defattr(-,root,root,-) +%{php_incldir}/ext/%{extname} +%{php_ztsincldir}/ext/%{extname} + + +%changelog +* Sat Mar 03 2012 Remi Collet <remi@fedoraproject.org> - 1.1.2-0.2.git3b8ab7e +- macro usage for latest PHP + +* Mon Nov 14 2011 Remi Collet <remi@fedoraproject.org> - 1.1.2-0.1.git3b8ab7e +- latest git against php 5.4 +- partial patch for https://bugs.php.net/60298 +- ignore test result because of above bug + +* Sat Sep 17 2011 Remi Collet <rpms@famillecollet.com> 1.1.1-2 +- use latest macro +- build zts extension + +* Mon Mar 14 2011 Remi Collet <rpms@famillecollet.com> 1.1.1-1 +- version 1.1.1 published on pecl.php.net +- rename to php-pecl-igbinary + +* Mon Jan 17 2011 Remi Collet <rpms@famillecollet.com> 1.1.1-2 +- allow relocation using phpname macro + +* Mon Jan 17 2011 Remi Collet <rpms@famillecollet.com> 1.1.1-1 +- update to 1.1.1 + +* Fri Dec 31 2010 Remi Collet <rpms@famillecollet.com> 1.0.2-3 +- updated tests from Git. + +* Sat Oct 23 2010 Remi Collet <rpms@famillecollet.com> 1.0.2-2 +- filter provides to avoid igbinary.so +- add missing %%dist + +* Wed Sep 29 2010 Remi Collet <rpms@famillecollet.com> 1.0.2-1 +- initital RPM + |