commit: 47c14d152f8d1e20021bd7c49ea3e4ccefb542b1 Author: Jason Zaman <perfinion <AT> gentoo <DOT> org> AuthorDate: Wed May 2 06:30:21 2018 +0000 Commit: Jason Zaman <perfinion <AT> gentoo <DOT> org> CommitDate: Wed May 2 07:19:53 2018 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=47c14d15
net-libs/grpc: new package Updated from CrOS overlay Package-Manager: Portage-2.3.24, Repoman-2.3.6 net-libs/grpc/Manifest | 1 + .../0001-grpc-1.11.0-Fix-cross-compiling.patch | 58 ++++++++++++++++++++ .../0002-grpc-1.3.0-Fix-unsecure-.pc-files.patch | 38 +++++++++++++ .../files/0003-grpc-1.3.0-Don-t-run-ldconfig.patch | 53 ++++++++++++++++++ .../0004-grpc-1.11.0-fix-cpp-so-version.patch | 49 +++++++++++++++++ net-libs/grpc/grpc-1.11.0.ebuild | 64 ++++++++++++++++++++++ net-libs/grpc/metadata.xml | 10 ++++ 7 files changed, 273 insertions(+) diff --git a/net-libs/grpc/Manifest b/net-libs/grpc/Manifest new file mode 100644 index 00000000000..4979a85eff1 --- /dev/null +++ b/net-libs/grpc/Manifest @@ -0,0 +1 @@ +DIST grpc-1.11.0.tar.gz 13431990 BLAKE2B d7aabd86fdaba8f8fc6fa17b411b496bbd51ef0a759d4bd77c0391e472c88f4252270ceddc19fb59a2b725d612236e1aef959f4b313551cb38204c51d1ca216b SHA512 3127cf0e66cd0712d905e6008adf6f80d787ad97eae2fba38fa3f4d343849a3dc3ca8f2ccbc82020e812fdb272e9577584c298a5b623fbdcac40c1efd7877855 diff --git a/net-libs/grpc/files/0001-grpc-1.11.0-Fix-cross-compiling.patch b/net-libs/grpc/files/0001-grpc-1.11.0-Fix-cross-compiling.patch new file mode 100644 index 00000000000..6c4767759b4 --- /dev/null +++ b/net-libs/grpc/files/0001-grpc-1.11.0-Fix-cross-compiling.patch @@ -0,0 +1,58 @@ +From b9e631dad111f725c1a4e8b69ff1960397a5cc22 Mon Sep 17 00:00:00 2001 +From: Chirantan Ekbote <chiran...@google.com> +Date: Mon, 10 Jul 2017 13:19:35 -0700 +Subject: [PATCH 2/5] grpc-1.3.0: Fix cross-compiling + +Cross-compiling was severely broken in the Makefile. Fix it. + +Sent upstream as https://github.com/grpc/grpc/pull/11476. +--- + Makefile | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git a/Makefile b/Makefile +index 95de4f6530..4f0680e1d2 100644 +--- a/Makefile ++++ b/Makefile +@@ -329,6 +329,7 @@ HOST_CC ?= $(CC) + HOST_CXX ?= $(CXX) + HOST_LD ?= $(LD) + HOST_LDXX ?= $(LDXX) ++HOST_AR ?= $(AR) + + CFLAGS += -std=c99 -Wsign-conversion -Wconversion $(W_SHADOW) $(W_EXTRA_SEMI) + ifeq ($(HAS_CXX11),true) +@@ -438,11 +439,12 @@ LDFLAGS += $(EXTRA_LDFLAGS) + DEFINES += $(EXTRA_DEFINES) + LDLIBS += $(EXTRA_LDLIBS) + +-HOST_CPPFLAGS = $(CPPFLAGS) +-HOST_CFLAGS = $(CFLAGS) +-HOST_CXXFLAGS = $(CXXFLAGS) +-HOST_LDFLAGS = $(LDFLAGS) +-HOST_LDLIBS = $(LDLIBS) ++HOST_CPPFLAGS = $(CPPFLAGS_NO_ARCH) -g -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter -DOSATOMIC_USE_INLINED=1 -fPIC ++HOST_CFLAGS = -std=c99 -Wsign-conversion -Wconversion $(W_SHADOW) $(W_EXTRA_SEMI) ++HOST_CXXFLAGS = -std=c++11 ++HOST_LDFLAGS = -g -fPIC -Llibs/$(CONFIG) ++HOST_LDLIBS = -lprotoc ++HOST_AROPTS = $(AROPTS) + + # These are automatically computed variables. + # There shouldn't be any need to change anything from now on. +@@ -6838,10 +6840,10 @@ $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a: protobuf_dep_error + else + + $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a: $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(PROTOBUF_DEP) $(LIBGRPC_PLUGIN_SUPPORT_OBJS) +- $(E) "[AR] Creating $@" ++ $(E) "[HOSTAR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +- $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(LIBGRPC_PLUGIN_SUPPORT_OBJS) ++ $(Q) $(HOST_AR) $(HOST_AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(LIBGRPC_PLUGIN_SUPPORT_OBJS) + ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + endif +-- +2.14.0.rc0.284.gd933b75aa4-goog + diff --git a/net-libs/grpc/files/0002-grpc-1.3.0-Fix-unsecure-.pc-files.patch b/net-libs/grpc/files/0002-grpc-1.3.0-Fix-unsecure-.pc-files.patch new file mode 100644 index 00000000000..e6bde1321a4 --- /dev/null +++ b/net-libs/grpc/files/0002-grpc-1.3.0-Fix-unsecure-.pc-files.patch @@ -0,0 +1,38 @@ +From bc139f5b7ce6a2a6d7c67480a04e029955aec0ab Mon Sep 17 00:00:00 2001 +From: Chirantan Ekbote <chiran...@google.com> +Date: Mon, 10 Jul 2017 13:21:27 -0700 +Subject: [PATCH 3/5] grpc-1.3.0: Fix unsecure .pc files + +The *_unsecure.pc files were still linking against the secure versions +of the grpc libraries. Fix them to link against the unsecure versions. + +Sent upstream as https://github.com/grpc/grpc/pull/11448. +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 4f0680e1d2..86bd66a5e0 100644 +--- a/Makefile ++++ b/Makefile +@@ -778,7 +778,7 @@ PC_DESCRIPTION = high performance general RPC framework without SSL + PC_CFLAGS = + PC_REQUIRES_PRIVATE = $(PC_REQUIRES_GRPC) + PC_LIBS_PRIVATE = $(PC_LIBS_GRPC) +-PC_LIB = -lgrpc ++PC_LIB = -lgrpc_unsecure + GRPC_UNSECURE_PC_FILE := $(CORE_PC_TEMPLATE) + + PROTOBUF_PKG_CONFIG = false +@@ -849,7 +849,7 @@ PC_DESCRIPTION = C++ wrapper for gRPC without SSL + PC_CFLAGS = + PC_REQUIRES_PRIVATE = grpc_unsecure $(PC_REQUIRES_GRPCXX) + PC_LIBS_PRIVATE = $(PC_LIBS_GRPCXX) +-PC_LIB = -lgrpc++ ++PC_LIB = -lgrpc++_unsecure + GRPCXX_UNSECURE_PC_FILE := $(CPP_PC_TEMPLATE) + + ifeq ($(MAKECMDGOALS),clean) +-- +2.14.0.rc0.284.gd933b75aa4-goog + diff --git a/net-libs/grpc/files/0003-grpc-1.3.0-Don-t-run-ldconfig.patch b/net-libs/grpc/files/0003-grpc-1.3.0-Don-t-run-ldconfig.patch new file mode 100644 index 00000000000..d18063f2ef1 --- /dev/null +++ b/net-libs/grpc/files/0003-grpc-1.3.0-Don-t-run-ldconfig.patch @@ -0,0 +1,53 @@ +From 40f602c0beeb09197507d280b150174e09300d7f Mon Sep 17 00:00:00 2001 +From: Chirantan Ekbote <chiran...@google.com> +Date: Mon, 10 Jul 2017 13:26:04 -0700 +Subject: [PATCH 5/5] grpc-1.3.0: Don't run ldconfig + +It doesn't make sense to run ldconfig for a staged install. Remove it. +--- + Makefile | 15 --------------- + 1 file changed, 15 deletions(-) + +diff --git a/Makefile b/Makefile +index 86bd66a5e0..f4c2a5bcb9 100644 +--- a/Makefile ++++ b/Makefile +@@ -2582,11 +2582,6 @@ else ifneq ($(SYSTEM),Darwin) + $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(prefix)/$(INSTALL_LIBDIR)/libgrpc_unsecure.so.3 + $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(prefix)/$(INSTALL_LIBDIR)/libgrpc_unsecure.so + endif +-ifneq ($(SYSTEM),MINGW32) +-ifneq ($(SYSTEM),Darwin) +- $(Q) ldconfig || true +-endif +-endif + + + install-shared_cxx: shared_cxx strip-shared_cxx install-shared_c install-pkg-config_cxx +@@ -2635,11 +2630,6 @@ else ifneq ($(SYSTEM),Darwin) + $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_unsecure.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_unsecure.so + endif +-ifneq ($(SYSTEM),MINGW32) +-ifneq ($(SYSTEM),Darwin) +- $(Q) ldconfig || true +-endif +-endif + + + install-shared_csharp: shared_csharp strip-shared_csharp +@@ -2652,11 +2642,6 @@ else ifneq ($(SYSTEM),Darwin) + $(Q) ln -sf $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CSHARP).$(SHARED_EXT_CSHARP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc_csharp_ext.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CSHARP).$(SHARED_EXT_CSHARP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc_csharp_ext.so + endif +-ifneq ($(SYSTEM),MINGW32) +-ifneq ($(SYSTEM),Darwin) +- $(Q) ldconfig || true +-endif +-endif + + + install-plugins: $(PROTOC_PLUGINS) +-- +2.14.0.rc0.284.gd933b75aa4-goog + diff --git a/net-libs/grpc/files/0004-grpc-1.11.0-fix-cpp-so-version.patch b/net-libs/grpc/files/0004-grpc-1.11.0-fix-cpp-so-version.patch new file mode 100644 index 00000000000..465520257cf --- /dev/null +++ b/net-libs/grpc/files/0004-grpc-1.11.0-fix-cpp-so-version.patch @@ -0,0 +1,49 @@ +It creates the symlinks with the wrong versions + +--- a/Makefile.orig 2018-05-02 14:19:10.007775576 +0800 ++++ b/Makefile 2018-05-02 14:20:59.414089065 +0800 +@@ -2928,7 +2928,7 @@ + ifeq ($(SYSTEM),MINGW32) + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION_CPP)-dll.a $(prefix)/$(INSTALL_LIBDIR)/libgrpc++.a + else ifneq ($(SYSTEM),Darwin) +- $(Q) ln -sf $(SHARED_PREFIX)grpc++$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++.so.6 ++ $(Q) ln -sf $(SHARED_PREFIX)grpc++$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++.so + endif + $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc++_cronet$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP)" +@@ -2937,7 +2937,7 @@ + ifeq ($(SYSTEM),MINGW32) + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc++_cronet$(SHARED_VERSION_CPP)-dll.a $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_cronet.a + else ifneq ($(SYSTEM),Darwin) +- $(Q) ln -sf $(SHARED_PREFIX)grpc++_cronet$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_cronet.so.6 ++ $(Q) ln -sf $(SHARED_PREFIX)grpc++_cronet$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_cronet.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++_cronet$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_cronet.so + endif + $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc++_error_details$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP)" +@@ -2946,7 +2946,7 @@ + ifeq ($(SYSTEM),MINGW32) + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc++_error_details$(SHARED_VERSION_CPP)-dll.a $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_error_details.a + else ifneq ($(SYSTEM),Darwin) +- $(Q) ln -sf $(SHARED_PREFIX)grpc++_error_details$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_error_details.so.6 ++ $(Q) ln -sf $(SHARED_PREFIX)grpc++_error_details$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_error_details.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++_error_details$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_error_details.so + endif + $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP)" +@@ -2955,7 +2955,7 @@ + ifeq ($(SYSTEM),MINGW32) + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION_CPP)-dll.a $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_reflection.a + else ifneq ($(SYSTEM),Darwin) +- $(Q) ln -sf $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_reflection.so.6 ++ $(Q) ln -sf $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_reflection.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_reflection.so + endif + $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP)" +@@ -2964,7 +2964,7 @@ + ifeq ($(SYSTEM),MINGW32) + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION_CPP)-dll.a $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_unsecure.a + else ifneq ($(SYSTEM),Darwin) +- $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_unsecure.so.6 ++ $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_unsecure.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(prefix)/$(INSTALL_LIBDIR)/libgrpc++_unsecure.so + endif + ifneq ($(SYSTEM),MINGW32) diff --git a/net-libs/grpc/grpc-1.11.0.ebuild b/net-libs/grpc/grpc-1.11.0.ebuild new file mode 100644 index 00000000000..f5f64eea4e7 --- /dev/null +++ b/net-libs/grpc/grpc-1.11.0.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{5,6} ) +inherit python-r1 toolchain-funcs multilib flag-o-matic + +DESCRIPTION="Modern open source high performance RPC framework" +HOMEPAGE="http://www.grpc.io" +SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + >=dev-libs/openssl-1.0.2 + >=dev-libs/protobuf-3:= + net-dns/c-ares + sys-libs/zlib" + +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/0001-grpc-1.11.0-Fix-cross-compiling.patch" + "${FILESDIR}/0002-grpc-1.3.0-Fix-unsecure-.pc-files.patch" + "${FILESDIR}/0003-grpc-1.3.0-Don-t-run-ldconfig.patch" + "${FILESDIR}/0004-grpc-1.11.0-fix-cpp-so-version.patch" +) + +src_prepare() { + sed -i 's@$(prefix)/lib@$(prefix)/$(INSTALL_LIBDIR)@g' Makefile || die "fix libdir" + default +} + +src_compile() { + tc-export CC CXX PKG_CONFIG + emake \ + V=1 \ + prefix=/usr \ + AR="$(tc-getAR)" \ + AROPTS="rcs" \ + CFLAGS="${CFLAGS}" \ + LD="${CC}" \ + LDXX="${CXX}" \ + STRIP=true \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_CXX="$(tc-getBUILD_CXX)" \ + HOST_LD="$(tc-getBUILD_CC)" \ + HOST_LDXX="$(tc-getBUILD_CXX)" \ + HOST_AR="$(tc-getBUILD_AR)" +} + +src_install() { + emake \ + prefix="${D}"/usr \ + INSTALL_LIBDIR="$(get_libdir)" \ + STRIP=true \ + install +} diff --git a/net-libs/grpc/metadata.xml b/net-libs/grpc/metadata.xml new file mode 100644 index 00000000000..13bfd9fea3d --- /dev/null +++ b/net-libs/grpc/metadata.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>perfin...@gentoo.org</email> + </maintainer> + <longdescription lang="en"> + A high performance, open-source universal RPC framework + </longdescription> +</pkgmetadata>