[oe] [meta-networking][PATCH v2] grpc: update from 1.8.5 -> 1.14.1

Martin Jansa martin.jansa at gmail.com
Tue Aug 28 13:46:31 UTC 2018


Why do you think:

FILES_${PN}-dev += "${libdir}/cmake/${PN}"

is needed?

It should be included in ${PN}-dev already since:
http://git.openembedded.org/openembedded-core/commit/meta/classes/cmake.bbclass?id=d91dc4666683a96e9d03cbbd21b8a546f9069c93
updated in:
http://git.openembedded.org/openembedded-core/commit/?id=543e39ad5e2baa0f1ece013a89483783e6b15dd9

And the /* in "${bindir}/*" also isn't necessary.

On Tue, Aug 28, 2018 at 3:22 PM Jens Rehsack <sno at netbsd.org> wrote:

> Update gRPC to 1.14.1 and fix cause for issues like
>
> https://stackoverflow.com/questions/49975541/how-to-port-grpc-helloworldcpp-example-on-yocto
>
> For release notes check https://github.com/grpc/grpc/releases
>
> Signed-off-by: Jens Rehsack <sno at netbsd.org>
> ---
>  ...ix-grpc_cpp_plugin-path-during-cross.patch |  8 +--
>  ...Fix-libraries-installation-for-Linux.patch | 61 ++++++++++---------
>  ...-Find-c-ares-in-target-sysroot-alone.patch | 42 -------------
>  .../grpc/{grpc_1.8.5.bb => grpc_1.14.1.bb}    | 15 +++--
>  4 files changed, 47 insertions(+), 79 deletions(-)
>  delete mode 100644
> meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
>  rename meta-networking/recipes-devtools/grpc/{grpc_1.8.5.bb =>
> grpc_1.14.1.bb} (77%)
>
> diff --git
> a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
> b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
> index 5774e62eb..a83d85407 100644
> ---
> a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
> +++
> b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
> @@ -14,7 +14,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt
>  index f9cd630..9663934 100644
>  --- a/CMakeLists.txt
>  +++ b/CMakeLists.txt
> -@@ -328,6 +328,13 @@ function(protobuf_generate_grpc_cpp)
> +@@ -170,6 +170,13 @@ function(protobuf_generate_grpc_cpp)
>       return()
>     endif()
>
> @@ -25,7 +25,7 @@ index f9cd630..9663934 100644
>  +      set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
>  +  endif()
>  +
> -   set(_protobuf_include_path -I . -I ${PROTOBUF_WELLKNOWN_IMPORT_DIR})
> +   set(_protobuf_include_path -I . -I
> ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR})
>     foreach(FIL ${ARGN})
>       get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
>  @@ -345,7 +352,7 @@ function(protobuf_generate_grpc_cpp)
> @@ -41,7 +41,7 @@ diff --git a/templates/CMakeLists.txt.template
> b/templates/CMakeLists.txt.templa
>  index 64daf04..a7e8629 100644
>  --- a/templates/CMakeLists.txt.template
>  +++ b/templates/CMakeLists.txt.template
> -@@ -373,6 +373,13 @@
> +@@ -209,6 +209,13 @@
>         return()
>       endif()
>
> @@ -52,7 +52,7 @@ index 64daf04..a7e8629 100644
>  +        set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
>  +    endif()
>  +
> -     set(_protobuf_include_path -I . -I
> <%text>${PROTOBUF_WELLKNOWN_IMPORT_DIR}</%text>)
> +     set(_protobuf_include_path -I . -I
> <%text>${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}</%text>)
>       foreach(FIL <%text>${ARGN}</%text>)
>         get_filename_component(ABS_FIL <%text>${FIL}</%text> ABSOLUTE)
>  @@ -390,7 +397,7 @@
> diff --git
> a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
> b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
> index f8d965294..459dc45a4 100644
> ---
> a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
> +++
> b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
> @@ -1,7 +1,7 @@
> -From 8e9bf962a45a82f1c2eb5858e29fa89a3a60b564 Mon Sep 17 00:00:00 2001
> +From 2279e30be5796e9b185545543ea54fe68633cbdd Mon Sep 17 00:00:00 2001
>  From: Alexey Firago <alexey_firago at mentor.com>
>  Date: Mon, 30 Oct 2017 23:24:49 +0300
> -Subject: [PATCH 1/4] CMakeLists.txt: Fix libraries installation for Linux
> +Subject: [PATCH] CMakeLists.txt: Fix libraries installation for Linux
>
>  * Set libs versions as in Makefile
>
> @@ -9,21 +9,19 @@ Signed-off-by: Alexey Firago <alexey_firago at mentor.com>
>
>  %% original patch:
> 0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
>  ---
> - CMakeLists.txt                        | 55
> +++++++++++++++++++++++++++++++++++
> - CMakeLists.txt => CMakeLists.txt.orig |  0
> - 2 files changed, 55 insertions(+)
> - copy CMakeLists.txt => CMakeLists.txt.orig (100%)
> + CMakeLists.txt | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++
> + 1 file changed, 59 insertions(+)
>
>  diff --git a/CMakeLists.txt b/CMakeLists.txt
> -index b1a49df..13e64ac 100644
> +index a59fd818e3..5066f44a32 100644
>  --- a/CMakeLists.txt
>  +++ b/CMakeLists.txt
>  @@ -30,6 +30,15 @@ set(PACKAGE_TARNAME
>  "${PACKAGE_NAME}-${PACKAGE_VERSION}")
>   set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
>   project(${PACKAGE_NAME} C CXX)
>
> -+set (CORE_VERSION_MAJOR "4")
> -+set (CORE_VERSION "4.0.0")
> ++set (CORE_VERSION_MAJOR "6")
> ++set (CORE_VERSION "6.0.0")
>  +
>  +set (CPP_VERSION_MAJOR "1")
>  +set (CPP_VERSION "${PACKAGE_VERSION}")
> @@ -31,10 +29,21 @@ index b1a49df..13e64ac 100644
>  +set (CSHARP_VERSION_MAJOR "1")
>  +set (CSHARP_VERSION "${PACKAGE_VERSION}")
>  +
> - set(gRPC_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH
> "Installation directory for executables")
> - set(gRPC_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH
> "Installation directory for libraries")
> - set(gRPC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH
> "Installation directory for headers")
> -@@ -841,6 +850,10 @@ if(WIN32 AND MSVC)
> + set(gRPC_INSTALL_BINDIR "bin" CACHE STRING "Installation directory for
> executables")
> + set(gRPC_INSTALL_LIBDIR "lib" CACHE STRING "Installation directory for
> libraries")
> + set(gRPC_INSTALL_INCLUDEDIR "include" CACHE STRING "Installation
> directory for headers")
> +@@ -702,6 +711,10 @@ if(WIN32 AND MSVC)
> +   endif()
> + endif()
> +
> ++if(_gRPC_PLATFORM_LINUX)
> ++  set_property(TARGET address_sorting PROPERTY VERSION ${CORE_VERSION})
> ++  set_property(TARGET address_sorting PROPERTY SOVERSION
> ${CORE_VERSION_MAJOR})
> ++endif()
> +
> + target_include_directories(address_sorting
> +   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> +@@ -825,6 +838,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -45,7 +54,7 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(gpr
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -@@ -1221,6 +1234,10 @@ if(WIN32 AND MSVC)
> +@@ -1259,6 +1276,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -56,7 +65,7 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(grpc
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -@@ -1535,6 +1552,10 @@ if(WIN32 AND MSVC)
> +@@ -1633,6 +1654,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -67,7 +76,7 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(grpc_cronet
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -@@ -2377,6 +2398,10 @@ if(WIN32 AND MSVC)
> +@@ -2575,6 +2600,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -78,7 +87,7 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(grpc_unsecure
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -@@ -2592,6 +2617,10 @@ if(WIN32 AND MSVC)
> +@@ -2791,6 +2820,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -89,7 +98,7 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(grpc++
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -@@ -3078,6 +3107,10 @@ if(WIN32 AND MSVC)
> +@@ -3357,6 +3390,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -100,7 +109,7 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(grpc++_cronet
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -@@ -3282,6 +3315,11 @@ protobuf_generate_grpc_cpp(
> +@@ -3630,6 +3667,11 @@ protobuf_generate_grpc_cpp(
>     src/proto/grpc/status/status.proto
>   )
>
> @@ -112,7 +121,7 @@ index b1a49df..13e64ac 100644
>   target_include_directories(grpc++_error_details
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
>     PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
> -@@ -3408,6 +3446,11 @@ protobuf_generate_grpc_cpp(
> +@@ -3762,6 +3804,11 @@ protobuf_generate_grpc_cpp(
>     src/proto/grpc/reflection/v1alpha/reflection.proto
>   )
>
> @@ -124,7 +133,7 @@ index b1a49df..13e64ac 100644
>   target_include_directories(grpc++_reflection
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
>     PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
> -@@ -3827,6 +3870,10 @@ if(WIN32 AND MSVC)
> +@@ -4265,6 +4312,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -135,7 +144,7 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(grpc++_unsecure
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -@@ -4140,6 +4187,10 @@ if(WIN32 AND MSVC)
> +@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -146,7 +155,7 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(grpc_plugin_support
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC)
> +@@ -5184,6 +5239,10 @@ if(WIN32 AND MSVC)
>     endif()
>   endif()
>
> @@ -157,10 +166,6 @@ index b1a49df..13e64ac 100644
>
>   target_include_directories(grpc_csharp_ext
>     PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}>
> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
> -diff --git a/CMakeLists.txt b/CMakeLists.txt.orig
> -similarity index 100%
> -copy from CMakeLists.txt
> -copy to CMakeLists.txt.orig
>  --
> -2.16.1
> +2.17.1
>
> diff --git
> a/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
> b/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
> deleted file mode 100644
> index 8985022fa..000000000
> ---
> a/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -From a498b56ba96948015f0f2784b2ab8296946716ee Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem at gmail.com>
> -Date: Thu, 1 Feb 2018 23:28:17 -0800
> -Subject: [PATCH 4/4] CMakeLists.txt: Find c-ares in target sysroot alone
> -
> -Current code lets it look into native sysroot as well
> -which is then preferred during cross compile and it adds
> -absolute path to libcares into linker flags
> -on heterogenous architectures linker complains and build
> -fails
> -
> -|
> /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/grpc/1.8.5-r0/recipe-sysroot-native/usr/lib/lib
> -cares.so.2.2.0: file not recognized: File format not recognized
> -| collect2: error: ld returned 1 exit status
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ----
> - CMakeLists.txt | 6 ++----
> - 1 file changed, 2 insertions(+), 4 deletions(-)
> -
> -diff --git a/CMakeLists.txt b/CMakeLists.txt
> -index 1d7eef1..058423d 100644
> ---- a/CMakeLists.txt
> -+++ b/CMakeLists.txt
> -@@ -153,10 +153,8 @@ if("${gRPC_CARES_PROVIDER}" STREQUAL "module")
> -     set(gRPC_INSTALL FALSE)
> -   endif()
> - elseif("${gRPC_CARES_PROVIDER}" STREQUAL "package")
> --  find_package(c-ares REQUIRED CONFIG)
> --  if(TARGET c-ares::cares)
> --    set(_gRPC_CARES_LIBRARIES c-ares::cares)
> --  endif()
> -+  find_package(c-ares REQUIRED)
> -+  set(_gRPC_CARES_LIBRARIES cares)
> -   set(_gRPC_FIND_CARES "if(NOT c-ares_FOUND)\n  find_package(c-ares
> CONFIG)\nendif()")
> - endif()
> -
> ---
> -2.16.1
> -
> diff --git a/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
> b/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb
> similarity index 77%
> rename from meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
> rename to meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb
> index 3e44f99c1..24aa15745 100644
> --- a/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
> +++ b/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb
> @@ -10,11 +10,10 @@ DEPENDS = "gflags c-ares protobuf protobuf-native
> protobuf-c protobuf-c-native o
>  DEPENDS_append_class-target = " gtest grpc-native "
>
>  S = "${WORKDIR}/git"
> -SRCREV = "db68cb3652cc7697647e9934b5316d98a6ba04d1"
> -BRANCH = "v1.8.x"
> +SRCREV = "d8020cb6daa87f1a3bb3b0c299bc081c4a3de1e8"
> +BRANCH = "v1.14.x"
>  SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;branch=${BRANCH}
> <http://github.com/grpc/grpc.git;protocol=https;branch=$%7BBRANCH%7D> \
>
> file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \
> -
>  file://0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch \
>             "
>  SRC_URI_append_class-target = "
> file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch"
>
> @@ -26,8 +25,14 @@ EXTRA_OECMAKE = " \
>      -DgRPC_SSL_PROVIDER=package \
>      -DgRPC_PROTOBUF_PROVIDER=package \
>      -DgRPC_GFLAGS_PROVIDER=package \
> -    -DgRPC_INSTALL=1 \
> +    -DgRPC_INSTALL=ON \
> +    -DCMAKE_CROSSCOMPILING=ON \
>      -DBUILD_SHARED_LIBS=ON \
>      "
>
> -BBCLASSEXTEND = "native"
> +BBCLASSEXTEND = "native nativesdk"
> +
> +SYSROOT_DIRS_BLACKLIST_append_class-target = "${libdir}/cmake/grpc"
> +
> +FILES_${PN}-dev += "${bindir}/*"
> +FILES_${PN}-dev += "${libdir}/cmake/${PN}"
> --
> 2.17.1
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>



More information about the Openembedded-devel mailing list