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