From 3b94465143a0dd2f2e769b8883534fe3460698d3 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 25 Oct 2024 08:15:24 +0200 Subject: update to 6.0.4 open https://github.com/arnaud-lb/php-rdkafka/issues/562 build broken with PHP 7.2 and older --- PHPINFO | 8 +-- REFLECTION | 179 +++++++++++++++++++++++++++++++++++++++++++++---- php-pecl-rdkafka6.spec | 61 +++++++---------- 3 files changed, 195 insertions(+), 53 deletions(-) diff --git a/PHPINFO b/PHPINFO index 6e19a1d..e2cea65 100644 --- a/PHPINFO +++ b/PHPINFO @@ -2,7 +2,7 @@ rdkafka rdkafka support => enabled -version => 6.0.3 -build date => Jan 19 2023 00:00:00 -librdkafka version (runtime) => 2.2.0 -librdkafka version (build) => 2.0.0.255 +version => 6.0.4 +build date => Oct 25 2024 00:00:00 +librdkafka version (runtime) => 2.6.0 +librdkafka version (build) => 2.6.0.255 diff --git a/REFLECTION b/REFLECTION index a7d9798..85f829d 100644 --- a/REFLECTION +++ b/REFLECTION @@ -1,6 +1,6 @@ -Extension [ extension #124 rdkafka version 6.0.3 ] { +Extension [ extension #94 rdkafka version 6.0.4 ] { - - Constants [185] { + - Constants [193] { Constant [ int RD_KAFKA_CONSUMER ] { 1 } Constant [ int RD_KAFKA_OFFSET_BEGINNING ] { -2 } Constant [ int RD_KAFKA_OFFSET_END ] { -1 } @@ -11,8 +11,8 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { Constant [ int RD_KAFKA_PURGE_F_QUEUE ] { 1 } Constant [ int RD_KAFKA_PURGE_F_INFLIGHT ] { 2 } Constant [ int RD_KAFKA_PURGE_F_NON_BLOCKING ] { 4 } - Constant [ int RD_KAFKA_VERSION ] { 33685759 } - Constant [ int RD_KAFKA_BUILD_VERSION ] { 33554687 } + Constant [ int RD_KAFKA_VERSION ] { 33947903 } + Constant [ int RD_KAFKA_BUILD_VERSION ] { 33947903 } Constant [ int RD_KAFKA_RESP_ERR__BEGIN ] { -200 } Constant [ int RD_KAFKA_RESP_ERR__BAD_MSG ] { -199 } Constant [ int RD_KAFKA_RESP_ERR__BAD_COMPRESSION ] { -198 } @@ -75,6 +75,7 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { Constant [ int RD_KAFKA_RESP_ERR__NOOP ] { -141 } Constant [ int RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET ] { -140 } Constant [ int RD_KAFKA_RESP_ERR__LOG_TRUNCATION ] { -139 } + Constant [ int RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD ] { -138 } Constant [ int RD_KAFKA_RESP_ERR__END ] { -100 } Constant [ int RD_KAFKA_RESP_ERR_UNKNOWN ] { -1 } Constant [ int RD_KAFKA_RESP_ERR_NO_ERROR ] { 0 } @@ -175,6 +176,13 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { Constant [ int RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION ] { 95 } Constant [ int RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED ] { 96 } Constant [ int RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE ] { 97 } + Constant [ int RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID ] { 100 } + Constant [ int RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH ] { 110 } + Constant [ int RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID ] { 111 } + Constant [ int RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR ] { 112 } + Constant [ int RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH ] { 113 } + Constant [ int RD_KAFKA_RESP_ERR_UNKNOWN_SUBSCRIPTION_ID ] { 117 } + Constant [ int RD_KAFKA_RESP_ERR_TELEMETRY_TOO_LARGE ] { 118 } Constant [ int RD_KAFKA_CONF_UNKNOWN ] { -2 } Constant [ int RD_KAFKA_CONF_INVALID ] { -1 } Constant [ int RD_KAFKA_CONF_OK ] { 0 } @@ -254,7 +262,7 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { Property [ private ?callable $dr_cb ] } - - Methods [16] { + - Methods [19] { Method [ private method __construct ] { - Parameters [0] { @@ -279,6 +287,14 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Tentative return [ RdKafka\Metadata ] } + Method [ public method getControllerId ] { + + - Parameters [1] { + Parameter #0 [ int $timeout_ms ] + } + - Tentative return [ int ] + } + Method [ public method getOutQLen ] { - Parameters [0] { @@ -388,6 +404,25 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { } - Tentative return [ array ] } + + Method [ public method oauthbearerSetToken ] { + + - Parameters [4] { + Parameter #0 [ string $token_value ] + Parameter #1 [ int $lifetime_ms ] + Parameter #2 [ string $principal_name ] + Parameter #3 [ array $extensions = [] ] + } + - Tentative return [ void ] + } + + Method [ public method oauthbearerSetTokenFailure ] { + + - Parameters [1] { + Parameter #0 [ string $error ] + } + - Tentative return [ void ] + } } } @@ -405,7 +440,7 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Properties [0] { } - - Methods [17] { + - Methods [20] { Method [ public method __construct ] { - Parameters [1] { @@ -438,6 +473,14 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Tentative return [ RdKafka\Metadata ] } + Method [ public method getControllerId ] { + + - Parameters [1] { + Parameter #0 [ int $timeout_ms ] + } + - Tentative return [ int ] + } + Method [ public method getOutQLen ] { - Parameters [0] { @@ -547,6 +590,25 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { } - Tentative return [ array ] } + + Method [ public method oauthbearerSetToken ] { + + - Parameters [4] { + Parameter #0 [ string $token_value ] + Parameter #1 [ int $lifetime_ms ] + Parameter #2 [ string $principal_name ] + Parameter #3 [ array $extensions = [] ] + } + - Tentative return [ void ] + } + + Method [ public method oauthbearerSetTokenFailure ] { + + - Parameters [1] { + Parameter #0 [ string $error ] + } + - Tentative return [ void ] + } } } @@ -564,7 +626,7 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Properties [0] { } - - Methods [20] { + - Methods [23] { Method [ public method __construct ] { - Parameters [1] { @@ -621,6 +683,14 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Tentative return [ RdKafka\Metadata ] } + Method [ public method getControllerId ] { + + - Parameters [1] { + Parameter #0 [ int $timeout_ms ] + } + - Tentative return [ int ] + } + Method [ public method getOutQLen ] { - Parameters [0] { @@ -730,6 +800,25 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { } - Tentative return [ array ] } + + Method [ public method oauthbearerSetToken ] { + + - Parameters [4] { + Parameter #0 [ string $token_value ] + Parameter #1 [ int $lifetime_ms ] + Parameter #2 [ string $principal_name ] + Parameter #3 [ array $extensions = [] ] + } + - Tentative return [ void ] + } + + Method [ public method oauthbearerSetTokenFailure ] { + + - Parameters [1] { + Parameter #0 [ string $error ] + } + - Tentative return [ void ] + } } } @@ -839,7 +928,7 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Properties [0] { } - - Methods [11] { + - Methods [12] { Method [ public method __construct ] { - Parameters [0] { @@ -925,6 +1014,14 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { } - Tentative return [ void ] } + + Method [ public method setOauthbearerTokenRefreshCb ] { + + - Parameters [1] { + Parameter #0 [ callable $callback ] + } + - Tentative return [ void ] + } } } @@ -1119,7 +1216,7 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { Property [ private ?callable $dr_msg_cb ] } - - Methods [18] { + - Methods [21] { Method [ public method __construct ] { - Parameters [1] { @@ -1135,6 +1232,22 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Tentative return [ void ] } + Method [ public method incrementalAssign ] { + + - Parameters [1] { + Parameter #0 [ array $topic_partitions ] + } + - Tentative return [ void ] + } + + Method [ public method incrementalUnassign ] { + + - Parameters [1] { + Parameter #0 [ array $topic_partitions ] + } + - Tentative return [ void ] + } + Method [ public method getAssignment ] { - Parameters [0] { @@ -1205,6 +1318,14 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Tentative return [ RdKafka\Metadata ] } + Method [ public method getControllerId ] { + + - Parameters [1] { + Parameter #0 [ int $timeout_ms ] + } + - Tentative return [ int ] + } + Method [ public method newTopic ] { - Parameters [2] { @@ -1318,7 +1439,13 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Properties [0] { } - - Methods [4] { + - Methods [5] { + Method [ private method __construct ] { + + - Parameters [0] { + } + } + Method [ public method getOrigBrokerId ] { - Parameters [0] { @@ -1363,7 +1490,13 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Properties [0] { } - - Methods [3] { + - Methods [4] { + Method [ private method __construct ] { + + - Parameters [0] { + } + } + Method [ public method getTopic ] { - Parameters [0] { @@ -1401,7 +1534,13 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Properties [0] { } - - Methods [3] { + - Methods [4] { + Method [ private method __construct ] { + + - Parameters [0] { + } + } + Method [ public method getId ] { - Parameters [0] { @@ -1439,7 +1578,13 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Properties [0] { } - - Methods [5] { + - Methods [6] { + Method [ private method __construct ] { + + - Parameters [0] { + } + } + Method [ public method getId ] { - Parameters [0] { @@ -1491,7 +1636,13 @@ Extension [ extension #124 rdkafka version 6.0.3 ] { - Properties [0] { } - - Methods [6] { + - Methods [7] { + Method [ private method __construct ] { + + - Parameters [0] { + } + } + Method [ public method count ] { - Parameters [0] { diff --git a/php-pecl-rdkafka6.spec b/php-pecl-rdkafka6.spec index 18c157f..834acf0 100644 --- a/php-pecl-rdkafka6.spec +++ b/php-pecl-rdkafka6.spec @@ -1,14 +1,17 @@ # remirepo/fedora spec file for php-pecl-rdkafka6 # -# Copyright (c) 2015-2023 Remi Collet +# Copyright (c) 2015-2024 Remi Collet # License: CC-BY-SA-4.0 # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # -# use library installed in /opt -%bcond_without move_to_opt +# use library installed in /opt, change to use system library +%bcond_without move_to_opt + +# run test suite, change to skip it +%bcond_without tests %if 0%{?scl:1} %scl_package php-pecl-rdkafka6 @@ -16,7 +19,6 @@ %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global pecl_name rdkafka -%global with_tests %{?_without_tests:0}%{!?_without_tests:1} %global ini_name 40-%{pecl_name}.ini %if %{with move_to_opt} @@ -29,7 +31,7 @@ %global buildver %(pkg-config --silence-errors --modversion rdkafka 2>/dev/null || echo 65536) %endif -%global upstream_version 6.0.3 +%global upstream_version 6.0.4 #global upstream_prever RC2 %global sources %{pecl_name}-%{upstream_version}%{?upstream_prever} %global _configure ../%{sources}/configure @@ -37,7 +39,7 @@ Summary: Kafka client based on librdkafka Name: %{?scl_prefix}php-pecl-%{pecl_name}6 Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} -Release: 4%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: MIT URL: https://pecl.php.net/package/%{pecl_name} Source0: https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz @@ -50,7 +52,8 @@ Requires: %{?vendeur:%{vendeur}-}librdkafka%{?_isa} >= %{buildver} %else BuildRequires: librdkafka-devel >= 1.4 %endif -BuildRequires: %{?scl_prefix}php-devel >= 7.0 +# See https://github.com/arnaud-lb/php-rdkafka/issues/562 +BuildRequires: %{?scl_prefix}php-devel >= 7.3 BuildRequires: %{?scl_prefix}php-pear Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} @@ -77,9 +80,8 @@ Provides: %{?scl_prefix}php-pecl-%{pecl_name}4 = %{version}-%{relea Provides: %{?scl_prefix}php-pecl-%{pecl_name}4%{?_isa} = %{version}-%{release} %if %{with move_to_opt} -%{?filter_requires_in: %filter_requires_in %{_libdir}/.*\.so$} +%global __requires_exclude_from ^%{_libdir}/.*$ %endif -%{?filter_setup} %description @@ -93,7 +95,7 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO # Don't install tests sed -e 's/role="test"/role="src"/' \ - %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ + -e '/LICENSE/s/role="doc"/role="src"/' \ -i package.xml cd %{sources} @@ -128,6 +130,8 @@ export PKG_CONFIG_PATH=/opt/%{?vendeur:%{vendeur}/}librdkafka/%{_lib}/pkgconfig cd %{sources} %{__phpize} +[ -f Makefile.global ] && GLOBAL=Makefile.global || GLOBAL=build/Makefile.global +sed -e 's/INSTALL_ROOT/DESTDIR/' -i $GLOBAL cd ../NTS %configure \ @@ -139,7 +143,7 @@ cd ../NTS --with-rdkafka %endif -make %{?_smp_mflags} +%make_build %if %{with_zts} cd ../ZTS @@ -152,14 +156,14 @@ cd ../ZTS --with-rdkafka %endif -make %{?_smp_mflags} +%make_build %endif %install %{?dtsenable} -make -C NTS install INSTALL_ROOT=%{buildroot} +%make_install -C NTS # install config file install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} @@ -168,7 +172,7 @@ install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml %if %{with_zts} -make -C ZTS install INSTALL_ROOT=%{buildroot} +%make_install -C ZTS install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif @@ -179,26 +183,6 @@ do install -Dpm 644 %{sources}/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done -%if 0%{?fedora} < 24 && 0%{?rhel} < 8 -# 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 -%endif - - %check : Minimal load test for NTS extension %{__php} --no-php-ini \ @@ -212,15 +196,17 @@ fi --modules | grep '^%{pecl_name}$' %endif +%if %{with tests} : Upstream test suite for NTS extension cd %{sources} TEST_PHP_ARGS="-n -d extension=$PWD/../NTS/modules/%{pecl_name}.so" \ REPORT_EXIT_STATUS=1 \ %{__php} -n run-tests.php -P -q --show-diff +%endif %files -%{?_licensedir:%license %{sources}/LICENSE} +%license %{sources}/LICENSE %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml @@ -234,6 +220,11 @@ REPORT_EXIT_STATUS=1 \ %changelog +* Fri Oct 25 2024 Remi Collet - 6.0.4-1 +- update to 6.0.4 +- open https://github.com/arnaud-lb/php-rdkafka/issues/562 + build broken with PHP 7.2 and older + * Wed Aug 30 2023 Remi Collet - 6.0.3-4 - rebuild for PHP 8.3.0RC1 -- cgit