Import grpc-1.17.1
This commit is contained in:
commit
7790adbd22
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
SOURCES/grpc-1.17.1.tar.gz
|
1
.grpc.metadata
Normal file
1
.grpc.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
3189cff59efc8dd10083eefa7102e264117612c5 SOURCES/grpc-1.17.1.tar.gz
|
43
SOURCES/0001-Do-not-build-the-Ruby-plugin.patch
Normal file
43
SOURCES/0001-Do-not-build-the-Ruby-plugin.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From ad0cae3d6eb5a47e8ec0a52b78013e658aa1720b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mathieu Bridon <bochecha@daitauha.fr>
|
||||||
|
Date: Mon, 17 Dec 2018 11:41:34 +0100
|
||||||
|
Subject: [PATCH] Do not build the Ruby plugin
|
||||||
|
|
||||||
|
Unfortunately, this can't build without protobuf 3.6, so we must disable
|
||||||
|
it for Fedora 28 and 29 which only have protobuf 3.5.
|
||||||
|
---
|
||||||
|
Makefile | 4 +---
|
||||||
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 066c191..09ad70a 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -802,7 +802,7 @@ PC_LIBS_GRPCXX =
|
||||||
|
|
||||||
|
CPPFLAGS := -Ithird_party/googletest/googletest/include -Ithird_party/googletest/googlemock/include $(CPPFLAGS)
|
||||||
|
|
||||||
|
-PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_php_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin
|
||||||
|
+PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_php_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin
|
||||||
|
PROTOC_PLUGINS_DIR = $(BINDIR)/$(CONFIG)
|
||||||
|
|
||||||
|
ifeq ($(HAS_SYSTEM_PROTOBUF),true)
|
||||||
|
@@ -3151,7 +3151,6 @@ install-plugins: $(PROTOC_PLUGINS)
|
||||||
|
$(Q) $(INSTALL) -d $(prefix)/bin
|
||||||
|
$(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_python_plugin $(prefix)/bin/grpc_python_plugin
|
||||||
|
$(Q) $(INSTALL) -d $(prefix)/bin
|
||||||
|
- $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_ruby_plugin $(prefix)/bin/grpc_ruby_plugin
|
||||||
|
|
||||||
|
install-grpc-cli: grpc_cli
|
||||||
|
$(E) "[INSTALL] Installing grpc cli"
|
||||||
|
@@ -7162,7 +7161,6 @@ LIBGRPC_PLUGIN_SUPPORT_SRC = \
|
||||||
|
src/compiler/objective_c_generator.cc \
|
||||||
|
src/compiler/php_generator.cc \
|
||||||
|
src/compiler/python_generator.cc \
|
||||||
|
- src/compiler/ruby_generator.cc \
|
||||||
|
|
||||||
|
PUBLIC_HEADERS_CXX += \
|
||||||
|
include/grpc++/impl/codegen/config_protobuf.h \
|
||||||
|
--
|
||||||
|
2.17.2
|
||||||
|
|
41
SOURCES/0001-enforce-system-crypto-policies.patch
Normal file
41
SOURCES/0001-enforce-system-crypto-policies.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From dfd09ced8657f7b3eac79038418fc5a452c396d6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sergey Avseyev <sergey.avseyev@gmail.com>
|
||||||
|
Date: Wed, 28 Nov 2018 18:53:22 +0300
|
||||||
|
Subject: [PATCH] enforce system crypto policies
|
||||||
|
|
||||||
|
---
|
||||||
|
test/core/handshake/client_ssl.cc | 3 +--
|
||||||
|
test/core/handshake/server_ssl_common.cc | 3 +--
|
||||||
|
2 files changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test/core/handshake/client_ssl.cc b/test/core/handshake/client_ssl.cc
|
||||||
|
index 467df6e229..b31934e51b 100644
|
||||||
|
--- a/test/core/handshake/client_ssl.cc
|
||||||
|
+++ b/test/core/handshake/client_ssl.cc
|
||||||
|
@@ -161,8 +161,7 @@ static void server_thread(void* arg) {
|
||||||
|
// Set the cipher list to match the one expressed in
|
||||||
|
// src/core/tsi/ssl_transport_security.c.
|
||||||
|
const char* cipher_list =
|
||||||
|
- "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-"
|
||||||
|
- "SHA384:ECDHE-RSA-AES256-GCM-SHA384";
|
||||||
|
+ "PROFILE=SYSTEM";
|
||||||
|
if (!SSL_CTX_set_cipher_list(ctx, cipher_list)) {
|
||||||
|
ERR_print_errors_fp(stderr);
|
||||||
|
gpr_log(GPR_ERROR, "Couldn't set server cipher list.");
|
||||||
|
diff --git a/test/core/handshake/server_ssl_common.cc b/test/core/handshake/server_ssl_common.cc
|
||||||
|
index 41b2829d8b..8b21ea7c73 100644
|
||||||
|
--- a/test/core/handshake/server_ssl_common.cc
|
||||||
|
+++ b/test/core/handshake/server_ssl_common.cc
|
||||||
|
@@ -167,8 +167,7 @@ bool server_ssl_test(const char* alpn_list[], unsigned int alpn_list_len,
|
||||||
|
// Set the cipher list to match the one expressed in
|
||||||
|
// src/core/tsi/ssl_transport_security.c.
|
||||||
|
const char* cipher_list =
|
||||||
|
- "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-"
|
||||||
|
- "SHA384:ECDHE-RSA-AES256-GCM-SHA384";
|
||||||
|
+ "PROFILE=SYSTEM";
|
||||||
|
if (!SSL_CTX_set_cipher_list(ctx, cipher_list)) {
|
||||||
|
ERR_print_errors_fp(stderr);
|
||||||
|
gpr_log(GPR_ERROR, "Couldn't set server cipher list.");
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
43
SOURCES/0002-patch-from-15532.patch
Normal file
43
SOURCES/0002-patch-from-15532.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From d75addf6b5ef94ba9f6b5684523a587c6dc35ccb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sergey Avseyev <sergey.avseyev@gmail.com>
|
||||||
|
Date: Fri, 16 Nov 2018 15:03:30 +0300
|
||||||
|
Subject: [PATCH] patch from #15532
|
||||||
|
|
||||||
|
---
|
||||||
|
Makefile | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 8469a5fd50..0d06d1fc29 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -348,7 +348,7 @@ HOST_LD ?= $(LD)
|
||||||
|
HOST_LDXX ?= $(LDXX)
|
||||||
|
|
||||||
|
CFLAGS += -std=c99 -Wsign-conversion -Wconversion $(W_SHADOW) $(W_EXTRA_SEMI)
|
||||||
|
-CXXFLAGS += -std=c++11
|
||||||
|
+CXXFLAGS += -std=c++11 -Wno-class-memaccess -Wno-ignored-qualifiers -Wno-stringop-truncation -Wno-sizeof-pointer-div
|
||||||
|
ifeq ($(SYSTEM),Darwin)
|
||||||
|
CXXFLAGS += -stdlib=libc++
|
||||||
|
endif
|
||||||
|
@@ -7899,7 +7899,7 @@ LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename
|
||||||
|
|
||||||
|
$(LIBBORINGSSL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||||
|
$(LIBBORINGSSL_OBJS): CXXFLAGS += -fno-rtti -fno-exceptions
|
||||||
|
-$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||||
|
+$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough -Wno-cast-function-type $(NO_W_EXTRA_SEMI)
|
||||||
|
|
||||||
|
$(LIBDIR)/$(CONFIG)/libboringssl.a: $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(LIBBORINGSSL_OBJS)
|
||||||
|
$(E) "[AR] Creating $@"
|
||||||
|
@@ -10094,7 +10094,7 @@ PUBLIC_HEADERS_C += \
|
||||||
|
LIBARES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBARES_SRC))))
|
||||||
|
|
||||||
|
$(LIBARES_OBJS): CPPFLAGS += -Ithird_party/cares -Ithird_party/cares/cares -fvisibility=hidden -D_GNU_SOURCE $(if $(subst Darwin,,$(SYSTEM)),,-Ithird_party/cares/config_darwin) $(if $(subst FreeBSD,,$(SYSTEM)),,-Ithird_party/cares/config_freebsd) $(if $(subst Linux,,$(SYSTEM)),,-Ithird_party/cares/config_linux) $(if $(subst OpenBSD,,$(SYSTEM)),,-Ithird_party/cares/config_openbsd) -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX $(if $(subst MINGW32,,$(SYSTEM)),-DHAVE_CONFIG_H,)
|
||||||
|
-$(LIBARES_OBJS): CFLAGS += -Wno-sign-conversion $(if $(subst Darwin,,$(SYSTEM)),,-Wno-shorten-64-to-32) $(if $(subst MINGW32,,$(SYSTEM)),-Wno-invalid-source-encoding,)
|
||||||
|
+$(LIBARES_OBJS): CFLAGS += -Wno-sign-conversion -Wno-sizeof-pointer-memaccess -Wno-stringop-overflow $(if $(subst Darwin,,$(SYSTEM)),,-Wno-shorten-64-to-32) $(if $(subst MINGW32,,$(SYSTEM)),-Wno-invalid-source-encoding,)
|
||||||
|
|
||||||
|
$(LIBDIR)/$(CONFIG)/libares.a: $(LIBARES_OBJS)
|
||||||
|
$(E) "[AR] Creating $@"
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
152
SPECS/grpc.spec
Normal file
152
SPECS/grpc.spec
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
Name: grpc
|
||||||
|
Version: 1.17.1
|
||||||
|
Release: 3%{?dist}
|
||||||
|
Summary: Modern, open source, high-performance remote procedure call (RPC) framework
|
||||||
|
License: ASL 2.0
|
||||||
|
URL: https://www.grpc.io
|
||||||
|
Source0: https://github.com/grpc/grpc/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: protobuf-devel
|
||||||
|
BuildRequires: protobuf-compiler
|
||||||
|
BuildRequires: openssl-devel
|
||||||
|
BuildRequires: c-ares-devel
|
||||||
|
BuildRequires: gflags-devel
|
||||||
|
BuildRequires: gtest-devel
|
||||||
|
BuildRequires: zlib-devel
|
||||||
|
BuildRequires: gperftools-devel
|
||||||
|
|
||||||
|
BuildRequires: python3-devel
|
||||||
|
BuildRequires: python3-setuptools
|
||||||
|
BuildRequires: python3-Cython
|
||||||
|
|
||||||
|
Patch0: 0001-enforce-system-crypto-policies.patch
|
||||||
|
# https://github.com/grpc/grpc/pull/15532
|
||||||
|
Patch1: 0002-patch-from-15532.patch
|
||||||
|
# F29 and older has too old protobuf without ruby plugin
|
||||||
|
Patch2: 0001-Do-not-build-the-Ruby-plugin.patch
|
||||||
|
|
||||||
|
%description
|
||||||
|
gRPC is a modern open source high performance RPC framework that can run in any
|
||||||
|
environment. It can efficiently connect services in and across data centers
|
||||||
|
with pluggable support for load balancing, tracing, health checking and
|
||||||
|
authentication. It is also applicable in last mile of distributed computing to
|
||||||
|
connect devices, mobile applications and browsers to backend services.
|
||||||
|
|
||||||
|
The main usage scenarios:
|
||||||
|
|
||||||
|
* Efficiently connecting polyglot services in microservices style architecture
|
||||||
|
* Connecting mobile devices, browser clients to backend services
|
||||||
|
* Generating efficient client libraries
|
||||||
|
|
||||||
|
Core Features that make it awesome:
|
||||||
|
|
||||||
|
* Idiomatic client libraries in 10 languages
|
||||||
|
* Highly efficient on wire and with a simple service definition framework
|
||||||
|
* Bi-directional streaming with http/2 based transport
|
||||||
|
* Pluggable auth, tracing, load balancing and health checking
|
||||||
|
|
||||||
|
|
||||||
|
%package plugins
|
||||||
|
Summary: gRPC protocol buffers compiler plugins
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: protobuf-compiler
|
||||||
|
|
||||||
|
%description plugins
|
||||||
|
Plugins to the protocol buffers compiler to generate gRPC sources.
|
||||||
|
|
||||||
|
%package cli
|
||||||
|
Summary: gRPC protocol buffers cli
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description cli
|
||||||
|
Plugins to the protocol buffers compiler to generate gRPC sources.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: gRPC library development files
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Development headers and files for gRPC libraries.
|
||||||
|
|
||||||
|
%package -n python3-grpcio
|
||||||
|
Summary: Python language bindings for grpc, remote procedure call (RPC) framework
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
%{?python_provide:%python_provide python3-%{pypi_name}}
|
||||||
|
|
||||||
|
%description -n python3-grpcio
|
||||||
|
Python3 bindings for gRPC library.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -N
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%if 0%{?almalinux} && 0%{?almalinux} < 9
|
||||||
|
%patch2 -p1
|
||||||
|
%endif
|
||||||
|
sed -i 's:^prefix ?= .*:prefix ?= %{_prefix}:' Makefile
|
||||||
|
sed -i 's:$(prefix)/lib:$(prefix)/%{_lib}:' Makefile
|
||||||
|
sed -i 's:^GTEST_LIB =.*::' Makefile
|
||||||
|
|
||||||
|
%build
|
||||||
|
%make_build shared plugins
|
||||||
|
|
||||||
|
# build python module
|
||||||
|
export GRPC_PYTHON_BUILD_WITH_CYTHON=True
|
||||||
|
export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=True
|
||||||
|
export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=True
|
||||||
|
export GRPC_PYTHON_BUILD_SYSTEM_CARES=True
|
||||||
|
export CFLAGS="%optflags"
|
||||||
|
%py3_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
make install prefix="%{buildroot}%{_prefix}"
|
||||||
|
make install-grpc-cli prefix="%{buildroot}%{_prefix}"
|
||||||
|
find %{buildroot} -type f -name '*.a' -exec rm -f {} \;
|
||||||
|
%py3_install
|
||||||
|
|
||||||
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc README.md
|
||||||
|
%license LICENSE
|
||||||
|
%{_libdir}/*.so.1*
|
||||||
|
%{_libdir}/*.so.7*
|
||||||
|
%{_datadir}/grpc
|
||||||
|
|
||||||
|
%files cli
|
||||||
|
%{_bindir}/grpc_cli
|
||||||
|
|
||||||
|
%files plugins
|
||||||
|
%doc README.md
|
||||||
|
%license LICENSE
|
||||||
|
%{_bindir}/grpc_*_plugin
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_libdir}/*.so
|
||||||
|
%{_libdir}/pkgconfig/*
|
||||||
|
%{_includedir}/grpc
|
||||||
|
%{_includedir}/grpc++
|
||||||
|
%{_includedir}/grpcpp
|
||||||
|
|
||||||
|
%files -n python3-grpcio
|
||||||
|
%license LICENSE
|
||||||
|
%{python3_sitearch}/grpc
|
||||||
|
%{python3_sitearch}/grpcio-%{version}-py?.?.egg-info
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Jun 01 2023 Sofia Boldyreva <mooresofia81@gmail.com> - 1.17.1-3
|
||||||
|
- Replaced fedora with almalinux in %prep section to build for AlmaLinux OS 8
|
||||||
|
|
||||||
|
* Mon Dec 17 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.17.1-3
|
||||||
|
- Properly store patch in SRPM
|
||||||
|
|
||||||
|
* Mon Dec 17 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.17.1-2
|
||||||
|
- Build without ruby plugin for Fedora < 30 (Thanks to Mathieu Bridon)
|
||||||
|
|
||||||
|
* Fri Dec 14 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.17.1-1
|
||||||
|
- Update to 1.17.1 and package python bindings
|
||||||
|
|
||||||
|
* Fri Dec 07 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.17.0-1
|
||||||
|
- Initial revision
|
Loading…
Reference in New Issue
Block a user