You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ch...@apache.org on 2018/05/09 19:05:49 UTC

[2/6] mesos git commit: Removed the OpenSSL dependency for building gRPC in libprocess.

Removed the OpenSSL dependency for building gRPC in libprocess.

When the SSL build feature is disabled, libprocess now builds
`libgrpc_unsecure` and `libgrpc++_unsecure` instead of `libgrpc` and
`libgrpc++`, so the SSL headers and libraries are no longer required.

Review: https://reviews.apache.org/r/66997


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/296ba1e4
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/296ba1e4
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/296ba1e4

Branch: refs/heads/master
Commit: 296ba1e41517ea95adfc59300116078581fe5987
Parents: b74821c
Author: Chun-Hung Hsiao <ch...@mesosphere.io>
Authored: Mon May 7 16:39:29 2018 -0700
Committer: Chun-Hung Hsiao <ch...@mesosphere.io>
Committed: Wed May 9 12:05:13 2018 -0700

----------------------------------------------------------------------
 3rdparty/libprocess/3rdparty/Makefile.am | 29 +++++++++++++++++++--------
 3rdparty/libprocess/Makefile.am          | 13 +++++++-----
 3rdparty/libprocess/configure.ac         | 14 +++++--------
 3 files changed, 34 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/296ba1e4/3rdparty/libprocess/3rdparty/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/Makefile.am b/3rdparty/libprocess/3rdparty/Makefile.am
index f7f0bed..d13e93f 100644
--- a/3rdparty/libprocess/3rdparty/Makefile.am
+++ b/3rdparty/libprocess/3rdparty/Makefile.am
@@ -204,26 +204,39 @@ PROTOC = @PROTOCOMPILER@
 endif
 
 if ENABLE_GRPC
+if !ENABLE_SSL
+GRPC_VARIANT = _unsecure
+endif
+
 if WITH_BUNDLED_GRPC
-LIB_GRPC = $(GRPC)/libs/opt/libgrpc++.a			\
-           $(GRPC)/libs/opt/libgrpc.a			\
+LIB_GRPC = $(GRPC)/libs/opt/libgrpc++$(GRPC_VARIANT).a	\
+           $(GRPC)/libs/opt/libgrpc$(GRPC_VARIANT).a	\
            $(GRPC)/libs/opt/libgpr.a
 
 $(LIB_GRPC): $(GRPC)-build-stamp
 
+# NOTE: We the include flags through the `CPPFLAGS` environment variable rather
+# than the command line because gRPC uses target-specific assignments to append
+# flags to `CPPFLAGS`, which will be overwritten by command line arguments. See:
+# https://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html
 $(GRPC)-build-stamp: $(GRPC)-stamp			\
                      $(PROTOBUF)-build-stamp
 	cd $(GRPC) &&					\
 	  CPPFLAGS="$(PROTOBUF_INCLUDE_FLAGS)		\
 	            $(SSL_INCLUDE_FLAGS)		\
 	            $(ZLIB_INCLUDE_FLAGS)"		\
-	  LDFLAGS="$(PROTOBUF_LINKER_FLAGS)		\
-	           $(SSL_LINKER_FLAGS)			\
-	           $(ZLIB_LINKERFLAGS)"			\
 	  $(MAKE) $(AM_MAKEFLAGS)			\
-	          HAS_PKG_CONFIG=false			\
-	          NO_PROTOC=false			\
-	          PROTOC=$(PROTOC)
+	    $(LIB_GRPC:%=$(abs_builddir)/%)		\
+	    CC="$(CC)"					\
+	    CXX="$(CXX)"				\
+	    LD="$(CC)"					\
+	    LDXX="$(CXX)"				\
+	    LDFLAGS="$(PROTOBUF_LINKER_FLAGS)		\
+	             $(SSL_LINKER_FLAGS)		\
+	             $(ZLIB_LINKER_FLAGS)"		\
+	    HAS_PKG_CONFIG=false			\
+	    NO_PROTOC=false				\
+	    PROTOC="$(PROTOC)"
 	touch $@
 
 ALL_LOCAL += $(LIB_GRPC)

http://git-wip-us.apache.org/repos/asf/mesos/blob/296ba1e4/3rdparty/libprocess/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/Makefile.am b/3rdparty/libprocess/Makefile.am
index 70edb2e..b1d77f3 100644
--- a/3rdparty/libprocess/Makefile.am
+++ b/3rdparty/libprocess/Makefile.am
@@ -113,12 +113,15 @@ BUNDLED_DEPS += $(GPERFTOOLS)-build-stamp
 endif
 
 if ENABLE_GRPC
+if !ENABLE_SSL
+GRPC_VARIANT = _unsecure
+endif
+
 if WITH_BUNDLED_GRPC
 GRPC_INCLUDE_FLAGS = -I$(GRPC)/include
-LIB_GRPC = $(GRPC)/libs/opt/libgrpc++.a	\
-           $(GRPC)/libs/opt/libgrpc.a	\
-           $(GRPC)/libs/opt/libgpr.a	\
-           -lssl -lcrypto
+LIB_GRPC = $(GRPC)/libs/opt/libgrpc++$(GRPC_VARIANT).a	\
+           $(GRPC)/libs/opt/libgrpc$(GRPC_VARIANT).a	\
+           $(GRPC)/libs/opt/libgpr.a
 GRPC_CPP_PLUGIN = $(GRPC)/bins/opt/grpc_cpp_plugin
 
 # NOTE: We need to specify the dependency between Protobuf and gRPC
@@ -129,7 +132,7 @@ $(GRPC)-build-stamp: $(PROTOBUF)-build-stamp
 $(LIB_GRPC): $(GRPC)-build-stamp
 BUNDLED_DEPS += $(GRPC)-build-stamp
 else
-LIB_GRPC = -lgrpc++ -lgrpc -lgpr -lssl -lcrypto
+LIB_GRPC = -lgrpc++$(GRPC_VARIANT) -lgrpc$(GRPC_VARIANT) -lgpr
 GRPC_CPP_PLUGIN = @GRPC_CXX_PLUGIN@
 endif
 endif

http://git-wip-us.apache.org/repos/asf/mesos/blob/296ba1e4/3rdparty/libprocess/configure.ac
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/configure.ac b/3rdparty/libprocess/configure.ac
index fd65d70..083cf8b 100644
--- a/3rdparty/libprocess/configure.ac
+++ b/3rdparty/libprocess/configure.ac
@@ -1160,9 +1160,13 @@ if test "x$enable_grpc" = "xyes"; then
       GRPCPREFIX="/usr"
     fi
 
+    if test "x$enable_ssl" = "xno"; then
+      GRPC_VARIANT="_unsecure"
+    fi
+
     # Check if headers and library were located.
     saved_LIBS="$LIBS"
-    LIBS="-lgrpc++ -lgrpc -lgpr $LIBS"
+    LIBS="-lgrpc++$GRPC_VARIANT -lgrpc$GRPC_VARIANT -lgpr $LIBS"
     AC_LANG_PUSH([C++])
     AC_CHECK_HEADERS([grpcpp/grpcpp.h],
                      [AC_LINK_IFELSE(
@@ -1201,14 +1205,6 @@ correct if you are already doing this.
       ])
     fi
   else
-    if test "x$found_ssl" != "xyes"; then
-      AC_MSG_ERROR([cannot find libssl
--------------------------------------------------------------------
-libssl is required for gRPC to build.
--------------------------------------------------------------------
-      ])
-    fi
-
     with_bundled_grpc=yes
   fi
 fi