diff options
-rw-r--r-- | PHPINFO | 2 | ||||
-rw-r--r-- | REFLECTION | 29 | ||||
-rw-r--r-- | grpc-build.patch | 12 | ||||
-rw-r--r-- | grpc-noatfork.patch | 15 | ||||
-rw-r--r-- | php-pecl-grpc.spec | 261 |
5 files changed, 228 insertions, 91 deletions
@@ -2,7 +2,7 @@ grpc grpc support => enabled -grpc module version => 1.34.0RC1 +grpc module version => 1.63.0 Directive => Local Value => Master Value grpc.enable_fork_support => 0 => 0 @@ -1,4 +1,4 @@ -Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { +Extension [ <persistent> extension #104 grpc version 1.63.0 ] { - INI { Entry [ grpc.enable_fork_support <SYSTEM> ] @@ -18,7 +18,7 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { } } - - Constants [41] { + - Constants [42] { Constant [ int Grpc\CALL_OK ] { 0 } Constant [ int Grpc\CALL_ERROR ] { 1 } Constant [ int Grpc\CALL_ERROR_NOT_ON_SERVER ] { 2 } @@ -60,6 +60,7 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { Constant [ int Grpc\CHANNEL_READY ] { 2 } Constant [ int Grpc\CHANNEL_TRANSIENT_FAILURE ] { 3 } Constant [ int Grpc\CHANNEL_FATAL_FAILURE ] { 4 } + Constant [ string Grpc\VERSION ] { 1.63.0 } } - Classes [7] { @@ -74,7 +75,8 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { - Static methods [0] { } - - Properties [0] { + - Properties [1] { + Property [ protected $channel = NULL ] } - Methods [5] { @@ -84,7 +86,7 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { Parameter #0 [ <required> $channel ] Parameter #1 [ <required> $method ] Parameter #2 [ <required> $deadline ] - Parameter #3 [ <optional> $host_override ] + Parameter #3 [ <optional> $host_override = <default> ] } } @@ -148,7 +150,7 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { Method [ <internal:grpc> public method getConnectivityState ] { - Parameters [1] { - Parameter #0 [ <optional> $try_to_connect ] + Parameter #0 [ <optional> $try_to_connect = <default> ] } } @@ -186,7 +188,7 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { Method [ <internal:grpc, ctor> public method __construct ] { - Parameters [1] { - Parameter #0 [ <optional> $args ] + Parameter #0 [ <optional> $args = <default> ] } } @@ -311,7 +313,7 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { - Static properties [0] { } - - Static methods [7] { + - Static methods [8] { Method [ <internal:grpc> static public method setDefaultRootsPem ] { - Parameters [1] { @@ -340,9 +342,9 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { Method [ <internal:grpc> static public method createSsl ] { - Parameters [3] { - Parameter #0 [ <optional> $pem_root_certs ] - Parameter #1 [ <optional> $pem_private_key ] - Parameter #2 [ <optional> $pem_cert_chain ] + Parameter #0 [ <optional> $pem_root_certs = <default> ] + Parameter #1 [ <optional> $pem_private_key = <default> ] + Parameter #2 [ <optional> $pem_cert_chain = <default> ] } } @@ -359,6 +361,13 @@ Extension [ <persistent> extension #117 grpc version 1.34.0RC1 ] { - Parameters [0] { } } + + Method [ <internal:grpc> static public method createXds ] { + + - Parameters [1] { + Parameter #0 [ <required> ?Grpc\ChannelCredentials $fallback_creds ] + } + } } - Properties [0] { diff --git a/grpc-build.patch b/grpc-build.patch index 1a790b6..6674ffe 100644 --- a/grpc-build.patch +++ b/grpc-build.patch @@ -1,14 +1,14 @@ diff -up ./config.m4.rpm ./config.m4 ---- ./config.m4.rpm 2018-04-09 09:53:39.927037294 +0200 -+++ ./config.m4 2018-04-09 09:54:28.015307629 +0200 -@@ -17,8 +17,8 @@ if test "$PHP_GRPC" != "no"; then +--- ./config.m4.rpm 2022-07-07 07:28:31.928904255 +0200 ++++ ./config.m4 2022-07-07 07:30:39.835689129 +0200 +@@ -19,8 +19,8 @@ if test "$PHP_GRPC" != "no"; then LIBS="-lpthread $LIBS" -- CFLAGS="-Wall -Werror -Wno-parentheses-equality -Wno-unused-value -std=c11 -g -O2" -- CXXFLAGS="-std=c++11 -fno-exceptions -fno-rtti -g -O2" +- CFLAGS="-std=c11 -g -O2" +- CXXFLAGS="-std=c++14 -fno-exceptions -fno-rtti -g -O2" + CFLAGS="$CFLAGS -std=c11" -+ CXXFLAGS="$CXXFLAGS -std=c++11 -fno-exceptions -fno-rtti" ++ CXXFLAGS="$CXXFLAGS -std=c++14 -fno-exceptions -fno-rtti" GRPC_SHARED_LIBADD="-lpthread $GRPC_SHARED_LIBADD" PHP_REQUIRE_CXX() PHP_ADD_LIBRARY(pthread) diff --git a/grpc-noatfork.patch b/grpc-noatfork.patch index ecde982..cf86c29 100644 --- a/grpc-noatfork.patch +++ b/grpc-noatfork.patch @@ -1,12 +1,11 @@ -diff -Naurp a/NTS/config.m4 b/NTS/config.m4 ---- a/NTS/config.m4 2020-02-11 10:37:11.093473672 +0000 -+++ b/NTS/config.m4 2020-02-11 10:38:28.551693692 +0000 -@@ -903,7 +903,7 @@ if test "$PHP_GRPC" != "no"; then +diff -up ./config.m4.noatfork ./config.m4 +--- ./config.m4.noatfork 2022-07-07 07:30:58.524647576 +0200 ++++ ./config.m4 2022-07-07 07:32:01.490513120 +0200 +@@ -1379,7 +1379,6 @@ if test "$PHP_GRPC" != "no"; then , $ext_shared, , -fvisibility=hidden \ -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN \ -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 \ -- -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1) -+ ) +- -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 \ + -DGRPC_XDS_USER_AGENT_NAME_SUFFIX='"\"PHP\""' \ + -DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"1.63.0\""') - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/census) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel) diff --git a/php-pecl-grpc.spec b/php-pecl-grpc.spec index 913751b..d27127f 100644 --- a/php-pecl-grpc.spec +++ b/php-pecl-grpc.spec @@ -1,50 +1,43 @@ # remirepo spec file for php-pecl-grpc # -# Copyright (c) 2017-2020 Remi Collet -# License: CC-BY-SA +# Copyright (c) 2017-2024 Remi Collet +# License: CC-BY-SA-4.0 # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # -# we don't want -z defs linker flag -%undefine _strict_symbol_defs_build - -%if 0%{?scl:1} -%global sub_prefix %{scl_prefix} -%scl_package php-pecl-grpc -%endif +%{?scl:%scl_package php-pecl-grpc} ## TODO: not suitable for Fedora, tons of bundled libraries -%global pecl_name grpc -%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 upstream_version 1.34.0 -%global upstream_prever RC1 +%global pecl_name grpc +%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} +%global ini_name 40-%{pecl_name}.ini +%global upstream_version 1.63.0 +#global upstream_prever RC1 +%global sources %{pecl_name}-%{upstream_version}%{?upstream_prever} +%global _configure ../%{sources}/configure Summary: General RPC framework -Name: %{?sub_prefix}php-pecl-%{pecl_name} +Name: %{?scl_prefix}php-pecl-%{pecl_name} Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} -License: ASL 2.0 +License: Apache-2.0 URL: https://pecl.php.net/package/%{pecl_name} -Source0: https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz +Source0: https://pecl.php.net/get/%{sources}.tgz Patch0: %{pecl_name}-build.patch Patch1: %{pecl_name}-noatfork.patch -%if 0%{?rhel} == 7 && 0%{?dtsversion} == 0 -BuildRequires: devtoolset-6-toolchain -%global dtsversion 6 -%global dtsenable source /opt/rh/devtoolset-6/enable -%global dtsprefix devtoolset-6- +%if 0%{?rhel} == 7 && 0%{?dtsversion} < 7 +BuildRequires: devtoolset-7-toolchain +%global dtsversion 7 +%global dtsenable source /opt/rh/devtoolset-7/enable +%global dtsprefix devtoolset-7- %endif -BuildRequires: %{?dtsprefix}gcc +BuildRequires: make +BuildRequires: %{?dtsprefix}gcc >= 7.0 BuildRequires: %{?dtsprefix}gcc-c++ BuildRequires: %{?scl_prefix}php-devel >= 7.0 BuildRequires: %{?scl_prefix}php-pear @@ -52,35 +45,11 @@ BuildRequires: zlib-devel 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} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} -Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} -%endif - -%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} -# Other third party repo stuff -%if "%{php_version}" > "7.3" -Obsoletes: php73-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "7.4" -Obsoletes: php74-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "8.0" -Obsoletes: php80-pecl-%{pecl_name} <= %{version} -%endif -%endif - -%if 0%{?fedora} < 20 && 0%{?rhel} < 7 -# Filter shared private -%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} -%{?filter_setup} -%endif %description @@ -95,17 +64,16 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO %prep %setup -q -c -mv %{pecl_name}-%{upstream_version}%{?upstream_prever} NTS # Don't install/register tests sed -e 's/role="test"/role="src"/' \ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -i package.xml -cd NTS -%patch0 -p1 -b .rpm +cd %{sources} +%patch -P0 -p1 -b .rpm %ifarch %{arm} -%patch1 -p2 -b .noatfork +%patch -P1 -p1 -b .noatfork %endif #sed -e '/PHP_GRPC_VERSION/s/RC3/RC2/' -i src/php/ext/grpc/version.h @@ -118,9 +86,9 @@ if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}"; then fi cd .. +mkdir NTS %if %{with_zts} -# Duplicate source tree for NTS / ZTS build -cp -pr NTS ZTS +mkdir ZTS %endif # Create configuration file @@ -140,22 +108,23 @@ EOF %build %{?dtsenable} -cd NTS -%{_bindir}/phpize +cd %{sources} +%{__phpize} + +cd ../NTS %configure \ --enable-grpc \ --with-libdir=%{_lib} \ - --with-php-config=%{_bindir}/php-config + --with-php-config=%{__phpconfig} make %{?_smp_mflags} %if %{with_zts} cd ../ZTS -%{_bindir}/zts-phpize %configure \ --enable-grpc \ --with-libdir=%{_lib} \ - --with-php-config=%{_bindir}/zts-php-config + --with-php-config=%{__ztsphpconfig} make %{?_smp_mflags} %endif @@ -180,7 +149,7 @@ install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} # 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 +do install -Dpm 644 %{sources}/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done @@ -209,20 +178,20 @@ fi cd NTS %{__php} --no-php-ini \ --define extension=modules/%{pecl_name}.so \ - --modules | grep %{pecl_name} + --modules | grep '^%{pecl_name}$' %if %{with_zts} : Minimal load test for ZTS extension cd ../ZTS %{__ztsphp} --no-php-ini \ --define extension=modules/%{pecl_name}.so \ - --modules | grep %{pecl_name} + --modules | grep '^%{pecl_name}$' %endif %files %{!?_licensedir:%global license %%doc} -%license NTS/LICENSE +%license %{sources}/LICENSE %{pecl_xmldir}/%{name}.xml %config(noreplace) %{php_inidir}/%{ini_name} @@ -235,6 +204,166 @@ cd ../ZTS %changelog +* Wed May 1 2024 Remi Collet <remi@remirepo.net> - 1.63.0-1 +- update to 1.63.0 + +* Wed Apr 17 2024 Remi Collet <remi@remirepo.net> - 1.63.0~RC1-1 +- update to 1.63.0RC1 + +* Thu Feb 22 2024 Remi Collet <remi@remirepo.net> - 1.62.0-1 +- update to 1.62.0 + +* Tue Feb 20 2024 Remi Collet <remi@remirepo.net> - 1.62.0~RC1-1 +- update to 1.62.0RC1 +- report broken build using GCC 14 on Fedora 40 + https://github.com/grpc/grpc/issues/35945 + +* Tue Feb 6 2024 Remi Collet <remi@remirepo.net> - 1.61.0-1 +- update to 1.61.0 + +* Fri Dec 1 2023 Remi Collet <remi@remirepo.net> - 1.60.0-1 +- update to 1.60.0 + +* Fri Nov 17 2023 Remi Collet <remi@remirepo.net> - 1.60.0~RC1-1 +- update to 1.60.0RC1 + +* Tue Oct 17 2023 Remi Collet <remi@remirepo.net> - 1.59.1-1 +- update to 1.59.1 + +* Thu Sep 28 2023 Remi Collet <remi@remirepo.net> - 1.59.0~RC1-1 +- update to 1.59.0RC1 + +* Thu Sep 7 2023 Remi Collet <remi@remirepo.net> - 1.58.0-1 +- update to 1.58.0 + +* Wed Aug 30 2023 Remi Collet <remi@remirepo.net> - 1.57.0-2 +- rebuild for PHP 8.3.0RC1 + +* Sat Aug 19 2023 Remi Collet <remi@remirepo.net> - 1.57.0-1 +- update to 1.57.0 +- build out of sources tree + +* Mon Jun 19 2023 Remi Collet <remi@remirepo.net> - 1.56.0-1 +- update to 1.56.0 + +* Mon Jun 5 2023 Remi Collet <remi@remirepo.net> - 1.56.0~RC1-1 +- update to 1.56.0RC1 + +* Tue May 23 2023 Remi Collet <remi@remirepo.net> - 1.55.0-1 +- update to 1.55.0 + +* Tue May 2 2023 Remi Collet <remi@remirepo.net> - 1.55.0~RC1-1 +- update to 1.55.0RC1 + +* Tue Apr 18 2023 Remi Collet <remi@remirepo.net> - 1.54.0-1 +- update to 1.54.0 + +* Mon Mar 27 2023 Remi Collet <remi@remirepo.net> - 1.53.0-1 +- update to 1.53.0 + +* Tue Mar 14 2023 Remi Collet <remi@remirepo.net> - 1.53.0~RC2-1 +- update to 1.53.0RC2 + +* Thu Mar 2 2023 Remi Collet <remi@remirepo.net> - 1.53.0~RC1-1 +- update to 1.53.0RC1 +- use GCC 7 on EL-7 with PHP <= 7.2 + +* Mon Feb 27 2023 Remi Collet <remi@remirepo.net> - 1.52.1-1 +- update to 1.52.1 + +* Thu Jan 26 2023 Remi Collet <remi@remirepo.net> - 1.52.0~RC1-1 +- update to 1.52.0RC1 + +* Wed Nov 30 2022 Remi Collet <remi@remirepo.net> - 1.51.1-1 +- update to 1.51.1 + +* Tue Oct 18 2022 Remi Collet <remi@remirepo.net> - 1.50.0-1 +- update to 1.50.0 + +* Tue Oct 4 2022 Remi Collet <remi@remirepo.net> - 1.50.0~RC1-1 +- update to 1.50.0RC1 + +* Wed Sep 21 2022 Remi Collet <remi@remirepo.net> - 1.49.0-1 +- update to 1.49.0 + +* Wed Sep 7 2022 Remi Collet <remi@remirepo.net> - 1.48.1-1 +- update to 1.48.1 + +* Thu Jul 21 2022 Remi Collet <remi@remirepo.net> - 1.48.0-1 +- update to 1.48.0 + +* Thu Jul 7 2022 Remi Collet <remi@remirepo.net> - 1.47.0-1 +- update to 1.47.0 + +* Thu May 26 2022 Remi Collet <remi@remirepo.net> - 1.46.3-1 +- update to 1.46.3 + +* Wed May 25 2022 Remi Collet <remi@remirepo.net> - 1.46.1-1 +- update to 1.46.1 + +* Mon Mar 28 2022 Remi Collet <remi@remirepo.net> - 1.45.0-1 +- update to 1.45.0 + +* Thu Feb 24 2022 Remi Collet <remi@remirepo.net> - 1.44.0-1 +- update to 1.44.0 + +* Mon Jan 31 2022 Remi Collet <remi@remirepo.net> - 1.44.0~RC2-1 +- update to 1.44.0RC2 + +* Fri Jan 7 2022 Remi Collet <remi@remirepo.net> - 1.43.0-1 +- update to 1.43.0 + +* Thu Dec 9 2021 Remi Collet <remi@remirepo.net> - 1.43.0~RC1-1 +- update to 1.43.0RC1 + +* Fri Nov 19 2021 Remi Collet <remi@remirepo.net> - 1.42.0-1 +- update to 1.42.0 + +* Tue Nov 9 2021 Remi Collet <remi@remirepo.net> - 1.42.0~RC1-1 +- update to 1.42.0RC1 + +* Tue Sep 28 2021 Remi Collet <remi@remirepo.net> - 1.41.0-1 +- update to 1.41.0 + +* Sat Sep 18 2021 Remi Collet <remi@remirepo.net> - 1.40.0-1 +- update to 1.40.0 + +* Wed Sep 01 2021 Remi Collet <remi@remirepo.net> - 1.39.0-2 +- rebuild for 8.1.0RC1 + +* Sun Jul 25 2021 Remi Collet <remi@remirepo.net> - 1.39.0-1 +- update to 1.39.0 + +* Tue May 25 2021 Remi Collet <remi@remirepo.net> - 1.38.0-1 +- update to 1.38.0 + +* Wed May 12 2021 Remi Collet <remi@remirepo.net> - 1.38.0~RC1-1 +- update to 1.38.0RC1 + +* Sat May 1 2021 Remi Collet <remi@remirepo.net> - 1.37.1-1 +- update to 1.37.1 + +* Fri Apr 9 2021 Remi Collet <remi@remirepo.net> - 1.37.0-1 +- update to 1.37.0 + +* Wed Apr 7 2021 Remi Collet <remi@remirepo.net> - 1.37.0~RC1-1 +- update to 1.37.0RC1 + +* Tue Mar 2 2021 Remi Collet <remi@remirepo.net> - 1.36.0-1 +- update to 1.36.0 + +* Thu Jan 21 2021 Remi Collet <remi@remirepo.net> - 1.35.0-1 +- update to 1.35.0 + +* Fri Jan 8 2021 Remi Collet <remi@remirepo.net> - 1.35.0~RC1-1 +- update to 1.35.0RC1 + +* Thu Dec 3 2020 Remi Collet <remi@remirepo.net> - 1.34.0-1 +- update to 1.34.0 + +* Wed Nov 25 2020 Remi Collet <remi@remirepo.net> - 1.34.0~RC2-1 +- update to 1.34.0RC2 + * Sat Nov 21 2020 Remi Collet <remi@remirepo.net> - 1.34.0~RC1-1 - update to 1.34.0RC1 - raise dependency on PHP 7.0 |