From 326f82330a23e4feccd0d12c5e6fae1a99108a5f Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sat, 12 Nov 2016 16:48:57 +0100 Subject: php-phpiredis: 1.0.0-dev, New package --- Makefile | 4 + REFLECTION | 59 ++++++++++++++ php-phpiredis.spec | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 292 insertions(+) create mode 100644 Makefile create mode 100644 REFLECTION create mode 100644 php-phpiredis.spec diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..91b0fd5 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../common/Makefile + diff --git a/REFLECTION b/REFLECTION new file mode 100644 index 0000000..d17ea0e --- /dev/null +++ b/REFLECTION @@ -0,0 +1,59 @@ +Extension [ extension #108 phpiredis version 1.0.0-dev ] { + + - Constants [9] { + Constant [ integer PHPIREDIS_READER_STATE_INCOMPLETE ] { 2 } + Constant [ integer PHPIREDIS_READER_STATE_COMPLETE ] { 1 } + Constant [ integer PHPIREDIS_READER_STATE_ERROR ] { 3 } + Constant [ integer PHPIREDIS_REPLY_STRING ] { 1 } + Constant [ integer PHPIREDIS_REPLY_ARRAY ] { 2 } + Constant [ integer PHPIREDIS_REPLY_INTEGER ] { 3 } + Constant [ integer PHPIREDIS_REPLY_NIL ] { 4 } + Constant [ integer PHPIREDIS_REPLY_STATUS ] { 5 } + Constant [ integer PHPIREDIS_REPLY_ERROR ] { 6 } + } + + - Functions { + Function [ function phpiredis_connect ] { + } + Function [ function phpiredis_pconnect ] { + } + Function [ function phpiredis_disconnect ] { + } + Function [ function phpiredis_command ] { + } + Function [ function phpiredis_command_bs ] { + } + Function [ function phpiredis_multi_command ] { + } + Function [ function phpiredis_multi_command_bs ] { + } + Function [ function phpiredis_format_command ] { + } + Function [ function phpiredis_reader_create ] { + } + Function [ function phpiredis_reader_reset ] { + } + Function [ function phpiredis_reader_feed ] { + } + Function [ function phpiredis_reader_get_state ] { + } + Function [ function phpiredis_reader_get_error ] { + } + Function [ function phpiredis_reader_get_reply ] { + + - Parameters [2] { + Parameter #0 [ $ptr ] + Parameter #1 [ &$type ] + } + } + Function [ function phpiredis_reader_destroy ] { + } + Function [ function phpiredis_reader_set_error_handler ] { + } + Function [ function phpiredis_reader_set_status_handler ] { + } + Function [ function phpiredis_utils_crc16 ] { + } + } +} + diff --git a/php-phpiredis.spec b/php-phpiredis.spec new file mode 100644 index 0000000..f8fd523 --- /dev/null +++ b/php-phpiredis.spec @@ -0,0 +1,229 @@ +# remirepo spec file for php-phpiredis +# +# Copyright (c) 2016 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%if 0%{?scl:1} +%global sub_prefix %{scl_prefix} +%scl_package php-phpiredis +%endif + +%global gh_commit a64e3bfe78c06c9013d5f78651aa3f631d94622f +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner nrk +%global gh_project phpiredis +%global gh_date 20160715 +#global prever RC1 + +%global pecl_name phpiredis +%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} +%if "%{php_version}" < "5.6" +%global ini_name %{pecl_name}.ini +%else +%global ini_name 40-%{pecl_name}.ini +%endif +%global with_tests 0%{!?_without_tests:1} + +Name: %{?sub_prefix}php-%{pecl_name} +Version: 1.0.0 +%if 0%{?gh_date} +Release: 0.1.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +%else +Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +%endif + +Summary: Client extension for Redis + +Group: Development/Languages +License: BSD +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{pecl_name}-%{version}-%{gh_short}.tar.gz + +BuildRequires: %{?scl_prefix}php-devel +BuildRequires: %{?scl_prefix}php-pear +BuildRequires: hiredis-devel +%if %{with_tests} +BuildRequires: redis +%endif + +Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} +Requires: %{?scl_prefix}php(api) = %{php_core_api} +%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} + +%if "%{?scl_prefix}" != "%{?sub_prefix}" +Provides: %{?scl_prefix}php-%{pecl_name} = %{version}-%{release} +Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version}-%{release} +%endif + +%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} +# Other third party repo stuff +%if "%{php_version}" > "5.5" +Obsoletes: php55u-%{pecl_name} <= %{version} +Obsoletes: php55u-pecl-%{pecl_name} <= %{version} +Obsoletes: php55w-%{pecl_name} <= %{version} +Obsoletes: php55w-pecl-%{pecl_name} <= %{version} +%endif +%if "%{php_version}" > "5.6" +Obsoletes: php56u-%{pecl_name} <= %{version} +Obsoletes: php56u-pecl-%{pecl_name} <= %{version} +Obsoletes: php56w-%{pecl_name} <= %{version} +Obsoletes: php56w-pecl-%{pecl_name} <= %{version} +%endif +%if "%{php_version}" > "7.0" +Obsoletes: php70u-%{pecl_name} <= %{version} +Obsoletes: php70u-pecl-%{pecl_name} <= %{version} +Obsoletes: php70w-%{pecl_name} <= %{version} +Obsoletes: php70w-pecl-%{pecl_name} <= %{version} +%endif +%if "%{php_version}" > "7.1" +Obsoletes: php71u-%{pecl_name} <= %{version} +Obsoletes: php71u-pecl-%{pecl_name} <= %{version} +Obsoletes: php71w-%{pecl_name} <= %{version} +Obsoletes: php71w-pecl-%{pecl_name} <= %{version} +%endif +%endif + +%if 0%{?fedora} < 20 && 0%{?rhel} < 7 +# Filter private shared +%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} +%{?filter_setup} +%endif + + +%description +Phpiredis is an extension for PHP 5.x and 7.x based on hiredis +that provides a simple and efficient client for Redis and a fast +incremental parser / serializer for the RESP protocol. + +Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. + + +%prep +%setup -q -c +mv %{gh_project}-%{gh_commit} NTS + +cd NTS + +# Check extension version +ver=$(sed -n '/define PHP_PHPIREDIS_VERSION/{s/.* "//;s/".*$//;p}' php_phpiredis.h) +if test "$ver" != "%{version}%{?prever}%{?gh_date:-dev}"; then + : Error: Upstream VERSION version is ${ver}, expecting %{version}%{?prever}%{?gh_date:-dev}. + exit 1 +fi +cd .. + +cat << 'EOF' | tee %{ini_name} +; Enable %{pecl_name} extension module +extension=%{pecl_name}.so +EOF + + +%if %{with_zts} +# Duplicate source tree for NTS / 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 +make -C NTS install INSTALL_ROOT=%{buildroot} + +# install configuration +install -Dpm 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} + +%if %{with_zts} +make -C ZTS install INSTALL_ROOT=%{buildroot} +install -Dpm 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} +%endif + + +%check +: Minimal load test for NTS extension +%{__php} --no-php-ini \ + --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ + --modules | grep %{pecl_name} + +%if %{with_zts} +: Minimal load test for NTS extension +%{__ztsphp} --no-php-ini \ + --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ + --modules | grep %{pecl_name} +%endif + +%if %{with_tests} +: Upstream test suite for NTS extension +pidfile=$PWD/redis.pid +port=$(%{__php} -r 'echo 9000 + PHP_MAJOR_VERSION*100 + PHP_MINOR_VERSION*10 + PHP_INT_SIZE;') +sed -e "/REDIS_PORT/s/6379/$port/" -i ?TS/tests/testsuite_configuration.inc +mkdir -p data + +redis-server \ + --bind 127.0.0.1 \ + --port $port \ + --daemonize yes \ + --logfile $PWD/redis.log \ + --dir $PWD/data \ + --pidfile $pidfile + +cd NTS +: Upstream test suite for NTS extension +TEST_PHP_EXECUTABLE=%{__php} \ +TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ +NO_INTERACTION=1 \ +REPORT_EXIT_STATUS=1 \ +%{__php} -n run-tests.php --show-diff || ret=1 + +%if %{with_zts} +cd ../ZTS +: Upstream test suite for ZTS extension +TEST_PHP_EXECUTABLE=%{__ztsphp} \ +TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \ +NO_INTERACTION=1 \ +REPORT_EXIT_STATUS=1 \ +%{__ztsphp} -n run-tests.php --show-diff || ret=1 +%endif + +: Cleanup +if [ -s $pidfile ]; then + kill $(cat $pidfile) + sleep 1 +fi + +exit $ret +%endif + + +%files +%{!?_licensedir:%global license %%doc} +%license NTS/LICENSE +%doc NTS/README.md + +%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 +* Sat Nov 12 2016 Remi Collet - 1.0.0-0.1.20160715gita64e3bf +- Initial packaging of 1.0.0-dev + -- cgit