From 0e480cbbf412be8245f868bb6f8b17e32acfb6c0 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 19 Jan 2016 13:20:07 +0100 Subject: php-pecl-mogilefs: 0.9.3 (php 7, beta) --- LICENSE | 12 +++ REFLECTION-PHP7 | 238 ++++++++++++++++++++++++++++++++++++++++++++ php-pecl-mogilefs-php7.spec | 234 +++++++++++++++++++++++++++++++++++++++++++ php-pecl-mogilefs.spec | 2 +- 4 files changed, 485 insertions(+), 1 deletion(-) create mode 100644 LICENSE create mode 100644 REFLECTION-PHP7 create mode 100644 php-pecl-mogilefs-php7.spec diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ff011e1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,12 @@ +Copyright (c) 2008 - 2016, Lars Strojny +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/REFLECTION-PHP7 b/REFLECTION-PHP7 new file mode 100644 index 0000000..8b5a60d --- /dev/null +++ b/REFLECTION-PHP7 @@ -0,0 +1,238 @@ +Extension [ extension #62 mogilefs version 0.9.3 ] { + + - Classes [2] { + Class [ class MogileFs ] { + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [1] { + Method [ static public method isInDebuggingMode ] { + + - Parameters [0] { + } + } + } + + - Properties [0] { + } + + - Methods [33] { + Method [ public method __construct ] { + } + + Method [ public method isConnected ] { + + - Parameters [0] { + } + } + + Method [ public method connect ] { + + - Parameters [4] { + Parameter #0 [ $host ] + Parameter #1 [ $port ] + Parameter #2 [ $domain ] + Parameter #3 [ $timeout ] + } + } + + Method [ public method get ] { + + - Parameters [2] { + Parameter #0 [ $key ] + Parameter #1 [ $pathcount ] + } + } + + Method [ public method getDomains ] { + + - Parameters [0] { + } + } + + Method [ public method fileInfo ] { + + - Parameters [1] { + Parameter #0 [ $key ] + } + } + + Method [ public method listKeys ] { + } + + Method [ public method listFids ] { + } + + Method [ public method getHosts ] { + } + + Method [ public method getDevices ] { + } + + Method [ public method sleep ] { + + - Parameters [1] { + Parameter #0 [ $seconds ] + } + } + + Method [ public method stats ] { + } + + Method [ public method replicate ] { + } + + Method [ public method createDevice ] { + } + + Method [ public method createDomain ] { + } + + Method [ public method deleteDomain ] { + } + + Method [ public method createClass ] { + } + + Method [ public method updateClass ] { + } + + Method [ public method deleteClass ] { + } + + Method [ public method createHost ] { + } + + Method [ public method updateHost ] { + } + + Method [ public method deleteHost ] { + } + + Method [ public method setWeight ] { + } + + Method [ public method setState ] { + } + + Method [ public method checker ] { + } + + Method [ public method monitorRound ] { + } + + Method [ public method put ] { + + - Parameters [4] { + Parameter #0 [ $filename ] + Parameter #1 [ $key ] + Parameter #2 [ $class ] + Parameter #3 [ $file_only ] + } + } + + Method [ public method close ] { + + - Parameters [0] { + } + } + + Method [ public method delete ] { + + - Parameters [1] { + Parameter #0 [ $key ] + } + } + + Method [ public method rename ] { + + - Parameters [2] { + Parameter #0 [ $key ] + Parameter #1 [ $destination ] + } + } + + Method [ public method setReadTimeout ] { + + - Parameters [1] { + Parameter #0 [ $readTimeout ] + } + } + + Method [ public method getReadTimeout ] { + + - Parameters [0] { + } + } + + Method [ public method disconnect ] { + + - Parameters [0] { + } + } + } + } + + Class [ class MogileFsException extends Exception implements Throwable ] { + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [4] { + Property [ protected $message ] + Property [ protected $code ] + Property [ protected $file ] + Property [ protected $line ] + } + + - Methods [10] { + Method [ public method __construct ] { + + - Parameters [3] { + Parameter #0 [ $message ] + Parameter #1 [ $code ] + Parameter #2 [ $previous ] + } + } + + Method [ public method __wakeup ] { + } + + Method [ final public method getMessage ] { + } + + Method [ final public method getCode ] { + } + + Method [ final public method getFile ] { + } + + Method [ final public method getLine ] { + } + + Method [ final public method getTrace ] { + } + + Method [ final public method getPrevious ] { + } + + Method [ final public method getTraceAsString ] { + } + + Method [ public method __toString ] { + } + } + } + } +} + diff --git a/php-pecl-mogilefs-php7.spec b/php-pecl-mogilefs-php7.spec new file mode 100644 index 0000000..2528fcd --- /dev/null +++ b/php-pecl-mogilefs-php7.spec @@ -0,0 +1,234 @@ +# remirepo spec file for php-pecl-mogilefs +# +# Copyright (c) 2015-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} +%endif + +%{?scl: %scl_package php-pecl-mogilefs} +%{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d} +%{!?__pecl: %global __pecl %{_bindir}/pecl} +%{!?__php: %global __php %{_bindir}/php} + +# Broken for now +%global with_zts 0 +%global pecl_name mogilefs +# Running test suite requires a server +%global with_tests 0%{?_with_tests:1} +%global ini_name 40-%{pecl_name}.ini + +Summary: PHP client library to communicate with the MogileFS storage +Name: %{?sub_prefix}php-pecl-%{pecl_name} +Version: 0.9.3 +Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +# https://github.com/lstrojny/pecl-mogilefs/issues/15 +License: BSD +Group: Development/Languages +URL: http://pecl.php.net/package/%{pecl_name} +Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz +Source1: https://raw.githubusercontent.com/lstrojny/pecl-mogilefs/master/LICENSE + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: libxml2-devel +BuildRequires: neon-devel +BuildRequires: %{?scl_prefix}php-devel > 7 +BuildRequires: %{?scl_prefix}php-pear + +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_name} = %{version} +Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} +Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version} +Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version} +Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} +Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} + +%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} +# Other third party repo stuff +Obsoletes: php53-pecl-%{pecl_name} <= %{version} +Obsoletes: php53u-pecl-%{pecl_name} <= %{version} +Obsoletes: php54-pecl-%{pecl_name} <= %{version} +Obsoletes: php54w-pecl-%{pecl_name} <= %{version} +Obsoletes: php55u-pecl-%{pecl_name} <= %{version} +Obsoletes: php55w-pecl-%{pecl_name} <= %{version} +Obsoletes: php56u-pecl-%{pecl_name} <= %{version} +Obsoletes: php56w-pecl-%{pecl_name} <= %{version} +Obsoletes: php70u-pecl-%{pecl_name} <= %{version} +Obsoletes: php70w-pecl-%{pecl_name} <= %{version} +%endif + +%if 0%{?fedora} < 20 && 0%{?rhel} < 7 +# Filter shared private +%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} +%{?filter_setup} +%endif + + +%description +PHP MogileFS is a client library to communicate with MogileFS trackers. +Those trackers are part of the distributed filesystem MogileFS created by +Danga Interactive (http://www.danga.com/) and used in serveral large scale +projects like LiveJournal. + +Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{scl_vendor})}. + + +%prep +%setup -q -c +mv %{pecl_name}-%{version} NTS + +# Don't install tests +sed -e '/role="test"/d' -i package.xml + +cd NTS +cp %{SOURCE1} . + +: Sanity check, really often broken +extver=$(sed -n '/#define PHP_MOGILEFS_VERSION/{s/.* "//;s/".*$//;p}' php_mogilefs.h) +if test "x${extver}" != "x%{version}"; then + : Error: Upstream extension version is ${extver}, expecting %{version}. + exit 1 +fi +cd .. + +%if %{with_zts} +# Duplicate source tree for NTS / ZTS build +cp -pr NTS ZTS +%endif + +# Create configuration file +cat > %{ini_name} << 'EOF' +; Enable %{pecl_name} extension module +extension=%{pecl_name}.so +EOF + + +%build +cd NTS +%{_bindir}/phpize +%configure \ + --with-mogilefs \ + --with-php-config=%{_bindir}/php-config +make %{?_smp_mflags} + +%if %{with_zts} +cd ../ZTS +%{_bindir}/zts-phpize +%configure \ + --with-mogilefs \ + --with-php-config=%{_bindir}/zts-php-config +make %{?_smp_mflags} +%endif + + +%install +rm -rf %{buildroot} + +make -C NTS install INSTALL_ROOT=%{buildroot} + +# install config file +install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} + +# Install XML package description +install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml + +%if %{with_zts} +make -C ZTS install INSTALL_ROOT=%{buildroot} + +install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} +%endif + +# Documentation +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 +cd NTS +: Minimal load test for NTS extension +%{__php} --no-php-ini \ + --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ + --modules | grep %{pecl_name} + +%if %{with_tests} +: Upstream test suite for NTS extension +TEST_PHP_EXECUTABLE=%{__php} \ +TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \ +NO_INTERACTION=1 \ +REPORT_EXIT_STATUS=1 \ +%{__php} -n run-tests.php --show-diff +%endif + +%if %{with_zts} +cd ../ZTS +: Minimal load test for ZTS extension +%{__ztsphp} --no-php-ini \ + --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ + --modules | grep %{pecl_name} + +%if %{with_tests} +: Upstream test suite for ZTS extension +TEST_PHP_EXECUTABLE=%{_bindir}/zts-php \ +TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \ +NO_INTERACTION=1 \ +REPORT_EXIT_STATUS=1 \ +%{_bindir}/zts-php -n run-tests.php --show-diff +%endif +%endif + + +# when pear installed alone, after us +%triggerin -- %{?scl_prefix}php-pear +if [ -x %{__pecl} ] ; then + %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : +fi + +# posttrans as pear can be installed after us +%posttrans +if [ -x %{__pecl} ] ; then + %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : +fi + +%postun +if [ $1 -eq 0 -a -x %{__pecl} ] ; then + %{pecl_uninstall} %{pecl_name} >/dev/null || : +fi + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%doc %{pecl_docdir}/%{pecl_name} +%{?_licensedir:%license NTS/LICENSE} + +%{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 Jan 19 2016 Remi Collet - 0.9.3-1 +- Update to 0.9.3 (php 7, beta) + +* Thu Sep 3 2015 Remi Collet - 0.9.2-1 +- initial package, version 0.9.2 (beta) +- missing license file + open https://github.com/lstrojny/pecl-mogilefs/issues/15 +- ZTS build is broken + open https://github.com/lstrojny/pecl-mogilefs/pull/16 \ No newline at end of file diff --git a/php-pecl-mogilefs.spec b/php-pecl-mogilefs.spec index 0c8b9f6..b88e1f9 100644 --- a/php-pecl-mogilefs.spec +++ b/php-pecl-mogilefs.spec @@ -99,7 +99,7 @@ mv %{pecl_name}-%{version} NTS sed -e '/role="test"/d' -i package.xml cd NTS -! Fix version +: Fix version sed -e '/PHP_MOGILEFS_VERSION/s/0.9.2-dev/%{version}/' -i php_mogilefs.h : Sanity check, really often broken -- cgit