From 718aa7b84d3a4625d366d6a8ba9ba8516ca4d74c Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 19 Jan 2023 15:53:23 +0100 Subject: update to 2.0.1 rename to remi-librdkafka installed in /opt/remi/librdkafka --- compat_reports/1.9.2_to_2.0.1/compat_report.html | 880 +++++++++++++++++++++++ librdkafka-soname.patch | 22 - librdkafka.spec | 55 +- librdkafka.xml | 6 +- 4 files changed, 922 insertions(+), 41 deletions(-) create mode 100644 compat_reports/1.9.2_to_2.0.1/compat_report.html delete mode 100644 librdkafka-soname.patch diff --git a/compat_reports/1.9.2_to_2.0.1/compat_report.html b/compat_reports/1.9.2_to_2.0.1/compat_report.html new file mode 100644 index 0000000..ded670a --- /dev/null +++ b/compat_reports/1.9.2_to_2.0.1/compat_report.html @@ -0,0 +1,880 @@ + + + + + + + + + +librdkafka: 1.9.2 to 2.0.1 compatibility report + + + +

API compatibility report for the librdkafka library between 1.9.2 and 2.0.1 versions on x86_64

+ +
+
+ Binary
Compatibility
+ Source
Compatibility
+
+

Test Info


+ + + + + + + +
Library Namelibrdkafka
Version #11.9.2
Version #22.0.1
Archx86_64
GCC Version12
SubjectBinary Compatibility
+

Test Results


+ + + + + + +
Total Header Files1
Total Libraries1
Total Symbols / Types336 / 134
Compatibility99.9%
+

Problem Summary


+ + + + + + + + + + + +
SeverityCount
Added Symbols-46
Removed SymbolsHigh0
Problems with
Data Types
High0
Medium1
Low0
Problems with
Symbols
High0
Medium0
Low0
Problems with
Constants
Low0
Other Changes
in Data Types
-4
Other Changes
in Constants
-4
+ +

Added Symbols  46 


+rdkafka.h, librdkafka.so.1
+rd_kafka_AdminOptions_set_match_consumer_group_states ( rd_kafka_AdminOptions_t* options, enum rd_kafka_consumer_group_state_t const* consumer_group_states, size_t consumer_group_states_cnt )
+rd_kafka_AdminOptions_set_require_stable_offsets ( rd_kafka_AdminOptions_t* options, int true_or_false )
+rd_kafka_AlterConsumerGroupOffsets ( rd_kafka_t* rk, rd_kafka_AlterConsumerGroupOffsets_t** alter_grpoffsets, size_t alter_grpoffsets_cnt, rd_kafka_AdminOptions_t const* options, rd_kafka_queue_t* rkqu )
+rd_kafka_AlterConsumerGroupOffsets_destroy ( rd_kafka_AlterConsumerGroupOffsets_t* alter_grpoffsets )
+rd_kafka_AlterConsumerGroupOffsets_destroy_array ( rd_kafka_AlterConsumerGroupOffsets_t** alter_grpoffsets, size_t alter_grpoffset_cnt )
+rd_kafka_AlterConsumerGroupOffsets_new ( char const* group_id, rd_kafka_topic_partition_list_t const* partitions )
+rd_kafka_AlterConsumerGroupOffsets_result_groups ( rd_kafka_AlterConsumerGroupOffsets_result_t const* result, size_t* cntp )
+rd_kafka_conf_set_resolve_cb ( rd_kafka_conf_t* conf, int(*resolve_cb)(char const*, char const*, struct addrinfo const*, struct addrinfo**, void*) )
+rd_kafka_consumer_group_state_code ( char const* name )
+rd_kafka_consumer_group_state_name ( enum rd_kafka_consumer_group_state_t state )
+rd_kafka_ConsumerGroupDescription_coordinator ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_error ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_group_id ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_is_simple_consumer_group ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_member ( rd_kafka_ConsumerGroupDescription_t const* grpdesc, size_t idx )
+rd_kafka_ConsumerGroupDescription_member_count ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_partition_assignor ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_state ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupListing_group_id ( rd_kafka_ConsumerGroupListing_t const* grplist )
+rd_kafka_ConsumerGroupListing_is_simple_consumer_group ( rd_kafka_ConsumerGroupListing_t const* grplist )
+rd_kafka_ConsumerGroupListing_state ( rd_kafka_ConsumerGroupListing_t const* grplist )
+rd_kafka_DescribeConsumerGroups ( rd_kafka_t* rk, char const** groups, size_t groups_cnt, rd_kafka_AdminOptions_t const* options, rd_kafka_queue_t* rkqu )
+rd_kafka_DescribeConsumerGroups_result_groups ( rd_kafka_DescribeConsumerGroups_result_t const* result, size_t* cntp )
+rd_kafka_event_AlterConsumerGroupOffsets_result ( rd_kafka_event_t* rkev )
+rd_kafka_event_DescribeConsumerGroups_result ( rd_kafka_event_t* rkev )
+rd_kafka_event_ListConsumerGroupOffsets_result ( rd_kafka_event_t* rkev )
+rd_kafka_event_ListConsumerGroups_result ( rd_kafka_event_t* rkev )
+rd_kafka_interceptor_add_on_broker_state_change ( rd_kafka_t* rk, char const* ic_name, enum rd_kafka_resp_err_t(*on_broker_state_change)(rd_kafka_t*, int32_t, char const*, char const*, int, char const*, void*), void* ic_opaque )
+rd_kafka_ListConsumerGroupOffsets ( rd_kafka_t* rk, rd_kafka_ListConsumerGroupOffsets_t** list_grpoffsets, size_t list_grpoffsets_cnt, rd_kafka_AdminOptions_t const* options, rd_kafka_queue_t* rkqu )
+rd_kafka_ListConsumerGroupOffsets_destroy ( rd_kafka_ListConsumerGroupOffsets_t* list_grpoffsets )
+rd_kafka_ListConsumerGroupOffsets_destroy_array ( rd_kafka_ListConsumerGroupOffsets_t** list_grpoffsets, size_t list_grpoffset_cnt )
+rd_kafka_ListConsumerGroupOffsets_new ( char const* group_id, rd_kafka_topic_partition_list_t const* partitions )
+rd_kafka_ListConsumerGroupOffsets_result_groups ( rd_kafka_ListConsumerGroupOffsets_result_t const* result, size_t* cntp )
+rd_kafka_ListConsumerGroups ( rd_kafka_t* rk, rd_kafka_AdminOptions_t const* options, rd_kafka_queue_t* rkqu )
+rd_kafka_ListConsumerGroups_result_errors ( rd_kafka_ListConsumerGroups_result_t const* result, size_t* cntp )
+rd_kafka_ListConsumerGroups_result_valid ( rd_kafka_ListConsumerGroups_result_t const* result, size_t* cntp )
+rd_kafka_MemberAssignment_partitions ( rd_kafka_MemberAssignment_t const* assignment )
+rd_kafka_MemberDescription_assignment ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_MemberDescription_client_id ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_MemberDescription_consumer_id ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_MemberDescription_group_instance_id ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_MemberDescription_host ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_Node_host ( rd_kafka_Node_t const* node )
+rd_kafka_Node_id ( rd_kafka_Node_t const* node )
+rd_kafka_Node_port ( rd_kafka_Node_t const* node )
+rd_kafka_sasl_set_credentials ( rd_kafka_t* rk, char const* username, char const* password )
+
+to the top
+ +

Problems with Data Types, Medium Severity  1 


+rdkafka.h
+ +[+] enum rd_kafka_admin_op_t  1  +
+ + +
+to the top
+ +

Other Changes in Data Types  4 


+rdkafka.h
+ +[+] enum rd_kafka_admin_op_t  4  +
+ + +
+to the top
+ +

Other Changes in Constants  4 


+rdkafka.h
+ +[+] RD_KAFKA_EVENT_ALTERCONSUMERGROUPOFFSETS_RESULT +
+ + + +[+] RD_KAFKA_EVENT_DESCRIBECONSUMERGROUPS_RESULT +
+ + + +[+] RD_KAFKA_EVENT_LISTCONSUMERGROUPOFFSETS_RESULT +
+ + + +[+] RD_KAFKA_EVENT_LISTCONSUMERGROUPS_RESULT +
+ + +
+to the top
+

Header Files  1 


+
+rdkafka.h
+
+
to the top
+

Libraries  1 


+
+librdkafka.so.101
+
+
to the top
+


+

Test Info


+ + + + + + +
Library Namelibrdkafka
Version #11.9.2
Version #22.0.1
Archx86_64
SubjectSource Compatibility
+

Test Results


+ + + + + + +
Total Header Files1
Total Libraries1
Total Symbols / Types336 / 134
Compatibility100%
+

Problem Summary


+ + + + + + + + + + + +
SeverityCount
Added Symbols-46
Removed SymbolsHigh0
Problems with
Data Types
High0
Medium0
Low0
Problems with
Symbols
High0
Medium0
Low0
Problems with
Constants
Low1
Other Changes
in Data Types
-5
Other Changes
in Constants
-4
+ +

Added Symbols  46 


+rdkafka.h
+rd_kafka_AdminOptions_set_match_consumer_group_states ( rd_kafka_AdminOptions_t* options, enum rd_kafka_consumer_group_state_t const* consumer_group_states, size_t consumer_group_states_cnt )
+rd_kafka_AdminOptions_set_require_stable_offsets ( rd_kafka_AdminOptions_t* options, int true_or_false )
+rd_kafka_AlterConsumerGroupOffsets ( rd_kafka_t* rk, rd_kafka_AlterConsumerGroupOffsets_t** alter_grpoffsets, size_t alter_grpoffsets_cnt, rd_kafka_AdminOptions_t const* options, rd_kafka_queue_t* rkqu )
+rd_kafka_AlterConsumerGroupOffsets_destroy ( rd_kafka_AlterConsumerGroupOffsets_t* alter_grpoffsets )
+rd_kafka_AlterConsumerGroupOffsets_destroy_array ( rd_kafka_AlterConsumerGroupOffsets_t** alter_grpoffsets, size_t alter_grpoffset_cnt )
+rd_kafka_AlterConsumerGroupOffsets_new ( char const* group_id, rd_kafka_topic_partition_list_t const* partitions )
+rd_kafka_AlterConsumerGroupOffsets_result_groups ( rd_kafka_AlterConsumerGroupOffsets_result_t const* result, size_t* cntp )
+rd_kafka_conf_set_resolve_cb ( rd_kafka_conf_t* conf, int(*resolve_cb)(char const*, char const*, struct addrinfo const*, struct addrinfo**, void*) )
+rd_kafka_consumer_group_state_code ( char const* name )
+rd_kafka_consumer_group_state_name ( enum rd_kafka_consumer_group_state_t state )
+rd_kafka_ConsumerGroupDescription_coordinator ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_error ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_group_id ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_is_simple_consumer_group ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_member ( rd_kafka_ConsumerGroupDescription_t const* grpdesc, size_t idx )
+rd_kafka_ConsumerGroupDescription_member_count ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_partition_assignor ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupDescription_state ( rd_kafka_ConsumerGroupDescription_t const* grpdesc )
+rd_kafka_ConsumerGroupListing_group_id ( rd_kafka_ConsumerGroupListing_t const* grplist )
+rd_kafka_ConsumerGroupListing_is_simple_consumer_group ( rd_kafka_ConsumerGroupListing_t const* grplist )
+rd_kafka_ConsumerGroupListing_state ( rd_kafka_ConsumerGroupListing_t const* grplist )
+rd_kafka_DescribeConsumerGroups ( rd_kafka_t* rk, char const** groups, size_t groups_cnt, rd_kafka_AdminOptions_t const* options, rd_kafka_queue_t* rkqu )
+rd_kafka_DescribeConsumerGroups_result_groups ( rd_kafka_DescribeConsumerGroups_result_t const* result, size_t* cntp )
+rd_kafka_event_AlterConsumerGroupOffsets_result ( rd_kafka_event_t* rkev )
+rd_kafka_event_DescribeConsumerGroups_result ( rd_kafka_event_t* rkev )
+rd_kafka_event_ListConsumerGroupOffsets_result ( rd_kafka_event_t* rkev )
+rd_kafka_event_ListConsumerGroups_result ( rd_kafka_event_t* rkev )
+rd_kafka_interceptor_add_on_broker_state_change ( rd_kafka_t* rk, char const* ic_name, enum rd_kafka_resp_err_t(*on_broker_state_change)(rd_kafka_t*, int32_t, char const*, char const*, int, char const*, void*), void* ic_opaque )
+rd_kafka_ListConsumerGroupOffsets ( rd_kafka_t* rk, rd_kafka_ListConsumerGroupOffsets_t** list_grpoffsets, size_t list_grpoffsets_cnt, rd_kafka_AdminOptions_t const* options, rd_kafka_queue_t* rkqu )
+rd_kafka_ListConsumerGroupOffsets_destroy ( rd_kafka_ListConsumerGroupOffsets_t* list_grpoffsets )
+rd_kafka_ListConsumerGroupOffsets_destroy_array ( rd_kafka_ListConsumerGroupOffsets_t** list_grpoffsets, size_t list_grpoffset_cnt )
+rd_kafka_ListConsumerGroupOffsets_new ( char const* group_id, rd_kafka_topic_partition_list_t const* partitions )
+rd_kafka_ListConsumerGroupOffsets_result_groups ( rd_kafka_ListConsumerGroupOffsets_result_t const* result, size_t* cntp )
+rd_kafka_ListConsumerGroups ( rd_kafka_t* rk, rd_kafka_AdminOptions_t const* options, rd_kafka_queue_t* rkqu )
+rd_kafka_ListConsumerGroups_result_errors ( rd_kafka_ListConsumerGroups_result_t const* result, size_t* cntp )
+rd_kafka_ListConsumerGroups_result_valid ( rd_kafka_ListConsumerGroups_result_t const* result, size_t* cntp )
+rd_kafka_MemberAssignment_partitions ( rd_kafka_MemberAssignment_t const* assignment )
+rd_kafka_MemberDescription_assignment ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_MemberDescription_client_id ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_MemberDescription_consumer_id ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_MemberDescription_group_instance_id ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_MemberDescription_host ( rd_kafka_MemberDescription_t const* member )
+rd_kafka_Node_host ( rd_kafka_Node_t const* node )
+rd_kafka_Node_id ( rd_kafka_Node_t const* node )
+rd_kafka_Node_port ( rd_kafka_Node_t const* node )
+rd_kafka_sasl_set_credentials ( rd_kafka_t* rk, char const* username, char const* password )
+
+to the top
+ +

Problems with Constants, Low Severity  1 


+rdkafka.h
+ +[+] RD_KAFKA_VERSION +
+ + +
+to the top
+ +

Other Changes in Data Types  5 


+rdkafka.h
+ +[+] enum rd_kafka_admin_op_t  5  +
+ + +
+to the top
+ +

Other Changes in Constants  4 


+rdkafka.h
+ +[+] RD_KAFKA_EVENT_ALTERCONSUMERGROUPOFFSETS_RESULT +
+ + + +[+] RD_KAFKA_EVENT_DESCRIBECONSUMERGROUPS_RESULT +
+ + + +[+] RD_KAFKA_EVENT_LISTCONSUMERGROUPOFFSETS_RESULT +
+ + + +[+] RD_KAFKA_EVENT_LISTCONSUMERGROUPS_RESULT +
+ + +
+to the top
+

Header Files  1 


+
+rdkafka.h
+
+
to the top
+

Libraries  1 


+
+librdkafka.so.101
+
+
to the top
+



+ +
+ + diff --git a/librdkafka-soname.patch b/librdkafka-soname.patch deleted file mode 100644 index f8fbad8..0000000 --- a/librdkafka-soname.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up ./src-cpp/Makefile.old ./src-cpp/Makefile ---- ./src-cpp/Makefile.old 2020-06-10 11:57:06.098169591 +0200 -+++ ./src-cpp/Makefile 2020-06-10 11:57:14.566135935 +0200 -@@ -1,6 +1,6 @@ - PKGNAME= librdkafka - LIBNAME= librdkafka++ --LIBVER= 1 -+LIBVER= 101 - - CXXSRCS= RdKafka.cpp ConfImpl.cpp HandleImpl.cpp \ - ConsumerImpl.cpp ProducerImpl.cpp KafkaConsumerImpl.cpp \ -diff -up ./src/Makefile.old ./src/Makefile ---- ./src/Makefile.old 2020-06-10 11:57:01.669187194 +0200 -+++ ./src/Makefile 2020-06-10 11:57:11.846146744 +0200 -@@ -1,6 +1,6 @@ - PKGNAME= librdkafka - LIBNAME= librdkafka --LIBVER= 1 -+LIBVER= 101 - - -include ../Makefile.config - diff --git a/librdkafka.spec b/librdkafka.spec index cf16f0c..ada3df6 100644 --- a/librdkafka.spec +++ b/librdkafka.spec @@ -1,36 +1,43 @@ # remirepo/fedora spec file for librdkafka # -# Copyright (c) 2015-2022 Remi Collet +# Copyright (c) 2015-2023 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # + +## TODO obsoletes librdkafka1php + +# install in /opt to avoid conflict with system library (by default) +%bcond_without move_to_opt + %global libname librdkafka -%global gh_commit 9b72ca3aa6c49f8f57eea02f70aadb1453d3ba1f +%global gh_commit 96a70a7f184b18ac4d91bd3c96b4f41b832e8d06 %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner edenhill %global gh_project %{libname} -%global oldsoname 1 -%global newsoname 101 +%global soname 1 -%global upstream_version 1.9.2 +%if %{with move_to_opt} +%global _prefix /opt/%{?vendeur:%{vendeur}/}%{libname} +%global __arch_install_post /bin/true +%endif + +%global upstream_version 2.0.1 #global upstream_prever RC4 -Name: %{libname}%{oldsoname}php +Name: %{?vendeur:%{vendeur}-}%{libname} Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} Release: 1%{?dist} Group: System Environment/Libraries Summary: Apache Kafka C/C++ client library # librdkafka is BSD-2, pycrc is MIT, snappy/crc32 are BSD-3 -License: BSD and MIT +License: BSD-2-Clause AND BSD-3-Clause AND MIT URL: https://github.com/%{gh_owner}/%{gh_project} Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{upstream_version}%{?upstream_prever}-%{gh_short}.tar.gz -# Bump soname from 1 to 101 to allow parallel installation -Patch0: %{libname}-soname.patch - BuildRequires: libstdc++-devel BuildRequires: openssl-devel BuildRequires: pkgconfig(libsasl2) @@ -65,17 +72,21 @@ and only used by PHP binaries (rdkafka extension). Group: Development/Libraries Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} -Conflicts: %{libname}-devel < %{version} -Provides: %{libname}-devel = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. +%if %{with move_to_opt} +# Filter in the /opt installation +%{?filter_from_provides: %filter_from_provides /%{libname}/d} +%{?filter_from_requires: %filter_from_requires /%{libname}/d} +%{?filter_setup} +%endif + %prep %setup -qn %{gh_project}-%{gh_commit} -%patch0 -p1 -b .bump mkdir rpmdocs cp -pr examples rpmdocs/examples @@ -117,13 +128,21 @@ rm -r %{buildroot}%{_datadir}/doc/%{libname} %files %{!?_licensedir:%global license %%doc} -%license LICENSE* -%{_libdir}/%{libname}.so.%{newsoname} -%{_libdir}/%{libname}++.so.%{newsoname} +%license LICENS* +%if %{with move_to_opt} +%dir %{_prefix} +%dir %{_libdir} +%endif +%{_libdir}/%{libname}.so.%{soname} +%{_libdir}/%{libname}++.so.%{soname} %files devel %doc *md %doc rpmdocs/examples +%if %{with move_to_opt} +%dir %{_includedir} +%dir %{_libdir}/pkgconfig +%endif %{_includedir}/%{libname}/ %{_libdir}/%{libname}.so %{_libdir}/%{libname}++.so @@ -132,6 +151,10 @@ rm -r %{buildroot}%{_datadir}/doc/%{libname} %changelog +* Thu Jan 19 2023 Remi Collet - 2.0.1-1 +- update to 2.0.1 +- rename to remi-librdkafka installed in /opt/remi/librdkafka + * Tue Aug 2 2022 Remi Collet - 1.9.2-1 - update to 1.9.2 diff --git a/librdkafka.xml b/librdkafka.xml index 10fbb06..38584bd 100644 --- a/librdkafka.xml +++ b/librdkafka.xml @@ -9,19 +9,19 @@ -1.9.2 +2.0.1 -/usr/include/librdkafka/rdkafka.h +/opt/remi/librdkafka/include/librdkafka/rdkafka.h -/usr/lib64/librdkafka.so +/opt/remi/librdkafka/lib64/librdkafka.so