From 8b3cc547b729c07eb14d3f88bcfe2b1620a6cc68 Mon Sep 17 00:00:00 2001 From: Clément Péron Date: Wed, 27 Sep 2023 10:42:37 +0200 Subject: devtools: grpc: bump to 1.56.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove merged patch that export plugin to a separate targets Remove no more applicatable patch Remove CVE patch already present Signed-off-by: Clément Péron Signed-off-by: Khem Raj --- ...ged-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch | 62 --------------- ...ke-add-separate-export-for-plugin-targets.patch | 93 ---------------------- .../grpc/grpc/0001-fix-CVE-2023-32732.patch | 81 ------------------- meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb | 70 ---------------- meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb | 67 ++++++++++++++++ 5 files changed, 67 insertions(+), 306 deletions(-) delete mode 100644 meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch delete mode 100644 meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch delete mode 100644 meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch delete mode 100644 meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb create mode 100644 meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch deleted file mode 100644 index b245ad8657..0000000000 --- a/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch +++ /dev/null @@ -1,62 +0,0 @@ -From dc593958e556dd496b774f35c5992285510d6859 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Tue, 19 Oct 2021 17:09:55 +0200 -Subject: [PATCH] Revert "Changed GRPCPP_ABSEIL_SYNC to GPR_ABSEIL_SYNC - (#25681)" - -This reverts commit 931f91b745cd5b2864a0d1787815871d0bd844ae. - -Fixes sysdig from meta-oe and other recipes (like com.webos.service.tts -libgoogleassistant from meta-webosose) failing with: - -| FAILED: userspace/sysdig/sysdig -| : && /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-sec -urity --sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -f -debug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/bu -ild/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/OE/build -/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -Wall -ggdb -std=c++0x -O3 -fno-strict-aliasing -DNDEBUG -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security ---sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-p -refix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe- -core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/OE/build/oe-cor -e/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-cor -e/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2- -64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/ -oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/ -core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -rdynamic userspace/sysdig/CMakeFiles/sysdig.dir/fields_info.cpp.o userspace/sysdig/CMakeFiles/sysdig.dir/sysdig.cpp.o -o userspace/sysdig/sysdig userspace/libsinsp/libsinsp.a userspace/libscap/libscap.a - -lelf -lz -lcurl -ljsoncpp -ltbb -lcares -lgrpc++_unsecure -lgrpc_unsecure -lprotobuf -lcares -lgrpc++_unsecure -lgrpc_unsecure -lprotobuf -ljq -lb64 -lrt -lanl -lssl -lcrypto -lluajit-5.1 -ldl -lpthread && : -| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()' -| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()' -| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()' -| /usr/include/grpcpp/impl/codegen/completion_queue.h:259: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()' -| collect2: error: ld returned 1 exit status - -Signed-off-by: Martin Jansa - ---- -Upstream-Status: Pending - - include/grpcpp/impl/codegen/sync.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/grpcpp/impl/codegen/sync.h b/include/grpcpp/impl/codegen/sync.h -index 4cb8133c7c..3d10d9a3a0 100644 ---- a/include/grpcpp/impl/codegen/sync.h -+++ b/include/grpcpp/impl/codegen/sync.h -@@ -47,7 +47,7 @@ - namespace grpc { - namespace internal { - --#ifdef GPR_ABSEIL_SYNC -+#ifdef GRPCPP_ABSEIL_SYNC - - using Mutex = absl::Mutex; - using MutexLock = absl::MutexLock; -@@ -142,7 +142,7 @@ class CondVar { - gpr_cv cv_; - }; - --#endif // GPR_ABSEIL_SYNC -+#endif // GRPCPP_ABSEIL_SYNC - - template - GRPC_DEPRECATED("incompatible with thread safety analysis") diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch deleted file mode 100644 index 679bd38829..0000000000 --- a/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 3150cb043363e05588062dd392b940be25594713 Mon Sep 17 00:00:00 2001 -From: Stefan Herbrechtsmeier -Date: Tue, 18 Feb 2020 14:17:07 +0100 -Subject: [PATCH] cmake: add separate export for plugin targets - -Upstream-Status: Submitted [https://github.com/grpc/grpc/pull/29328] - - ---- - CMakeLists.txt | 18 +++++++++++------- - 1 file changed, 11 insertions(+), 7 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index efdaf8936d..6608b1b00c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -10935,7 +10935,7 @@ target_link_libraries(grpc_cpp_plugin - - - if(gRPC_INSTALL) -- install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets -+ install(TARGETS grpc_cpp_plugin EXPORT gRPCPluginTargets - RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} - BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} - LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} -@@ -10975,7 +10975,7 @@ target_link_libraries(grpc_csharp_plugin - - - if(gRPC_INSTALL) -- install(TARGETS grpc_csharp_plugin EXPORT gRPCTargets -+ install(TARGETS grpc_csharp_plugin EXPORT gRPCPluginTargets - RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} - BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} - LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} -@@ -11015,7 +11015,7 @@ target_link_libraries(grpc_node_plugin - - - if(gRPC_INSTALL) -- install(TARGETS grpc_node_plugin EXPORT gRPCTargets -+ install(TARGETS grpc_node_plugin EXPORT gRPCPluginTargets - RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} - BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} - LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} -@@ -11055,7 +11055,7 @@ target_link_libraries(grpc_objective_c_plugin - - - if(gRPC_INSTALL) -- install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets -+ install(TARGETS grpc_objective_c_plugin EXPORT gRPCPluginTargets - RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} - BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} - LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} -@@ -11095,7 +11095,7 @@ target_link_libraries(grpc_php_plugin - - - if(gRPC_INSTALL) -- install(TARGETS grpc_php_plugin EXPORT gRPCTargets -+ install(TARGETS grpc_php_plugin EXPORT gRPCPluginTargets - RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} - BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} - LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} -@@ -11135,7 +11135,7 @@ target_link_libraries(grpc_python_plugin - - - if(gRPC_INSTALL) -- install(TARGETS grpc_python_plugin EXPORT gRPCTargets -+ install(TARGETS grpc_python_plugin EXPORT gRPCPluginTargets - RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} - BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} - LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} -@@ -11175,7 +11175,7 @@ target_link_libraries(grpc_ruby_plugin - - - if(gRPC_INSTALL) -- install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets -+ install(TARGETS grpc_ruby_plugin EXPORT gRPCPluginTargets - RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} - BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} - LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} -@@ -17349,6 +17349,10 @@ if(gRPC_INSTALL) - DESTINATION ${gRPC_INSTALL_CMAKEDIR} - NAMESPACE gRPC:: - ) -+ install(EXPORT gRPCPluginTargets -+ DESTINATION ${gRPC_INSTALL_CMAKEDIR} -+ NAMESPACE gRPC:: -+ ) - endif() - - include(CMakePackageConfigHelpers) --- -2.30.2 - diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch deleted file mode 100644 index ab46897b12..0000000000 --- a/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch +++ /dev/null @@ -1,81 +0,0 @@ -From d39489045b5aa73e27713e3cbacb8832c1140ec8 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Wed, 9 Aug 2023 13:33:45 +0800 -Subject: [PATCH] fix CVE-2023-32732 - -CVE: CVE-2023-32732 - -Upstream-Status: Backport [https://github.com/grpc/grpc/pull/32309/commits/6a7850ef4f042ac26559854266dddc79bfbc75b2] -The original patch is adjusted to fit the current 1.50.1 version. - -Signed-off-by: Chen Qi ---- - .../ext/transport/chttp2/transport/hpack_parser.cc | 10 +++++++--- - src/core/ext/transport/chttp2/transport/internal.h | 2 -- - src/core/ext/transport/chttp2/transport/parsing.cc | 6 ++---- - 3 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.cc b/src/core/ext/transport/chttp2/transport/hpack_parser.cc -index f2e49022dc3..cd459d15238 100644 ---- a/src/core/ext/transport/chttp2/transport/hpack_parser.cc -+++ b/src/core/ext/transport/chttp2/transport/hpack_parser.cc -@@ -1211,12 +1211,16 @@ class HPackParser::Parser { - "). GRPC_ARG_MAX_METADATA_SIZE can be set to increase this limit.", - *frame_length_, metadata_size_limit_); - if (metadata_buffer_ != nullptr) metadata_buffer_->Clear(); -+ // StreamId is used as a signal to skip this stream but keep the connection -+ // alive - return input_->MaybeSetErrorAndReturn( - [] { - return grpc_error_set_int( -- GRPC_ERROR_CREATE_FROM_STATIC_STRING( -- "received initial metadata size exceeds limit"), -- GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED); -+ grpc_error_set_int( -+ GRPC_ERROR_CREATE_FROM_STATIC_STRING( -+ "received initial metadata size exceeds limit"), -+ GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED), -+ GRPC_ERROR_INT_STREAM_ID, 0); - }, - false); - } -diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h -index 4a2f4261d83..f8b544d9583 100644 ---- a/src/core/ext/transport/chttp2/transport/internal.h -+++ b/src/core/ext/transport/chttp2/transport/internal.h -@@ -542,8 +542,6 @@ struct grpc_chttp2_stream { - - grpc_core::Timestamp deadline = grpc_core::Timestamp::InfFuture(); - -- /** saw some stream level error */ -- grpc_error_handle forced_close_error = GRPC_ERROR_NONE; - /** how many header frames have we received? */ - uint8_t header_frames_received = 0; - /** number of bytes received - reset at end of parse thread execution */ -diff --git a/src/core/ext/transport/chttp2/transport/parsing.cc b/src/core/ext/transport/chttp2/transport/parsing.cc -index 980f13543f6..afe6da190b6 100644 ---- a/src/core/ext/transport/chttp2/transport/parsing.cc -+++ b/src/core/ext/transport/chttp2/transport/parsing.cc -@@ -22,6 +22,7 @@ - #include - - #include -+#include - - #include "absl/base/attributes.h" - #include "absl/status/status.h" -@@ -719,10 +720,7 @@ static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t, - } - grpc_chttp2_parsing_become_skip_parser(t); - if (s) { -- s->forced_close_error = err; -- grpc_chttp2_add_rst_stream_to_next_write(t, t->incoming_stream_id, -- GRPC_HTTP2_PROTOCOL_ERROR, -- &s->stats.outgoing); -+ grpc_chttp2_cancel_stream(t, s, std::exchange(err, absl::OkStatus())); - } else { - GRPC_ERROR_UNREF(err); - } --- -2.34.1 - diff --git a/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb b/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb deleted file mode 100644 index 45bfcb8570..0000000000 --- a/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb +++ /dev/null @@ -1,70 +0,0 @@ -DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \ -Provides gRPC libraries for multiple languages written on top of shared C core library \ -(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)" -HOMEPAGE = "https://github.com/grpc/grpc" -SECTION = "libs" -LICENSE = "Apache-2.0 & BSD-3-Clause & MPL-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=731e401b36f8077ae0c134b59be5c906" - -DEPENDS = "c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl libnsl2 abseil-cpp re2" -DEPENDS:append:class-target = " googletest grpc-native " -DEPENDS:append:class-nativesdk = " grpc-native " - -PACKAGE_BEFORE_PN = "${PN}-compiler" - -RDEPENDS:${PN}-compiler = "${PN}" -RDEPENDS:${PN}-dev:append:class-native = " ${PN}-compiler" -# Configuration above allows to cross-compile gRPC applications -# In order to compile applications on the target, use the dependency below -# Both dependencies are mutually exclusive -# RDEPENDS:${PN}-dev += "${PN}-compiler" - -S = "${WORKDIR}/git" -SRCREV_grpc = "90ccf24d22b6fc909a1021ebd89fd8c838467d26" -BRANCH = "v1.50.x" -SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \ - file://0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch \ - file://0001-cmake-add-separate-export-for-plugin-targets.patch \ - file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \ - file://0001-fix-CVE-2023-32732.patch \ - " -# Fixes build with older compilers 4.8 especially on ubuntu 14.04 -CXXFLAGS:append:class-native = " -Wl,--no-as-needed" - -inherit cmake pkgconfig - -EXTRA_OECMAKE = " \ - -DgRPC_CARES_PROVIDER=package \ - -DgRPC_ZLIB_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ - -DgRPC_PROTOBUF_PROVIDER=package \ - -D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ - -DgRPC_ABSL_PROVIDER=package \ - -DgRPC_RE2_PROVIDER=package \ - -DgRPC_INSTALL=ON \ - -DCMAKE_CROSSCOMPILING=ON \ - -DgRPC_INSTALL_LIBDIR=${baselib} \ - -DgRPC_INSTALL_CMAKEDIR=${baselib}/cmake/${BPN} \ - " - -PACKAGECONFIG ??= "cpp shared" -PACKAGECONFIG[cpp] = "-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CPP_PLUGIN=OFF" -PACKAGECONFIG[csharp] = "-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF" -PACKAGECONFIG[node] = "-DgRPC_BUILD_GRPC_NODE_PLUGIN=ON,-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF" -PACKAGECONFIG[objective-c] = "-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=ON,-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF" -PACKAGECONFIG[php] = "-DgRPC_BUILD_GRPC_PHP_PLUGIN=ON,-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF" -PACKAGECONFIG[python] = "-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON,-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF" -PACKAGECONFIG[ruby] = "-DgRPC_BUILD_GRPC_RUBY_PLUGIN=ON,-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF" -PACKAGECONFIG[protobuf-lite] = "-DgRPC_USE_PROTO_LITE=ON,-DgRPC_USE_PROTO_LITE=OFF,protobuf-lite" -PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,," - -do_configure:prepend() { - sed -i -e "s#lib/pkgconfig/#${baselib}/pkgconfig/#g" ${S}/CMakeLists.txt -} - -BBCLASSEXTEND = "native nativesdk" - -FILES:${PN}-compiler += " \ - ${bindir} \ - ${libdir}/libgrpc_plugin_support${SOLIBS} \ - " diff --git a/meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb b/meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb new file mode 100644 index 0000000000..c4dd6b9857 --- /dev/null +++ b/meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb @@ -0,0 +1,67 @@ +DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \ +Provides gRPC libraries for multiple languages written on top of shared C core library \ +(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)" +HOMEPAGE = "https://github.com/grpc/grpc" +SECTION = "libs" +LICENSE = "Apache-2.0 & BSD-3-Clause & MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=731e401b36f8077ae0c134b59be5c906" + +DEPENDS = "c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl libnsl2 abseil-cpp re2" +DEPENDS:append:class-target = " googletest grpc-native " +DEPENDS:append:class-nativesdk = " grpc-native " + +PACKAGE_BEFORE_PN = "${PN}-compiler" + +RDEPENDS:${PN}-compiler = "${PN}" +RDEPENDS:${PN}-dev:append:class-native = " ${PN}-compiler" +# Configuration above allows to cross-compile gRPC applications +# In order to compile applications on the target, use the dependency below +# Both dependencies are mutually exclusive +# RDEPENDS:${PN}-dev += "${PN}-compiler" + +S = "${WORKDIR}/git" +SRCREV_grpc = "c0d1c393d9365664d47df41746e992ae97b651ef" +BRANCH = "v1.56.x" +SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \ + file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \ + " +# Fixes build with older compilers 4.8 especially on ubuntu 14.04 +CXXFLAGS:append:class-native = " -Wl,--no-as-needed" + +inherit cmake pkgconfig + +EXTRA_OECMAKE = " \ + -DgRPC_CARES_PROVIDER=package \ + -DgRPC_ZLIB_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=package \ + -DgRPC_PROTOBUF_PROVIDER=package \ + -D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ + -DgRPC_ABSL_PROVIDER=package \ + -DgRPC_RE2_PROVIDER=package \ + -DgRPC_INSTALL=ON \ + -DCMAKE_CROSSCOMPILING=ON \ + -DgRPC_INSTALL_LIBDIR=${baselib} \ + -DgRPC_INSTALL_CMAKEDIR=${baselib}/cmake/${BPN} \ + " + +PACKAGECONFIG ??= "cpp shared" +PACKAGECONFIG[cpp] = "-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CPP_PLUGIN=OFF" +PACKAGECONFIG[csharp] = "-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF" +PACKAGECONFIG[node] = "-DgRPC_BUILD_GRPC_NODE_PLUGIN=ON,-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF" +PACKAGECONFIG[objective-c] = "-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=ON,-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF" +PACKAGECONFIG[php] = "-DgRPC_BUILD_GRPC_PHP_PLUGIN=ON,-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF" +PACKAGECONFIG[python] = "-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON,-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF" +PACKAGECONFIG[ruby] = "-DgRPC_BUILD_GRPC_RUBY_PLUGIN=ON,-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF" +PACKAGECONFIG[protobuf-lite] = "-DgRPC_USE_PROTO_LITE=ON,-DgRPC_USE_PROTO_LITE=OFF,protobuf-lite" +PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,," + +do_configure:prepend() { + sed -i -e "s#lib/pkgconfig/#${baselib}/pkgconfig/#g" ${S}/CMakeLists.txt +} + +BBCLASSEXTEND = "native nativesdk" + +FILES:${PN}-compiler += " \ + ${bindir} \ + ${libdir}/libgrpc_plugin_support${SOLIBS} \ + " -- cgit v1.2.3-54-g00ecf