* [Buildroot] [PATCH v3 2/4] package/grpc: bump to version 1.66.1
2024-10-28 2:54 [Buildroot] [PATCH v3 1/4] package/{python-}protobuf: bump to version 28.1 James Hilliard
@ 2024-10-28 2:54 ` James Hilliard
2024-10-28 2:54 ` [Buildroot] [PATCH v3 3/4] package/pkgconf: bump to version 2.3.0 James Hilliard
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: James Hilliard @ 2024-10-28 2:54 UTC (permalink / raw)
To: buildroot
Cc: Marcus Folkesson, Kamel Bouhara, Marcin Niestroj, Julien Olivain,
Asaf Kahlon, James Hilliard, Woodrow Douglass, Christian Stewart,
Robert Rose, Fabrice Fontaine
Add new -DgRPC_BUILD_CODEGEN=OFF config option which is required if
no plugins are enabled.
Drop no longer relevant add GPR_DISABLE_WRAPPED_MEMCPY patch.
Rebase remaining patches.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
.checkpackageignore | 3 +-
...the-availability-of-pthread_setname_.patch | 26 ++---
...trict-building-of-host-grpc-to-grpc.patch} | 98 ++++++++-----------
...py.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch | 34 -------
...conditionally-downloading-api-repos.patch} | 21 ++--
package/grpc/grpc.hash | 2 +-
package/grpc/grpc.mk | 3 +-
7 files changed, 68 insertions(+), 119 deletions(-)
rename package/grpc/{0003-host-grpc-only-cpp-plugin.patch => 0002-Add-option-to-restrict-building-of-host-grpc-to-grpc.patch} (63%)
delete mode 100644 package/grpc/0002-wrap_memcpy.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch
rename package/grpc/{0004-disable-unconditionally-downloading-api-repos.patch => 0003-disable-unconditionally-downloading-api-repos.patch} (62%)
diff --git a/.checkpackageignore b/.checkpackageignore
index 4788f97694..3744d003cc 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -560,8 +560,7 @@ package/gobject-introspection/0002-Add-rpath-links-to-ccompiler.patch lib_patch.
package/gpsd/S50gpsd Shellcheck lib_sysv.Indent lib_sysv.Variables
package/gptfdisk/0001-gptcurses-partially-revert-Tweaks-for-building-on-th.patch lib_patch.Upstream
package/graphite2/0001-don-t-install-a-libtool-file-with-static-library.patch lib_patch.Upstream
-package/grpc/0002-wrap_memcpy.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch lib_patch.Upstream
-package/grpc/0004-disable-unconditionally-downloading-api-repos.patch lib_patch.Upstream
+package/grpc/0003-disable-unconditionally-downloading-api-repos.patch lib_patch.Upstream
package/gstreamer1/gstd/0001-Don-t-require-gstd-check-user-xenv.sh-for-systemd-se.patch lib_patch.Upstream
package/guile/0001-calculate-csqrt_manually.patch lib_patch.Upstream
package/guile/0002-Makefile.am-fix-build-without-makeinfo.patch lib_patch.Upstream
diff --git a/package/grpc/0001-Properly-detect-the-availability-of-pthread_setname_.patch b/package/grpc/0001-Properly-detect-the-availability-of-pthread_setname_.patch
index 92dc5a6c45..e8e211758a 100644
--- a/package/grpc/0001-Properly-detect-the-availability-of-pthread_setname_.patch
+++ b/package/grpc/0001-Properly-detect-the-availability-of-pthread_setname_.patch
@@ -1,4 +1,4 @@
-From 0dfb289a3b362b082ac3608d887e42f09dadc0d2 Mon Sep 17 00:00:00 2001
+From dfec50b899c449bc964514f16e94869de7a68896 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Mon, 31 Dec 2018 16:22:07 +0100
Subject: [PATCH] Properly detect the availability of pthread_setname_np()
@@ -20,15 +20,15 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
]
Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
---
- CMakeLists.txt | 6 ++++++
- include/grpc/impl/codegen/port_platform.h | 2 ++
+ CMakeLists.txt | 6 ++++++
+ include/grpc/support/port_platform.h | 2 ++
2 files changed, 8 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 45c2fcb..0b2be4f 100644
+index 053b9e3784..2565dc5c84 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -208,6 +208,12 @@ if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)
+@@ -291,6 +291,12 @@ if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
@@ -41,11 +41,11 @@ index 45c2fcb..0b2be4f 100644
if(MSVC)
include(cmake/msvc_static_runtime.cmake)
add_definitions(-D_WIN32_WINNT=0x600 -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS)
-diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h
-index 4f213ff..55ecd9d 100644
---- a/include/grpc/impl/codegen/port_platform.h
-+++ b/include/grpc/impl/codegen/port_platform.h
-@@ -186,6 +186,7 @@
+diff --git a/include/grpc/support/port_platform.h b/include/grpc/support/port_platform.h
+index 5fb7426af2..24d438d702 100644
+--- a/include/grpc/support/port_platform.h
++++ b/include/grpc/support/port_platform.h
+@@ -228,6 +228,7 @@
#endif /* _LP64 */
#ifdef __GLIBC__
#define GPR_POSIX_CRASH_HANDLER 1
@@ -53,7 +53,7 @@ index 4f213ff..55ecd9d 100644
#ifdef __GLIBC_PREREQ
#if __GLIBC_PREREQ(2, 12)
#define GPR_LINUX_PTHREAD_NAME 1
-@@ -194,6 +195,7 @@
+@@ -236,6 +237,7 @@
// musl libc & others
#define GPR_LINUX_PTHREAD_NAME 1
#endif
@@ -61,6 +61,6 @@ index 4f213ff..55ecd9d 100644
#include <linux/version.h>
#else /* musl libc */
#define GPR_MUSL_LIBC_COMPAT 1
-
--
-2.26.63
+2.34.1
+
diff --git a/package/grpc/0003-host-grpc-only-cpp-plugin.patch b/package/grpc/0002-Add-option-to-restrict-building-of-host-grpc-to-grpc.patch
similarity index 63%
rename from package/grpc/0003-host-grpc-only-cpp-plugin.patch
rename to package/grpc/0002-Add-option-to-restrict-building-of-host-grpc-to-grpc.patch
index bfb8713053..82705d8a1e 100644
--- a/package/grpc/0003-host-grpc-only-cpp-plugin.patch
+++ b/package/grpc/0002-Add-option-to-restrict-building-of-host-grpc-to-grpc.patch
@@ -1,4 +1,4 @@
-From 0f2c73b62bdc612f9d5cdd8e0c765995470d4f8b Mon Sep 17 00:00:00 2001
+From 6aab068a6bd92e215b61eaab61062bf1d97bc065 Mon Sep 17 00:00:00 2001
From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Date: Tue, 25 May 2021 14:55:23 +0200
Subject: [PATCH] Add option to restrict building of (host-)grpc to
@@ -15,17 +15,17 @@ Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Updated for 1.48.0:
Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
---
- CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++----
- 1 file changed, 35 insertions(+), 4 deletions(-)
+ CMakeLists.txt | 36 +++++++++++++++++++++++++++++++-----
+ 1 file changed, 31 insertions(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0dcae6b1aee5..57b3963a43b0 100644
+index 2565dc5c84..94f8fd3e93 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -49,12 +49,16 @@ option(gRPC_BUILD_TESTS "Build tests" OFF)
+@@ -50,12 +50,16 @@ set(gRPC_BUILD_MSVC_MP_COUNT 0 CACHE STRING "The maximum number of processes for
+ option(gRPC_BUILD_TESTS "Build tests" OFF)
option(gRPC_BUILD_CODEGEN "Build codegen" ON)
- option(gRPC_BUILD_CSHARP_EXT "Build C# extensions" ON)
- option(gRPC_BACKWARDS_COMPATIBILITY_MODE "Build libraries that are binary compatible across a larger number of OS and libc versions" OFF)
+ option(gRPC_DOWNLOAD_ARCHIVES "Download archives for empty 3rd party directories" ON)
+option(gRPC_BUILD_PLUGIN_SUPPORT_ONLY "Build plugin support only" OFF)
set(gRPC_INSTALL_default ON)
@@ -39,7 +39,7 @@ index 0dcae6b1aee5..57b3963a43b0 100644
set(gRPC_INSTALL ${gRPC_INSTALL_default} CACHE BOOL
"Generate installation target")
-@@ -563,6 +567,8 @@ add_custom_target(plugins
+@@ -662,6 +666,8 @@ add_custom_target(plugins
DEPENDS ${_gRPC_PLUGIN_LIST}
)
@@ -48,7 +48,7 @@ index 0dcae6b1aee5..57b3963a43b0 100644
add_custom_target(tools_c
DEPENDS
)
-@@ -574,6 +580,8 @@ add_custom_target(tools_cxx
+@@ -673,6 +679,8 @@ add_custom_target(tools_cxx
add_custom_target(tools
DEPENDS tools_c tools_cxx)
@@ -57,15 +57,16 @@ index 0dcae6b1aee5..57b3963a43b0 100644
protobuf_generate_grpc_cpp_with_import_path_correction(
src/proto/grpc/channelz/channelz.proto src/proto/grpc/channelz/channelz.proto
)
-@@ -1307,6 +1315,7 @@ if(gRPC_BUILD_TESTS)
+@@ -1660,7 +1668,7 @@ if(gRPC_BUILD_TESTS)
DEPENDS buildtests_c buildtests_cxx)
endif()
+-
+if (NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
add_library(address_sorting
third_party/address_sorting/address_sorting.c
-@@ -1359,6 +1368,8 @@ if(gRPC_INSTALL)
+@@ -2855,6 +2863,8 @@ if(gRPC_INSTALL)
)
endif()
@@ -73,17 +74,17 @@ index 0dcae6b1aee5..57b3963a43b0 100644
+
if(gRPC_BUILD_TESTS)
- add_library(end2end_tests
-@@ -1512,6 +1523,8 @@ target_link_libraries(end2end_tests
+ add_library(grpc_test_util
+@@ -2987,6 +2997,8 @@ endif()
endif()
+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
- add_library(gpr
- src/core/lib/gpr/alloc.cc
- src/core/lib/gpr/atm.cc
-@@ -2504,6 +2517,8 @@ if(gRPC_INSTALL)
+ add_library(grpc_unsecure
+ src/core/channelz/channel_trace.cc
+ src/core/channelz/channelz.cc
+@@ -3547,6 +3559,8 @@ if(gRPC_INSTALL)
)
endif()
@@ -91,17 +92,17 @@ index 0dcae6b1aee5..57b3963a43b0 100644
+
if(gRPC_BUILD_TESTS)
- add_library(grpc_test_util
-@@ -2618,6 +2633,8 @@ endif()
+ add_library(gtest
+@@ -3621,6 +3635,8 @@ target_link_libraries(gtest
endif()
+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
- add_library(grpc_unsecure
- src/core/ext/filters/census/grpc_context.cc
- src/core/ext/filters/channel_idle/channel_idle_filter.cc
-@@ -3102,6 +3119,8 @@ if(gRPC_INSTALL)
+ add_library(upb_base_lib
+ third_party/upb/upb/base/status.c
+ )
+@@ -4108,6 +4124,8 @@ if(gRPC_INSTALL)
)
endif()
@@ -110,7 +111,7 @@ index 0dcae6b1aee5..57b3963a43b0 100644
if(gRPC_BUILD_TESTS)
if(gRPC_BUILD_CODEGEN)
-@@ -3185,6 +3204,8 @@ endif()
+@@ -4193,6 +4211,8 @@ endif()
endif()
@@ -119,24 +120,24 @@ index 0dcae6b1aee5..57b3963a43b0 100644
add_library(grpc++
src/core/ext/transport/binder/client/binder_connector.cc
src/core/ext/transport/binder/client/channel_create.cc
-@@ -3635,6 +3656,7 @@ if(gRPC_INSTALL)
+@@ -4684,6 +4704,7 @@ if(gRPC_INSTALL)
)
endif()
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
if(gRPC_BUILD_CODEGEN)
- add_library(grpc++_reflection
-@@ -3889,6 +3911,8 @@ target_link_libraries(grpc++_test_util
+ add_library(grpc++_reflection ${_gRPC_STATIC_WIN32}
+@@ -4967,6 +4988,8 @@ target_link_libraries(grpc++_test_util
endif()
+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
add_library(grpc++_unsecure
+ src/cpp/client/call_credentials.cc
src/cpp/client/channel_cc.cc
- src/cpp/client/client_callback.cc
-@@ -4181,6 +4205,7 @@ if(gRPC_INSTALL)
+@@ -5707,6 +5730,7 @@ if(gRPC_INSTALL)
)
endif()
@@ -144,7 +145,7 @@ index 0dcae6b1aee5..57b3963a43b0 100644
add_library(grpc_plugin_support
src/compiler/cpp_generator.cc
-@@ -4240,7 +4265,7 @@ foreach(_hdr
+@@ -5769,7 +5793,7 @@ foreach(_hdr
endforeach()
@@ -153,25 +154,7 @@ index 0dcae6b1aee5..57b3963a43b0 100644
install(TARGETS grpc_plugin_support EXPORT gRPCTargets
RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
-@@ -4324,6 +4349,8 @@ endif()
-
- endif()
-
-+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
-+
- add_library(upb
- third_party/upb/third_party/utf8_range/naive.c
- third_party/upb/third_party/utf8_range/range2-neon.c
-@@ -4393,6 +4420,8 @@ if(gRPC_INSTALL)
- )
- endif()
-
-+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
-+
-
- if(gRPC_BUILD_TESTS)
-
-@@ -11085,7 +11114,7 @@ target_link_libraries(grpc_completion_queue_test
+@@ -16520,7 +16544,7 @@ target_link_libraries(grpc_completion_queue_test
endif()
@@ -180,16 +163,16 @@ index 0dcae6b1aee5..57b3963a43b0 100644
add_executable(grpc_cpp_plugin
src/compiler/cpp_plugin.cc
-@@ -11115,7 +11144,7 @@ target_link_libraries(grpc_cpp_plugin
+@@ -16548,7 +16572,7 @@ target_link_libraries(grpc_cpp_plugin
-if(gRPC_INSTALL)
+if(gRPC_INSTALL OR gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
- install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets
+ install(TARGETS grpc_cpp_plugin EXPORT gRPCPluginTargets
RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
-@@ -23128,7 +23157,7 @@ endif()
+@@ -37968,7 +37992,7 @@ endif()
@@ -198,12 +181,13 @@ index 0dcae6b1aee5..57b3963a43b0 100644
if(gRPC_INSTALL)
install(EXPORT gRPCTargets
-@@ -23225,3 +23254,5 @@ generate_pkgconfig(
- "-lgrpc++_unsecure"
- ""
- "grpc++_unsecure.pc")
+@@ -38089,3 +38113,5 @@ generate_pkgconfig(
+ "-lgrpcpp_otel_plugin"
+ "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mem_lib -lupb_base_lib"
+ "grpcpp_otel_plugin.pc")
+
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
+\ No newline at end of file
--
-2.43.0
+2.34.1
diff --git a/package/grpc/0002-wrap_memcpy.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch b/package/grpc/0002-wrap_memcpy.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch
deleted file mode 100644
index aac92bab13..0000000000
--- a/package/grpc/0002-wrap_memcpy.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From be030314805137cd63b46ea6eaa702b608669910 Mon Sep 17 00:00:00 2001
-From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-Date: Sun, 2 Jun 2019 17:45:47 +0200
-Subject: [PATCH] wrap_memcpy.cc: add GPR_DISABLE_WRAPPED_MEMCPY
-
-Add GPR_DISABLE_WRAPPED_MEMCPY to allow the user to disable wrapped
-memcpy. This will fix build on x86_64 on musl/uclibc without changing
-the cpu behavior.
-
-Fixes:
- - http://autobuild.buildroot.org/results/20d6f2489a4e291a53bd514da66105eb607e1014
-
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-[Upstream status: https://github.com/grpc/grpc/pull/19207]
----
- src/core/lib/gpr/wrap_memcpy.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/core/lib/gpr/wrap_memcpy.cc b/src/core/lib/gpr/wrap_memcpy.cc
-index 9b8608e056..38b76acf95 100644
---- a/src/core/lib/gpr/wrap_memcpy.cc
-+++ b/src/core/lib/gpr/wrap_memcpy.cc
-@@ -29,7 +29,7 @@
- extern "C" {
- #ifdef __linux__
- #if defined(__x86_64__) && !defined(GPR_MUSL_LIBC_COMPAT) && \
-- !defined(__ANDROID__)
-+ !defined(__ANDROID__) && !defined(GPR_DISABLE_WRAPPED_MEMCPY)
- __asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
- void* __wrap_memcpy(void* destination, const void* source, size_t num) {
- return memcpy(destination, source, num);
---
-2.20.1
-
diff --git a/package/grpc/0004-disable-unconditionally-downloading-api-repos.patch b/package/grpc/0003-disable-unconditionally-downloading-api-repos.patch
similarity index 62%
rename from package/grpc/0004-disable-unconditionally-downloading-api-repos.patch
rename to package/grpc/0003-disable-unconditionally-downloading-api-repos.patch
index 967bbf6247..0cd5012b26 100644
--- a/package/grpc/0004-disable-unconditionally-downloading-api-repos.patch
+++ b/package/grpc/0003-disable-unconditionally-downloading-api-repos.patch
@@ -1,4 +1,4 @@
-From b0599c3d1b52818c79ea8fa5dfdc40a4ce01e454 Mon Sep 17 00:00:00 2001
+From 2a73f6439b6d745b2cbfff120dc7adc555400247 Mon Sep 17 00:00:00 2001
From: Michael Nosthoff <buildroot@heine.tech>
Date: Fri, 22 Jul 2022 08:49:48 +0200
Subject: [PATCH] disable unconditionally downloading api repos
@@ -9,31 +9,30 @@ for now.
See https://github.com/grpc/grpc/issues/30385
Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
-
---
CMakeLists.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 11e7ae2b67..a9062fa6ef 100644
+index 94f8fd3e93..df43d2e193 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -327,6 +327,7 @@ include(cmake/xxhash.cmake)
- include(cmake/zlib.cmake)
- include(cmake/download_archive.cmake)
+@@ -402,6 +402,7 @@ if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN)
+ include(cmake/opentelemetry-cpp.cmake)
+ endif()
+if(FALSE)
# Setup external proto library at third_party/envoy-api with 2 download URLs
- if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/envoy-api)
+ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/envoy-api AND gRPC_DOWNLOAD_ARCHIVES)
# Download the archive via HTTP, validate the checksum, and extract to third_party/envoy-api.
-@@ -403,6 +404,7 @@ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds)
- xds-cb28da3451f158a947dfc45090fe92b07b243bc1
+@@ -478,6 +479,7 @@ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds AND gRPC_DOWNLOAD_ARC
+ xds-3a472e524827f72d1ad621c4983dd5af54c46776
)
endif()
+endif()
if(WIN32)
- set(_gRPC_BASELIB_LIBRARIES ws2_32 crypt32)
+ set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} ws2_32 crypt32)
--
-2.25.1
+2.34.1
diff --git a/package/grpc/grpc.hash b/package/grpc/grpc.hash
index e6b76dcb5e..08aada1454 100644
--- a/package/grpc/grpc.hash
+++ b/package/grpc/grpc.hash
@@ -1,3 +1,3 @@
# Locally computed
-sha256 b55696fb249669744de3e71acc54a9382bea0dce7cd5ba379b356b12b82d4229 grpc-1.51.1.tar.gz
+sha256 79ed4ab72fa9589b20f8b0b76c16e353e4cfec1d773d33afad605d97b5682c61 grpc-1.66.1.tar.gz
sha256 590198e3f305f2c347fde64d637c65492bbef554db6c8364e149cd375e3797ee LICENSE
diff --git a/package/grpc/grpc.mk b/package/grpc/grpc.mk
index 9125b1f9f6..47ebf1997c 100644
--- a/package/grpc/grpc.mk
+++ b/package/grpc/grpc.mk
@@ -4,7 +4,7 @@
#
################################################################################
-GRPC_VERSION = 1.51.1
+GRPC_VERSION = 1.66.1
GRPC_SITE = $(call github,grpc,grpc,v$(GRPC_VERSION))
GRPC_LICENSE = Apache-2.0, BSD-3-Clause (third_party code), MPL-2.0 (etc/roots.pem)
GRPC_LICENSE_FILES = LICENSE
@@ -29,6 +29,7 @@ GRPC_CONF_OPTS = \
-DgRPC_RE2_PROVIDER=package \
-DgRPC_SSL_PROVIDER=package \
-DgRPC_ZLIB_PROVIDER=package \
+ -DgRPC_BUILD_CODEGEN=OFF \
-DgRPC_BUILD_GRPC_CPP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 5+ messages in thread* [Buildroot] [PATCH v3 3/4] package/pkgconf: bump to version 2.3.0
2024-10-28 2:54 [Buildroot] [PATCH v3 1/4] package/{python-}protobuf: bump to version 28.1 James Hilliard
2024-10-28 2:54 ` [Buildroot] [PATCH v3 2/4] package/grpc: bump to version 1.66.1 James Hilliard
@ 2024-10-28 2:54 ` James Hilliard
2024-10-28 2:54 ` [Buildroot] [PATCH v3 4/4] package/protobuf-c: fix protobuf >= 26.0 compatibility James Hilliard
2024-10-28 20:35 ` [Buildroot] [PATCH v3 1/4] package/{python-}protobuf: bump to version 28.1 Michael Nosthoff via buildroot
3 siblings, 0 replies; 5+ messages in thread
From: James Hilliard @ 2024-10-28 2:54 UTC (permalink / raw)
To: buildroot
Cc: Marcus Folkesson, Kamel Bouhara, Marcin Niestroj, Julien Olivain,
Asaf Kahlon, James Hilliard, Woodrow Douglass, Christian Stewart,
Robert Rose, Fabrice Fontaine
Rebase only prefix subset of variables patch.
Drop revert main assume modversion patch which is now upstream.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
.checkpackageignore | 1 -
...th-the-sysroot-a-subset-of-variables.patch | 78 ++++++++++---------
...me-modversion-insted-of-version-if-o.patch | 45 -----------
package/pkgconf/pkgconf.hash | 2 +-
package/pkgconf/pkgconf.mk | 2 +-
5 files changed, 42 insertions(+), 86 deletions(-)
delete mode 100644 package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch
diff --git a/.checkpackageignore b/.checkpackageignore
index 3744d003cc..04cddd6e50 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -1026,7 +1026,6 @@ package/pistache/0001-src-common-transport.cc-fallback-value-for-RUSAGE_TH.patch
package/pistache/0002-src-server-listener.cc-fix-libressl-build.patch lib_patch.Upstream
package/pixman/0001-Disable-tests.patch lib_patch.Upstream
package/pkgconf/0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch lib_patch.Upstream
-package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch lib_patch.Upstream
package/pkgconf/pkg-config.in Shellcheck
package/poke/0001-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch lib_patch.Upstream
package/policycoreutils/0001-Add-DESTDIR-to-all-paths-that-use-an-absolute-path.patch lib_patch.Upstream
diff --git a/package/pkgconf/0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch b/package/pkgconf/0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch
index a039d0c1bc..d25039ade2 100644
--- a/package/pkgconf/0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch
+++ b/package/pkgconf/0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch
@@ -1,4 +1,4 @@
-From 267a57022699453e8d8f517519df25ac6bf6ac4e Mon Sep 17 00:00:00 2001
+From c1f9e60f46f2207f9dd07dd290ad5a2da05ad41d Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Sun, 16 Dec 2018 11:52:18 +0100
Subject: [PATCH] Only prefix with the sysroot a subset of variables
@@ -23,19 +23,19 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[Updated to include gobject-introspection paths]
Signed-off-by: Adam Duskett <aduskett@gmail.com>
---
- libpkgconf/tuple.c | 60 ++++++++++++++++++++++++++++++++--------------
- 1 file changed, 42 insertions(+), 18 deletions(-)
+ libpkgconf/tuple.c | 65 ++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 46 insertions(+), 19 deletions(-)
diff --git a/libpkgconf/tuple.c b/libpkgconf/tuple.c
-index 8523709..7cd2fff 100644
+index 83f6a47..a2aa427 100644
--- a/libpkgconf/tuple.c
+++ b/libpkgconf/tuple.c
-@@ -161,6 +161,21 @@ dequote(const char *value)
+@@ -178,6 +178,21 @@ dequote(const char *value)
return buf;
}
+static char *
-+pkgconf_tuple_parse_sysroot(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, bool add_sysroot);
++pkgconf_tuple_parse_sysroot(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, unsigned int flags, bool add_sysroot);
+
+const char *sysrooted_keys[] = {
+ "g_ir_scanner",
@@ -49,21 +49,19 @@ index 8523709..7cd2fff 100644
+ NULL,
+};
+
- /*
- * !doc
- *
-@@ -181,6 +193,8 @@ pkgconf_tuple_add(const pkgconf_client_t *client, pkgconf_list_t *list, const ch
+ static const char *
+ find_sysroot(const pkgconf_client_t *client, pkgconf_list_t *vars)
+ {
+@@ -237,14 +252,20 @@ pkgconf_tuple_add(const pkgconf_client_t *client, pkgconf_list_t *list, const ch
{
char *dequote_value;
- pkgconf_tuple_t *tuple = calloc(sizeof(pkgconf_tuple_t), 1);
+ pkgconf_tuple_t *tuple = calloc(1, sizeof(pkgconf_tuple_t));
+ bool add_sysroot = false;
+ int i;
pkgconf_tuple_find_delete(list, key);
-@@ -188,9 +202,13 @@ pkgconf_tuple_add(const pkgconf_client_t *client, pkgconf_list_t *list, const ch
-
- PKGCONF_TRACE(client, "adding tuple to @%p: %s => %s (parsed? %d)", list, key, dequote_value, parse);
+ dequote_value = dequote(value);
+ for (i = 0; sysrooted_keys[i] != NULL; i++)
+ if (!strcmp(key, sysrooted_keys[i]))
@@ -71,77 +69,81 @@ index 8523709..7cd2fff 100644
+
tuple->key = strdup(key);
if (parse)
-- tuple->value = pkgconf_tuple_parse(client, list, dequote_value);
-+ tuple->value = pkgconf_tuple_parse_sysroot(client, list, dequote_value, add_sysroot);
+- tuple->value = pkgconf_tuple_parse(client, list, dequote_value, flags);
++ tuple->value = pkgconf_tuple_parse_sysroot(client, list, dequote_value, flags, add_sysroot);
else
tuple->value = strdup(dequote_value);
-@@ -234,27 +252,14 @@ pkgconf_tuple_find(const pkgconf_client_t *client, pkgconf_list_t *list, const c
+@@ -294,22 +315,8 @@ pkgconf_tuple_find(const pkgconf_client_t *client, pkgconf_list_t *list, const c
return NULL;
}
-/*
- * !doc
- *
-- * .. c:function:: char *pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value)
+- * .. c:function:: char *pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, unsigned int flags)
- *
- * Parse an expression for variable substitution.
- *
- * :param pkgconf_client_t* client: The pkgconf client object to access.
- * :param pkgconf_list_t* list: The variable list to search for variables (along side the global variable list).
- * :param char* value: The ``key=value`` string to parse.
+- * :param uint flags: Any flags to consider while parsing.
- * :return: the variable data with any variables substituted
- * :rtype: char *
- */
-char *
--pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value)
+-pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, unsigned int flags)
+static char *
-+pkgconf_tuple_parse_sysroot(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, bool add_sysroot)
++pkgconf_tuple_parse_sysroot(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, unsigned int flags, bool add_sysroot)
{
char buf[PKGCONF_BUFSIZE];
const char *ptr;
- char *bptr = buf;
-
-- if (*value == '/' && client->sysroot_dir != NULL && strncmp(value, client->sysroot_dir, strlen(client->sysroot_dir)))
-+ if (add_sysroot && *value == '/' && client->sysroot_dir != NULL && strncmp(value, client->sysroot_dir, strlen(client->sysroot_dir)))
- bptr += pkgconf_strlcpy(buf, client->sysroot_dir, sizeof buf);
+@@ -318,7 +325,7 @@ pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const
+ if (!(client->flags & PKGCONF_PKG_PKGF_FDO_SYSROOT_RULES) &&
+ (!(flags & PKGCONF_PKG_PROPF_UNINSTALLED) || (client->flags & PKGCONF_PKG_PKGF_PKGCONF1_SYSROOT_RULES)))
+ {
+- if (*value == '/' && client->sysroot_dir != NULL && strncmp(value, client->sysroot_dir, strlen(client->sysroot_dir)))
++ if (add_sysroot && *value == '/' && client->sysroot_dir != NULL && strncmp(value, client->sysroot_dir, strlen(client->sysroot_dir)))
+ bptr += pkgconf_strlcpy(buf, client->sysroot_dir, sizeof buf);
+ }
- for (ptr = value; *ptr != '\0' && bptr - buf < PKGCONF_BUFSIZE; ptr++)
-@@ -294,7 +299,7 @@ pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const
-
- if (kv != NULL)
+@@ -381,7 +388,7 @@ pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const
{
-- parsekv = pkgconf_tuple_parse(client, vars, kv);
-+ parsekv = pkgconf_tuple_parse_sysroot(client, vars, kv, add_sysroot);
+ size_t nlen;
+
+- parsekv = pkgconf_tuple_parse(client, vars, kv, flags);
++ parsekv = pkgconf_tuple_parse_sysroot(client, vars, kv, flags, add_sysroot);
+ nlen = pkgconf_strlcpy(bptr, parsekv, remain);
+ free(parsekv);
- strncpy(bptr, parsekv, PKGCONF_BUFSIZE - (bptr - buf));
- bptr += strlen(parsekv);
-@@ -339,6 +344,25 @@ pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const
+@@ -432,6 +439,26 @@ pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const
return strdup(buf);
}
+/*
+ * !doc
+ *
-+ * .. c:function:: char *pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value)
++ * .. c:function:: char *pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, unsigned int flags)
+ *
+ * Parse an expression for variable substitution.
+ *
+ * :param pkgconf_client_t* client: The pkgconf client object to access.
+ * :param pkgconf_list_t* list: The variable list to search for variables (along side the global variable list).
+ * :param char* value: The ``key=value`` string to parse.
++ * :param uint flags: Any flags to consider while parsing.
+ * :return: the variable data with any variables substituted
+ * :rtype: char *
+ */
+char *
-+pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value)
++pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, unsigned int flags)
+{
-+ return pkgconf_tuple_parse_sysroot(client, vars, value, true);
++ return pkgconf_tuple_parse_sysroot(client, vars, value, flags, true);
+}
+
/*
* !doc
*
--
-2.19.2
+2.34.1
diff --git a/package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch b/package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch
deleted file mode 100644
index f659a3b07f..0000000000
--- a/package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 4ccef40918a539905a2951bfb81cf8dba4a245c6 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
-Date: Wed, 2 Jan 2019 18:15:50 +0100
-Subject: [PATCH] Revert "main: assume --modversion insted of --version if
- other flags or module names are provided"
-
-This reverts commit 12a0eb124cea85586e57f33c91a1e4c73459eef6, as it
-causes pkg-config to assume --modversion is used when something as
-simple as 'pkg-config --static --version' is used, leading to a
-failure instead of the expected behavior: the one of "pkg-config
---version".
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
----
- cli/main.c | 14 ++------------
- 1 file changed, 2 insertions(+), 12 deletions(-)
-
-diff --git a/cli/main.c b/cli/main.c
-index b52cc85..c5acc10 100644
---- a/cli/main.c
-+++ b/cli/main.c
-@@ -1002,18 +1002,8 @@ main(int argc, char *argv[])
-
- if ((want_flags & PKG_VERSION) == PKG_VERSION)
- {
-- if (argc > 2)
-- {
-- fprintf(stderr, "%s: --version specified with other options or module names, assuming --modversion.\n", argv[0]);
--
-- want_flags &= ~PKG_VERSION;
-- want_flags |= PKG_MODVERSION;
-- }
-- else
-- {
-- version();
-- return EXIT_SUCCESS;
-- }
-+ version();
-+ return EXIT_SUCCESS;
- }
-
- if ((want_flags & PKG_HELP) == PKG_HELP)
---
-2.20.1
-
diff --git a/package/pkgconf/pkgconf.hash b/package/pkgconf/pkgconf.hash
index f210869c03..6d4b7972d6 100644
--- a/package/pkgconf/pkgconf.hash
+++ b/package/pkgconf/pkgconf.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210 pkgconf-1.6.3.tar.xz
+sha256 3a9080ac51d03615e7c1910a0a2a8df08424892b5f13b0628a204d3fcce0ea8b pkgconf-2.3.0.tar.xz
sha256 07ee94b50a41ee3fc4e13a9b9c60b26fc28488494c465639f7e5f07a3952ec04 COPYING
diff --git a/package/pkgconf/pkgconf.mk b/package/pkgconf/pkgconf.mk
index a8c7b48287..057f43bb98 100644
--- a/package/pkgconf/pkgconf.mk
+++ b/package/pkgconf/pkgconf.mk
@@ -4,7 +4,7 @@
#
################################################################################
-PKGCONF_VERSION = 1.6.3
+PKGCONF_VERSION = 2.3.0
PKGCONF_SITE = https://distfiles.ariadne.space/pkgconf
PKGCONF_SOURCE = pkgconf-$(PKGCONF_VERSION).tar.xz
PKGCONF_LICENSE = pkgconf license
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 5+ messages in thread* [Buildroot] [PATCH v3 4/4] package/protobuf-c: fix protobuf >= 26.0 compatibility
2024-10-28 2:54 [Buildroot] [PATCH v3 1/4] package/{python-}protobuf: bump to version 28.1 James Hilliard
2024-10-28 2:54 ` [Buildroot] [PATCH v3 2/4] package/grpc: bump to version 1.66.1 James Hilliard
2024-10-28 2:54 ` [Buildroot] [PATCH v3 3/4] package/pkgconf: bump to version 2.3.0 James Hilliard
@ 2024-10-28 2:54 ` James Hilliard
2024-10-28 20:35 ` [Buildroot] [PATCH v3 1/4] package/{python-}protobuf: bump to version 28.1 Michael Nosthoff via buildroot
3 siblings, 0 replies; 5+ messages in thread
From: James Hilliard @ 2024-10-28 2:54 UTC (permalink / raw)
To: buildroot
Cc: Marcus Folkesson, Kamel Bouhara, Marcin Niestroj, Julien Olivain,
Asaf Kahlon, James Hilliard, Woodrow Douglass, Christian Stewart,
Robert Rose, Fabrice Fontaine
Add some patches fixing protobuf >= 26.0 compatibility.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
...ct-against-being-invoked-against-edi.patch | 57 +++++++++++++
...dSyntax-to-maximize-compatibility-ac.patch | 84 +++++++++++++++++++
| 44 ++++++++++
3 files changed, 185 insertions(+)
create mode 100644 package/protobuf-c/0001-CGenerator-Protect-against-being-invoked-against-edi.patch
create mode 100644 package/protobuf-c/0002-Reimplement-FieldSyntax-to-maximize-compatibility-ac.patch
create mode 100644 package/protobuf-c/0003-FileGenerator-GenerateHeader-Set-min_header_version-.patch
diff --git a/package/protobuf-c/0001-CGenerator-Protect-against-being-invoked-against-edi.patch b/package/protobuf-c/0001-CGenerator-Protect-against-being-invoked-against-edi.patch
new file mode 100644
index 0000000000..c674ca2ee1
--- /dev/null
+++ b/package/protobuf-c/0001-CGenerator-Protect-against-being-invoked-against-edi.patch
@@ -0,0 +1,57 @@
+From 2480f4d9d2fa97e5511ed0914ee529a344e969a7 Mon Sep 17 00:00:00 2001
+From: Robert Edmonds <edmonds@users.noreply.github.com>
+Date: Wed, 20 Mar 2024 22:43:30 -0400
+Subject: [PATCH] CGenerator: Protect against being invoked against "edition"
+ syntax .proto files
+
+The Google protobuf project is currently experimenting with a new syntax
+for .proto files called "editions". Since protobuf-c is a proto2/proto3
+compiler, after the previous commit reimplementing `FieldSyntax()`, the
+protobuf compiler will abort like this if presented with an "editions"
+syntax .proto file due to the safety check in `FieldSyntax()`:
+
+ $ protoc --experimental_editions --c_out=. test.proto
+ protoc-gen-c: ./protoc-c/c_helpers.h:178: int google::protobuf::compiler::c::FieldSyntax(const google::protobuf::FieldDescriptor*): Assertion `syntax == "proto2" || syntax == "proto3"' failed.
+ --c_out: protoc-gen-c: Plugin killed by signal 6.
+
+On protobuf 26, our `CodeGenerator` can implement certain methods to
+declare that we "support" editions, and then reject any other edition
+except proto2 and proto3, which have apparently been retroactively
+declared to be "editions". Of course this needs to be wrapped in a
+version guard.
+
+With this protection in place, the protobuf compiler cleanly exits with
+a nice error message like this:
+
+ $ protoc --experimental_editions --c_out=. test.proto
+ WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
+ E0000 00:00:1710988958.296200 20022 descriptor.cc:4620] Invalid proto descriptor for file "test.proto":
+ E0000 00:00:1710988958.296239 20022 descriptor.cc:4623] test.proto: Edition 2023 is later than the maximum supported edition PROTO3
+ --c_out: protoc-gen-c: Plugin failed with status code 1.
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+Upstream: https://github.com/protobuf-c/protobuf-c/pull/711
+---
+ protoc-c/c_generator.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/protoc-c/c_generator.h b/protoc-c/c_generator.h
+index b8b44aa..4aeb579 100644
+--- a/protoc-c/c_generator.h
++++ b/protoc-c/c_generator.h
+@@ -93,6 +93,12 @@ class PROTOC_C_EXPORT CGenerator : public CodeGenerator {
+ const std::string& parameter,
+ OutputDirectory* output_directory,
+ std::string* error) const;
++
++#if GOOGLE_PROTOBUF_VERSION >= 5026000
++ uint64_t GetSupportedFeatures() const { return CodeGenerator::FEATURE_SUPPORTS_EDITIONS; }
++ Edition GetMinimumEdition() const { return Edition::EDITION_PROTO2; }
++ Edition GetMaximumEdition() const { return Edition::EDITION_PROTO3; }
++#endif
+ };
+
+ } // namespace c
+--
+2.34.1
+
diff --git a/package/protobuf-c/0002-Reimplement-FieldSyntax-to-maximize-compatibility-ac.patch b/package/protobuf-c/0002-Reimplement-FieldSyntax-to-maximize-compatibility-ac.patch
new file mode 100644
index 0000000000..e14a9fbc75
--- /dev/null
+++ b/package/protobuf-c/0002-Reimplement-FieldSyntax-to-maximize-compatibility-ac.patch
@@ -0,0 +1,84 @@
+From ee3d9e5423c93ee6b828fdda8e7fef13a77634eb Mon Sep 17 00:00:00 2001
+From: Robert Edmonds <edmonds@users.noreply.github.com>
+Date: Wed, 20 Mar 2024 22:25:54 -0400
+Subject: [PATCH] Reimplement FieldSyntax() to maximize compatibility across
+ protobuf versions
+
+Recent versions of Google protobuf have broken the interfaces for
+determining the syntax version of a .proto file. The current protobuf-c
+1.5.0 release does not compile with Google protobuf 26.0 due to the most
+recentage breakage. There is a possible workaround involving the Google
+protobuf `FileDescriptorLegacy` class, which is documented as:
+
+// TODO Remove this deprecated API entirely.
+
+So we probably shouldn't rely on it.
+
+Instead, this commit obtains the `FileDescriptorProto` corresponding
+to the passed in `FieldDescriptor` and interrogates the `syntax` field
+directly. This is a single implementation with no version-specific
+workarounds. Hopefully this won't break in the next Google protobuf
+release.
+
+I tested the `FieldSyntax()` implementation in this commit across a
+number of different Google protobuf releases and found that it worked
+(`make && make check`) on all of them:
+
+- Google protobuf 3.6.1.3 (Ubuntu 20.04)
+- Google protobuf 3.12.4 (Ubuntu 22.04)
+- Google protobuf 3.21.12 (Debian 12 + Debian unstable)
+- Google protobuf 3.25.2 (Debian experimental)
+- Google protobuf 26.1-dev
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+Upstream: https://github.com/protobuf-c/protobuf-c/pull/711
+---
+ protoc-c/c_helpers.h | 24 ++++++++++++++----------
+ 1 file changed, 14 insertions(+), 10 deletions(-)
+
+diff --git a/protoc-c/c_helpers.h b/protoc-c/c_helpers.h
+index 062d330..be28b60 100644
+--- a/protoc-c/c_helpers.h
++++ b/protoc-c/c_helpers.h
+@@ -70,10 +70,6 @@
+ #include <protobuf-c/protobuf-c.pb.h>
+ #include <google/protobuf/io/printer.h>
+
+-#if GOOGLE_PROTOBUF_VERSION >= 4023000
+-# include <google/protobuf/descriptor_legacy.h>
+-#endif
+-
+ namespace google {
+ namespace protobuf {
+ namespace compiler {
+@@ -173,13 +169,21 @@ struct NameIndex
+ int compare_name_indices_by_name(const void*, const void*);
+
+ // Return the syntax version of the file containing the field.
+-// This wrapper is needed to be able to compile against protobuf2.
+ inline int FieldSyntax(const FieldDescriptor* field) {
+-#if GOOGLE_PROTOBUF_VERSION >= 4023000
+- return FileDescriptorLegacy(field->file()).syntax() == FileDescriptorLegacy::SYNTAX_PROTO3 ? 3 : 2;
+-#else
+- return field->file()->syntax() == FileDescriptor::SYNTAX_PROTO3 ? 3 : 2;
+-#endif
++ auto proto = FileDescriptorProto();
++ field->file()->CopyTo(&proto);
++
++ if (proto.has_syntax()) {
++ auto syntax = proto.syntax();
++ assert(syntax == "proto2" || syntax == "proto3");
++ if (syntax == "proto2") {
++ return 2;
++ } else if (syntax == "proto3") {
++ return 3;
++ }
++ }
++
++ return 2;
+ }
+
+ // Work around changes in protobuf >= 22.x without breaking compilation against
+--
+2.34.1
+
--git a/package/protobuf-c/0003-FileGenerator-GenerateHeader-Set-min_header_version-.patch b/package/protobuf-c/0003-FileGenerator-GenerateHeader-Set-min_header_version-.patch
new file mode 100644
index 0000000000..d7d9cdf845
--- /dev/null
+++ b/package/protobuf-c/0003-FileGenerator-GenerateHeader-Set-min_header_version-.patch
@@ -0,0 +1,44 @@
+From a6cf1aa386067e26d582cc1d1e327787595c9f13 Mon Sep 17 00:00:00 2001
+From: Robert Edmonds <edmonds@users.noreply.github.com>
+Date: Wed, 20 Mar 2024 21:48:10 -0400
+Subject: [PATCH] FileGenerator::GenerateHeader(): Set `min_header_version`
+ unconditionally
+
+Previously, we were conditionally trying to set `min_header_version` to
+the lowest possible value, and relying on a "legacy" Google interface to
+determine the file descriptor's syntax version as part of that
+determination.
+
+Instead, simply bump the minimum version to 1003000 (1.3.0). This
+release was almost 7 years ago. In practice protobuf-c users should not
+be shipping pre-compiled .pb-c.c/.pb-c.h files, anyway.
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+Upstream: https://github.com/protobuf-c/protobuf-c/pull/711
+---
+ protoc-c/c_file.cc | 9 +--------
+ 1 file changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/protoc-c/c_file.cc b/protoc-c/c_file.cc
+index ca0ad34..c6d8a24 100644
+--- a/protoc-c/c_file.cc
++++ b/protoc-c/c_file.cc
+@@ -117,14 +117,7 @@ FileGenerator::~FileGenerator() {}
+ void FileGenerator::GenerateHeader(io::Printer* printer) {
+ std::string filename_identifier = FilenameIdentifier(file_->name());
+
+- int min_header_version = 1000000;
+-#if GOOGLE_PROTOBUF_VERSION >= 4023000
+- if (FileDescriptorLegacy(file_).syntax() == FileDescriptorLegacy::SYNTAX_PROTO3) {
+-#else
+- if (file_->syntax() == FileDescriptor::SYNTAX_PROTO3) {
+-#endif
+- min_header_version = 1003000;
+- }
++ const int min_header_version = 1003000;
+
+ // Generate top of header.
+ printer->Print(
+--
+2.34.1
+
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [Buildroot] [PATCH v3 1/4] package/{python-}protobuf: bump to version 28.1
2024-10-28 2:54 [Buildroot] [PATCH v3 1/4] package/{python-}protobuf: bump to version 28.1 James Hilliard
` (2 preceding siblings ...)
2024-10-28 2:54 ` [Buildroot] [PATCH v3 4/4] package/protobuf-c: fix protobuf >= 26.0 compatibility James Hilliard
@ 2024-10-28 20:35 ` Michael Nosthoff via buildroot
3 siblings, 0 replies; 5+ messages in thread
From: Michael Nosthoff via buildroot @ 2024-10-28 20:35 UTC (permalink / raw)
To: James Hilliard
Cc: Marcus Folkesson, Kamel Bouhara, buildroot, Marcin Niestroj,
Asaf Kahlon, Julien Olivain, Woodrow Douglass, Christian Stewart,
Robert Rose, Fabrice Fontaine
Hi James,
On Monday, October 28, 2024 03:54 CET, James Hilliard <james.hilliard1@gmail.com> wrote:
> Migrate protobuf build from autotools to cmake.
>
> Migrate protobuf-python to use pypi sources which are now required
> for setup.py builds:
> https://github.com/protocolbuffers/protobuf/tree/v28.1/python#building-from-setuppy
>
> Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> ---
with this series I can now build protobuf-c successfully.
The packages I now see issues with are mosh and collectd.
For mosh the error message is:
119 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer.");
this is already addressed upstream: https://github.com/mobile-shell/mosh/commit/eee1a8cf413051c2a9104e8158e699028ff56b26
So we could cherry pick this patch (which raises the required C++ Version to 17) or could alter the package to build in C++14 mode...
For collectd it does find grpc but for some reason fails to find the correct protoc version:
checking for protobuf... yes
checking for main in -lprotobuf... yes
checking for google/protobuf/util/time_util.h... yes
checking for protoc... /build/buildroot/output/host/bin/protoc
checking for protoc 3.0.0+... no (libprotoc 28.1)
checking for libprotobuf-c... yes
checking for protobuf_c_message_pack in -lprotobuf-c... yes
checking for protobuf-c/protobuf-c.h... yes
checking for protoc-c... /build/buildroot/output/host/bin/protoc-c
....
grpc . . . . . . . . no (protoc3 not found) (dependency error)
not sure what is going wrong there.
this is what I found in a short compile test...
used defconfig:
BR2_arm=y
BR2_cortex_a15=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_OLA=y
BR2_PACKAGE_USBGUARD=y
BR2_PACKAGE_COLLECTD=y
BR2_PACKAGE_COLLECTD_GRPC=y
BR2_PACKAGE_KISMET=y
BR2_PACKAGE_MOSH=y
BR2_PACKAGE_CRIU=y
Regards,
Michael
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread