From 264ba2587fcd20d46c1f44f72d54344743651789 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Fri, 30 Apr 2021 12:16:06 -0400 Subject: [PATCH] grpc: update to 1.37.1. --- common/shlibs | 14 +++++----- srcpkgs/grpc/patches/private-abseil.patch | 34 +++++++++++++++++++++++ srcpkgs/grpc/template | 29 +++++++++---------- 3 files changed, 56 insertions(+), 21 deletions(-) create mode 100644 srcpkgs/grpc/patches/private-abseil.patch diff --git a/common/shlibs b/common/shlibs index fdb5cd7eb3..c398782388 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3562,15 +3562,15 @@ libaal-minimal.so.0 libaal-1.0.7_1 libcli.so.1.9 libcli-1.9.8.4_1 libaddress_sorting.so.15 grpc-1.36.0_2 libgpr.so.15 grpc-1.36.0_2 -libgrpc++.so.1 grpc-1.36.0_2 -libgrpc++_alts.so.1 grpc-1.36.0_2 -libgrpc++_error_details.so.1 grpc-1.36.0_2 -libgrpc++_reflection.so.1 grpc-1.36.0_2 -libgrpc++_unsecure.so.1 grpc-1.36.0_2 +libgrpc++.so.1.37 grpc-1.37.1_1 +libgrpc++_alts.so.1.37 grpc-1.37.1_1 +libgrpc++_error_details.so.1.37 grpc-1.37.1_1 +libgrpc++_reflection.so.1.37 grpc-1.37.1_1 +libgrpc++_unsecure.so.1.37 grpc-1.37.1_1 libgrpc.so.15 grpc-1.36.0_2 -libgrpc_plugin_support.so.1 grpc-1.36.0_2 +libgrpc_plugin_support.so.1.37 grpc-1.37.1_1 libgrpc_unsecure.so.15 grpc-1.36.0_2 -libgrpcpp_channelz.so.1 grpc-1.36.0_2 +libgrpcpp_channelz.so.1.37 grpc-1.37.1_1 libupb.so.15 grpc-1.36.0_2 libircclient.so.1 libircclient-1.10_5 libFAudio.so.0 FAudio-19.05_1 diff --git a/srcpkgs/grpc/patches/private-abseil.patch b/srcpkgs/grpc/patches/private-abseil.patch new file mode 100644 index 0000000000..382ae7e263 --- /dev/null +++ b/srcpkgs/grpc/patches/private-abseil.patch @@ -0,0 +1,34 @@ +gRPC requires abseil, but abseil can be statically linked to avoid installing +and tracking a ton of extra shared libs. Unfortunately, grpcpp headers now +include absl headers, so these need to be installed. Put them in a private +location because the full abseil installation is not provided. + +diff -ur third_party/abseil-cpp/CMakeLists.txt third_party/abseil-cpp/CMakeLists.txt +--- third_party/abseil-cpp/CMakeLists.txt ++++ third_party/abseil-cpp/CMakeLists.txt +@@ -42,6 +42,7 @@ + endif (POLICY CMP0077) + + project(absl CXX) ++set(BUILD_SHARED_LIBS OFF) + + # Output directory is correct by default for most build setups. However, when + # building Abseil as a DLL, it is important to have the DLL in the same +@@ -52,7 +53,7 @@ + # when absl is included as subproject (i.e. using add_subdirectory(abseil-cpp)) + # in the source tree of a project that uses it, install rules are disabled. + if(NOT "^${CMAKE_SOURCE_DIR}$" STREQUAL "^${PROJECT_SOURCE_DIR}$") +- option(ABSL_ENABLE_INSTALL "Enable install rule" OFF) ++ option(ABSL_ENABLE_INSTALL "Enable install rule" ON) + else() + option(ABSL_ENABLE_INSTALL "Enable install rule" ON) + endif() +@@ -167,7 +168,7 @@ + endif() # absl_VERSION + + install(DIRECTORY absl +- DESTINATION ${ABSL_INSTALL_INCLUDEDIR} ++ DESTINATION ${ABSL_INSTALL_INCLUDEDIR}/grpc_absl + FILES_MATCHING + PATTERN "*.inc" + PATTERN "*.h" diff --git a/srcpkgs/grpc/template b/srcpkgs/grpc/template index 7fbee33ef1..f7070a748c 100644 --- a/srcpkgs/grpc/template +++ b/srcpkgs/grpc/template @@ -1,8 +1,7 @@ # Template file for 'grpc' pkgname=grpc -reverts="1.37.0_1" -version=1.36.4 -revision=2 +version=1.37.1 +revision=1 _abseilver=6f9d96a1f41439ac172ee2ef7ccd8edf0e5d068c build_style=cmake configure_args="-DBUILD_SHARED_LIBS=ON @@ -19,7 +18,7 @@ license="Apache-2.0" homepage="https://github.com/grpc/grpc" distfiles="${homepage}/archive/v${version}/${pkgname}-${version}.tar.gz https://github.com/abseil/abseil-cpp/archive/${_abseilver}/abseil-cpp-${_abseilver}.tar.gz" -checksum="8eb9d86649c4d4a7df790226df28f081b97a62bf12c5c5fe9b5d31a29cd6541a +checksum="acf247ec3a52edaee5dee28644a4e485c5e5badf46bdb24a80ca1d76cb8f1174 62c27e7a633e965a2f40ff16b487c3b778eae440bab64cad83b34ef1cbe3aa93" if [ "$CROSS_BUILD" ]; then @@ -41,20 +40,22 @@ post_patch() { # re2 doesn't install CMake config modules; # key variables are set in configure_args vsed -i CMakeLists.txt -e '/include(cmake\/re2\.cmake)/d' +} - # override building shared abseil libs - vsed -i third_party/abseil-cpp/CMakeLists.txt \ - -e "/project(absl CXX)/a set(BUILD_SHARED_LIBS OFF)" +post_build() { + # Clean up unneeded absl linker arguments from pkgconfig files + sed -e 's/-labsl_[^[:space:]]\+[[:space:]]*//g' \ + -i build/libs/opt/pkgconfig/*.pc + + # Add custom absl include root to grpcpp cflags + sed -e 's,^Cflags:.*,& -I${includedir}/grpc_absl,' \ + -i build/libs/opt/pkgconfig/grpc++*.pc } post_install() { - # CMake seems to install these no matter what. - # For now, they do not appear to be necessary, so scrub them. - rm ${DESTDIR}/usr/lib/libabsl*.a - - # Remove hard-coded absl linker args from pkgconfig files - sed -e 's/-labsl_[^[:space:]]\+[[:space:]]*//g' \ - -i ${DESTDIR}/usr/lib/pkgconfig/*.pc + # Remove unnecessary absl static libs and cmake modules + rm "${DESTDIR}"/usr/lib/libabsl*.a + rm -rf "${DESTDIR}/usr/lib/cmake/absl" } grpc-devel_package() {