Only build the Ruby plugin on Fedora >= 30

Fedora < 30 have protobuf 3.5, which doesn't have the required parts to
build the Ruby plugin.

We can't update protobuf there, because upstream bumped the soname which
goes contrary to the Fedora update policy.

As a result, if we want Fedora 28 and 29 to have gRPC, we have to
disable its Ruby plugin.

Upstream doesn't seem to have an easy way to just not build it, so this
commit introduces a patch to remove it from the Makefile.

This should be okay, since it's only temporary anyway: Fedora 30 (and
future releases) already have a recent enough protobuf so this won't be
necessary any more.
This commit is contained in:
Mathieu Bridon 2018-12-17 11:46:12 +01:00
parent 637ef6452b
commit b3bb2c60a8
2 changed files with 47 additions and 0 deletions

View 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

View File

@ -25,6 +25,10 @@ Patch0: 0001-enforce-system-crypto-policies.patch
# https://github.com/grpc/grpc/pull/15532
Patch1: 0002-patch-from-15532.patch
%if 0%{?fedora} < 30
Patch2: 0001-Do-not-build-the-Ruby-plugin.patch
%endif
%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