From ac3a0722f7148fe8d3ca21891f907bcfbe134908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 2 Jul 2022 15:41:11 +0700 Subject: [PATCH] grpc: split libgrpc, ship plugin on cross-compile Why we're at it, clean build steps, remove all reference to absl in pkg-config and cmake config. --- common/shlibs | 24 ++++----- srcpkgs/grpc/patches/absl-is-private.patch | 58 ++++++++++++++++++++++ srcpkgs/grpc/template | 30 ++++++----- srcpkgs/libgrpc | 1 + 4 files changed, 89 insertions(+), 24 deletions(-) create mode 100644 srcpkgs/grpc/patches/absl-is-private.patch create mode 120000 srcpkgs/libgrpc diff --git a/common/shlibs b/common/shlibs index 092894ad8d1..7e4bcbef47f 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3659,18 +3659,18 @@ liboblibs.so.0.1 oblibs-0.1.1.1_1 libaal-1.0.so.7 libaal-1.0.7_1 libaal-minimal.so.0 libaal-1.0.7_1 libcli.so.1.9 libcli-1.9.8.4_1 -libaddress_sorting.so.18 grpc-1.39.0_1 -libgpr.so.18 grpc-1.39.0_1 -libgrpc++.so.1.39 grpc-1.39.0_1 -libgrpc++_alts.so.1.39 grpc-1.39.0_1 -libgrpc++_error_details.so.1.39 grpc-1.39.0_1 -libgrpc++_reflection.so.1.39 grpc-1.39.0_1 -libgrpc++_unsecure.so.1.39 grpc-1.39.0_1 -libgrpc.so.18 grpc-1.39.0_1 -libgrpc_plugin_support.so.1.39 grpc-1.39.0_1 -libgrpc_unsecure.so.18 grpc-1.39.0_1 -libgrpcpp_channelz.so.1.39 grpc-1.39.0_1 -libupb.so.18 grpc-1.39.0_1 +libaddress_sorting.so.18 libgrpc-1.39.0_6 +libgpr.so.18 libgrpc-1.39.0_6 +libgrpc++.so.1.39 libgrpc-1.39.0_6 +libgrpc++_alts.so.1.39 libgrpc-1.39.0_6 +libgrpc++_error_details.so.1.39 libgrpc-1.39.0_6 +libgrpc++_reflection.so.1.39 libgrpc-1.39.0_6 +libgrpc++_unsecure.so.1.39 libgrpc-1.39.0_6 +libgrpc.so.18 libgrpc-1.39.0_6 +libgrpc_plugin_support.so.1.39 libgrpc-1.39.0_6 +libgrpc_unsecure.so.18 libgrpc-1.39.0_6 +libgrpcpp_channelz.so.1.39 libgrpc-1.39.0_6 +libupb.so.18 libgrpc-1.39.0_6 libircclient.so.1 libircclient-1.10_5 libFAudio.so.0 FAudio-19.05_1 libqaccessibilityclient-qt5.so.0 libqaccessibilityclient-0.4.0_1 diff --git a/srcpkgs/grpc/patches/absl-is-private.patch b/srcpkgs/grpc/patches/absl-is-private.patch new file mode 100644 index 00000000000..a79277a2680 --- /dev/null +++ b/srcpkgs/grpc/patches/absl-is-private.patch @@ -0,0 +1,58 @@ +--- grpc-1.39.1.orig/CMakeLists.txt ++++ grpc-1.39.1/CMakeLists.txt +@@ -15856,7 +15865,7 @@ generate_pkgconfig( + "gpr" + "gRPC platform support library" + "${gRPC_CORE_VERSION}" +- "absl_base absl_memory absl_optional absl_status absl_str_format absl_strings absl_synchronization absl_time" ++ "" + "-lgpr" + "" + "gpr.pc") +@@ -15866,7 +15875,7 @@ generate_pkgconfig( + "gRPC" + "high performance general RPC framework" + "${gRPC_CORE_VERSION}" +- "gpr openssl absl_base absl_bind_front absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time" ++ "gpr openssl" + "-lgrpc -laddress_sorting -lre2 -lupb -lcares -lz" + "" + "grpc.pc") +@@ -15876,7 +15885,7 @@ generate_pkgconfig( + "gRPC unsecure" + "high performance general RPC framework without SSL" + "${gRPC_CORE_VERSION}" +- "gpr absl_base absl_bind_front absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time" ++ "gpr" + "-lgrpc_unsecure" + "" + "grpc_unsecure.pc") +@@ -15886,7 +15895,7 @@ generate_pkgconfig( + "gRPC++" + "C++ wrapper for gRPC" + "${gRPC_CPP_VERSION}" +- "grpc absl_base absl_bind_front absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time" ++ "grpc" + "-lgrpc++" + "" + "grpc++.pc") +@@ -15896,7 +15905,7 @@ generate_pkgconfig( + "gRPC++ unsecure" + "C++ wrapper for gRPC without SSL" + "${gRPC_CPP_VERSION}" +- "grpc_unsecure absl_base absl_bind_front absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time" ++ "grpc_unsecure" + "-lgrpc++_unsecure" + "" + "grpc++_unsecure.pc") +--- grpc-1.39.1.orig/cmake/pkg-config-template.pc.in ++++ grpc-1.39.1/cmake/pkg-config-template.pc.in +@@ -6,7 +6,7 @@ libdir=${exec_prefix}/lib + Name: @PC_NAME@ + Description: @PC_DESCRIPTION@ + Version: @PC_VERSION@ +-Cflags: -I${includedir} ++Cflags: -I${includedir} -I${includedir}/grpc_absl + Requires: @PC_REQUIRES@ + Libs: -L${libdir} @PC_LIB@ + Libs.private: @PC_LIBS_PRIVATE@ diff --git a/srcpkgs/grpc/template b/srcpkgs/grpc/template index 9b35682fdb1..765d4213a64 100644 --- a/srcpkgs/grpc/template +++ b/srcpkgs/grpc/template @@ -1,7 +1,7 @@ # Template file for 'grpc' pkgname=grpc version=1.39.1 -revision=5 +revision=6 _abseilver=997aaf3a28308eba1b9156aa35ab7bca9688e9f6 build_style=cmake configure_args="-DBUILD_SHARED_LIBS=ON @@ -39,23 +39,29 @@ post_extract() { 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' -} - -post_build() { - # Clean up unneeded absl linker arguments from pkgconfig files - sed -e 's/-labsl_[^[:space:]]\+[[:space:]]*//g' \ - -i build/lib/pkgconfig/*.pc + # also install all plugin on cross-compiling + vsed -i CMakeLists.txt -e '/include(cmake\/re2\.cmake)/d' \ + -e 's/gRPC_INSTALL AND NOT CMAKE_CROSSCOMPILING/gRPC_INSTALL/' } post_install() { - # Remove unnecessary absl static libs and cmake modules + # Remove unnecessary absl static libs, pkg-config and cmake modules rm "${DESTDIR}"/usr/lib/libabsl*.a + rm -rf "${DESTDIR}/usr/lib/pkgconfig/"absl_* rm -rf "${DESTDIR}/usr/lib/cmake/absl" - # Add custom absl include root to grpcpp cflags - vsed -e 's,^Cflags:.*,& -I${includedir}/grpc_absl,' \ - -i ${DESTDIR}/usr/lib/pkgconfig/grpc++*.pc + # Clean up unneeded absl linker arguments from cmake files + sed -e 's/absl::[a-zA-Z_-]*;//g' \ + -e 's/ "absl::[a-zA-Z_-]*"/ /g' \ + -i ${DESTDIR}/usr/lib/cmake/grpc/gRPCTargets.cmake +} + +libgrpc_package() { + short_desc+=" - libraries" + pkg_install() { + vmove "usr/lib/*.so.*" + vmove usr/share + } } grpc-devel_package() { diff --git a/srcpkgs/libgrpc b/srcpkgs/libgrpc new file mode 120000 index 00000000000..e5f1f1766d3 --- /dev/null +++ b/srcpkgs/libgrpc @@ -0,0 +1 @@ +grpc \ No newline at end of file