From 74dd4787e3af917a00bca8690ff83fa565157f13 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 10 Jun 2012 07:06:04 +0200 Subject: repo reorg --- Makefile | 4 ++ amqp-php54.patch | 21 ++++++++ php-pecl-amqp.spec | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 Makefile create mode 100644 amqp-php54.patch create mode 100644 php-pecl-amqp.spec 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/amqp-php54.patch b/amqp-php54.patch new file mode 100644 index 0000000..322cc34 --- /dev/null +++ b/amqp-php54.patch @@ -0,0 +1,21 @@ +diff -up amqp-1.0.1/amqp_connection.c.php54 amqp-1.0.1/amqp_connection.c +--- amqp-1.0.1/amqp_connection.c.php54 2012-03-10 09:08:22.807066125 +0100 ++++ amqp-1.0.1/amqp_connection.c 2012-03-10 09:09:12.428067313 +0100 +@@ -512,7 +512,7 @@ PHP_METHOD(amqp_connection_class, pconne + amqp_connection_object *connection; + char *key; + int key_len; +- list_entry *le, new_le; ++ zend_rsrc_list_entry *le, new_le; + + /* Try to pull amqp object out of method params */ + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &id, amqp_connection_class_entry) == FAILURE) { +@@ -545,7 +545,7 @@ PHP_METHOD(amqp_connection_class, pconne + /* Store a reference in the persistence list */ + new_le.ptr = connection->connection_resource; + new_le.type = le_amqp_connection_resource; +- zend_hash_add(&EG(persistent_list), key, key_len + 1, &new_le, sizeof(list_entry), NULL); ++ zend_hash_add(&EG(persistent_list), key, key_len + 1, &new_le, sizeof(zend_rsrc_list_entry), NULL); + + /* Cleanup our key */ + efree(key); diff --git a/php-pecl-amqp.spec b/php-pecl-amqp.spec new file mode 100644 index 0000000..45d339c --- /dev/null +++ b/php-pecl-amqp.spec @@ -0,0 +1,152 @@ +%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}} +%global php_apiver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1) +%global php_extver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP Extension => //p') | tail -1) +%global pecl_name amqp + + +Summary: Communicate with any AMQP compliant server +Name: php-pecl-amqp +Version: 1.0.1 +Release: 2%{?dist} +# https://bugs.php.net/61337 - missing LICENSE file +License: PHP +Group: Development/Languages +URL: http://pecl.php.net/package/amqp +Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz + +# http://svn.php.net/viewvc?view=revision&revision=324074 +Patch0: %{pecl_name}-php54.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildRequires: php-devel +BuildRequires: php-pear +BuildRequires: librabbitmq-devel + +%if 0%{?php_zend_api:1} +# For Fedora and EL >= 6 +Requires: php(zend-abi) = %{php_zend_api} +Requires: php(api) = %{php_core_api} +%else +# For EL = 5 +Requires: php-zend-abi = %{php_extver} +Requires: php-api = %{php_apiver} +%endif +Requires(post): %{__pecl} +Requires(postun): %{__pecl} +Provides: php-pecl(%{pecl_name}) = %{version}-%{release} + + +# RPM 4.8 +%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} +%{?filter_setup} +# RPM 4.9 +%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{_libdir}/.*\\.so$ + + +%description +This extension can communicate with any AMQP spec 0-9-1 compatible server, +such as RabbitMQ, OpenAMQP and Qpid, giving you the ability to create and +delete exchanges and queues, as well as publish to any exchange and consume +from any queue. + + +%prep +%setup -q -c + +%patch0 -p0 -b php54 + +cat > %{pecl_name}.ini << 'EOF' +; Enable %{pecl_name} extension module +extension = %{pecl_name}.so + +; http://www.php.net/manual/en/amqp.configuration.php + +; Whether calls to AMQPQueue::get() and AMQPQueue::consume() +; should require that the client explicitly acknowledge messages. +; Setting this value to 1 will pass in the AMQP_AUTOACK flag to +: the above method calls if the flags field is omitted. +;amqp.auto_ack = 0 + +; The host to which to connect. +;amqp.host = localhost + +; The login to use while connecting to the broker. +;amqp.login = guest + +; The password to use while connecting to the broker. +;amqp.password = guest + +; The port on which to connect. +;amqp.port = 5672 + +; The number of messages to prefect from the server during a +; call to AMQPQueue::get() or AMQPQueue::consume() during which +; the AMQP_AUTOACK flag is not set. +;amqp.prefetch_count = 3 + +; The virtual host on the broker to which to connect. +;amqp.vhost = / +EOF + + +%build +cd %{pecl_name}-%{version} +phpize +%configure --with-php-config=%{_bindir}/php-config +make %{?_smp_mflags} + + +%install +rm -rf %{buildroot} +make -C %{pecl_name}-%{version} \ + install INSTALL_ROOT=%{buildroot} + +# Drop in the bit of configuration +install -Dpm 644 %{pecl_name}.ini %{buildroot}%{_sysconfdir}/php.d/%{pecl_name}.ini + +# Install XML package description +install -Dpm 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml + + +%check +# No test provided, just minimal load test +php --no-php-ini \ + --define extension_dir=%{pecl_name}-%{version}/modules \ + --define extension=%{pecl_name}.so \ + -m | grep %{pecl_name} + + +%clean +rm -rf %{buildroot} + + +%if 0%{?pecl_install:1} +%post +%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : +%endif + + +%if 0%{?pecl_uninstall:1} +%postun +if [ $1 -eq 0 ] ; then + %{pecl_uninstall} %{pecl_name} >/dev/null || : +fi +%endif + + +%files +%defattr(-,root,root,-) +%doc %{pecl_name}-%{version}/CREDITS +%config(noreplace) %{_sysconfdir}/php.d/%{pecl_name}.ini +%{php_extdir}/%{pecl_name}.so +%{pecl_xmldir}/%{name}.xml + + +%changelog +* Sat Mar 10 2012 Remi Collet - 1.0.1-2 +- rebuild for PHP 5.4 + +* Sat Mar 10 2012 Remi Collet - 1.0.1-1 +- Initial RPM release without ZTS extension +- open request for LICENSE file https://bugs.php.net/61337 + -- cgit