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>

Reply via email to