File: Add-enable-nanopb-ext-option-to-build-with-an-external-na.patch

package info (click to toggle)
librdkafka 2.12.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,792 kB
  • sloc: ansic: 146,324; cpp: 13,007; sh: 3,988; python: 2,470; makefile: 590; java: 181
file content (102 lines) | stat: -rw-r--r-- 3,679 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
From: Faidon Liambotis <paravoid@debian.org>
Date: Wed, 3 Sep 2025 18:27:04 +0300
Subject: Add --enable-nanopb-ext option to build with an external nanopb

Bug: https://github.com/confluentinc/librdkafka/issues/5186
---
 configure.self                 | 9 +++++++++
 src/Makefile                   | 5 ++++-
 src/rdkafka_telemetry.c        | 2 +-
 src/rdkafka_telemetry_decode.c | 2 +-
 src/rdkafka_telemetry_encode.c | 2 +-
 5 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/configure.self b/configure.self
index 45c7bdb..05ef948 100644
--- a/configure.self
+++ b/configure.self
@@ -41,6 +41,8 @@ mkl_toggle_option "Feature" ENABLE_REGEX_EXT "--enable-regex-ext" "Enable extern
 
 mkl_toggle_option "Feature" ENABLE_CJSON_EXT "--enable-cjson-ext" "Enable external cJSON (else use builtin)" "y"
 
+mkl_toggle_option "Feature" ENABLE_NANOPB_EXT "--enable-nanopb-ext" "Enable external Nanopb (else use builtin)" "y"
+
 # librdkafka with TSAN won't work with glibc C11 threads on Ubuntu 19.04.
 # This option allows disabling libc-based C11 threads and instead
 # use the builtin tinycthread alternative.
@@ -128,6 +130,13 @@ void foo (void) {
                       "#include <cJSON.h>"
     fi
 
+    # Use builtin nanopb if linking statically or if --disable-nanopb-ext is used.
+    if [[ $MKL_SOURCE_DEPS_ONLY != y ]] && [[ $WITH_STATIC_LINKING != y ]] && [[ $ENABLE_NANOPB_EXT == y ]]; then
+        mkl_meta_set "libnanopb" "static" "libprotobuf-nanopb.a"
+        mkl_lib_check "libnanopb" "WITH_NANOPB_EXT" disable CC "-lprotobuf-nanopb" \
+                      "#include <nanopb/pb.h>"
+    fi
+
     if [[ $ENABLE_SYSLOG == y ]]; then
         mkl_compile_check "syslog" "WITH_SYSLOG" disable CC "" \
                           '
diff --git a/src/Makefile b/src/Makefile
index 6838516..5ad4a4f 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -37,6 +37,10 @@ ifneq ($(WITH_CJSON_EXT), y)
 SRCS_y += cJSON.c
 endif
 
+ifneq ($(WITH_NANOPB_EXT), y)
+SRCS_y += nanopb/pb_encode.c nanopb/pb_decode.c nanopb/pb_common.c
+endif
+
 ifneq ($(HAVE_REGEX), y)
 SRCS_y += regexp.c
 endif
@@ -64,7 +68,6 @@ SRCS=		rdkafka.c rdkafka_broker.c rdkafka_msg.c rdkafka_topic.c \
 		rdkafka_mock.c rdkafka_mock_handlers.c rdkafka_mock_cgrp.c \
 		rdkafka_error.c rdkafka_fetcher.c rdkafka_telemetry.c \
 		rdkafka_telemetry_encode.c rdkafka_telemetry_decode.c \
-		nanopb/pb_encode.c nanopb/pb_decode.c nanopb/pb_common.c \
 		opentelemetry/metrics.pb.c opentelemetry/common.pb.c opentelemetry/resource.pb.c \
 		$(SRCS_y)
 
diff --git a/src/rdkafka_telemetry.c b/src/rdkafka_telemetry.c
index b76effa..cad88e9 100644
--- a/src/rdkafka_telemetry.c
+++ b/src/rdkafka_telemetry.c
@@ -30,7 +30,7 @@
 #include "rdkafka_msgset.h"
 #include "rdkafka_telemetry_encode.h"
 #include "rdkafka_request.h"
-#include "nanopb/pb.h"
+#include <nanopb/pb.h>
 #include "rdkafka_lz4.h"
 #include "snappy.h"
 #include "rdunittest.h"
diff --git a/src/rdkafka_telemetry_decode.c b/src/rdkafka_telemetry_decode.c
index 452e43c..fedd61f 100644
--- a/src/rdkafka_telemetry_decode.c
+++ b/src/rdkafka_telemetry_decode.c
@@ -27,7 +27,7 @@
  */
 
 #include "rdkafka_telemetry_decode.h"
-#include "nanopb/pb_decode.h"
+#include <nanopb/pb_decode.h>
 #include "rdunittest.h"
 #include "rdkafka_lz4.h"
 #include "rdgz.h"
diff --git a/src/rdkafka_telemetry_encode.c b/src/rdkafka_telemetry_encode.c
index da1a341..ff8b8df 100644
--- a/src/rdkafka_telemetry_encode.c
+++ b/src/rdkafka_telemetry_encode.c
@@ -27,7 +27,7 @@
  */
 
 #include "rdkafka_telemetry_encode.h"
-#include "nanopb/pb_encode.h"
+#include <nanopb/pb_encode.h>
 #include "opentelemetry/metrics.pb.h"
 
 #define THREE_ORDERS_MAGNITUDE 1000