You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by da...@apache.org on 2016/01/21 06:03:49 UTC

incubator-kudu git commit: Bump squeasel version

Repository: incubator-kudu
Updated Branches:
  refs/heads/master 3a31cfcb0 -> 4d8fbe7ee


Bump squeasel version

The new version of squeasel goes back to using dlopen for OpenSSL, which fixes
an issue we have hit on Centos 6 with incompatible OpenSSL versions:

Between Centos 6.4 and 6.6 the OpenSSL version was bumped from 1.0.0 to 1.0.1e.
Between the 1.0.0 and 1.0.1e versions, Red Hat introduced symbol versioning for
OpenSSL, which results in any application which is compiled against the newer
version being incompatible with the older version at runtime (or installation
time as the rpm tool knows about the symbol version dependency). As part of moving
to C++11, Kudu recently changed from building releases on Centos 6.4 to Centos
6.6 (and consequently from compiling against OpenSSL 1.0.0 to OpenSSL 1.0.1e).
The result is that Kudu RPMs are failing to install on Centos 6.4. Switching to
dynamic opening of OpenSSL in Squeasel breaks the direct dependency chain, and
allows packaged Kudu to once again work on Centos 6.4.

Change-Id: I5a9903703c3c97e3cc70640a82662ed14dc233fa
Reviewed-on: http://gerrit.cloudera.org:8080/1849
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Internal Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/4d8fbe7e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/4d8fbe7e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/4d8fbe7e

Branch: refs/heads/master
Commit: 4d8fbe7ee018543db25cc6f82fd98d4546deae3c
Parents: 3a31cfc
Author: Dan Burkert <da...@cloudera.com>
Authored: Tue Jan 19 11:30:01 2016 -0800
Committer: Dan Burkert <da...@cloudera.com>
Committed: Thu Jan 21 05:02:59 2016 +0000

----------------------------------------------------------------------
 CMakeLists.txt                   | 13 ++++---------
 cmake_modules/FindSqueasel.cmake | 12 ------------
 src/kudu/server/CMakeLists.txt   |  4 +---
 thirdparty/build-definitions.sh  |  2 +-
 thirdparty/vars.sh               |  2 +-
 5 files changed, 7 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/4d8fbe7e/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index aec6079..e8e3117 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -726,15 +726,10 @@ ADD_THIRDPARTY_LIB(zlib
   SHARED_LIB "${ZLIB_SHARED_LIB}")
 
 ## Squeasel
-## Doesn't build on OSX, skipping it means Kudu doesn't build!
-## TODO Make it work.
-if (NOT APPLE)
-  find_package(Squeasel REQUIRED)
-  include_directories(SYSTEM ${SQUEASEL_INCLUDE_DIR})
-  ADD_THIRDPARTY_LIB(squeasel
-    STATIC_LIB "${SQUEASEL_STATIC_LIB}"
-    DEPS ${SQUEASEL_STATIC_LIB_DEPS})
-endif()
+find_package(Squeasel REQUIRED)
+include_directories(SYSTEM ${SQUEASEL_INCLUDE_DIR})
+ADD_THIRDPARTY_LIB(squeasel
+  STATIC_LIB "${SQUEASEL_STATIC_LIB}")
 
 ## Google PerfTools
 ##

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/4d8fbe7e/cmake_modules/FindSqueasel.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindSqueasel.cmake b/cmake_modules/FindSqueasel.cmake
index 2d48e27..631a4bf 100644
--- a/cmake_modules/FindSqueasel.cmake
+++ b/cmake_modules/FindSqueasel.cmake
@@ -19,7 +19,6 @@
 #  SQUEASEL_INCLUDE_DIR, directory containing headers
 #  SQUEASEL_STATIC_LIB, path to libsqueasel.a
 #  SQUEASEL_FOUND, whether squeasel has been found
-#  SQUEASEL_STATIC_LIB_DEPS other libraries that are dependencies for SQUEASEL_STATIC_LIB
 
 find_path(SQUEASEL_INCLUDE_DIR squeasel.h
   # make sure we don't accidentally pick up a different version
@@ -33,14 +32,3 @@ find_library(SQUEASEL_STATIC_LIB libsqueasel.a
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(SQUEASEL REQUIRED_VARS
   SQUEASEL_STATIC_LIB SQUEASEL_INCLUDE_DIR)
-
-# Add OpenSSL libs to the linker path
-find_package(OpenSSL REQUIRED)
-if (OPENSSL_FOUND)
-  set(SQUEASEL_STATIC_LIB_DEPS ${OPENSSL_LIBRARIES})
-else ()
-  if (NOT Squeasel_FIND_QUIETLY)
-    message(FATAL_ERROR "Cannot find OpenSSL library")
-  endif ()
-endif ()
-

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/4d8fbe7e/src/kudu/server/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/kudu/server/CMakeLists.txt b/src/kudu/server/CMakeLists.txt
index c1bc032..5f67892 100644
--- a/src/kudu/server/CMakeLists.txt
+++ b/src/kudu/server/CMakeLists.txt
@@ -89,9 +89,7 @@ target_link_libraries(server_process
   gutil
   krpc
   kudu_util
-  squeasel
-  crypto
-  ssl)
+  squeasel)
 
 # This module depends on tcmalloc and profiler directly, so need to make
 # sure that they get linked in the right order.

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/4d8fbe7e/thirdparty/build-definitions.sh
----------------------------------------------------------------------
diff --git a/thirdparty/build-definitions.sh b/thirdparty/build-definitions.sh
index 7945ae7..e85d68f 100644
--- a/thirdparty/build-definitions.sh
+++ b/thirdparty/build-definitions.sh
@@ -225,7 +225,7 @@ build_squeasel() {
   # Mongoose's Makefile builds a standalone web server, whereas we just want
   # a static lib
   cd $SQUEASEL_DIR
-  ${CC:-gcc} $EXTRA_CFLAGS -std=c99 -O3 -DNDEBUG -DNO_SSL_DL -fPIC -c squeasel.c
+  ${CC:-gcc} $EXTRA_CFLAGS -std=c99 -O3 -DNDEBUG -fPIC -c squeasel.c
   ar rs libsqueasel.a squeasel.o
   cp libsqueasel.a $PREFIX/lib/
   cp squeasel.h $PREFIX/include/

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/4d8fbe7e/thirdparty/vars.sh
----------------------------------------------------------------------
diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh
index f8df92f..234dfc8 100644
--- a/thirdparty/vars.sh
+++ b/thirdparty/vars.sh
@@ -76,7 +76,7 @@ RAPIDJSON_DIR=$TP_DIR/rapidjson-${RAPIDJSON_VERSION}
 #  s3cmd put -P /tmp/$NAME.tar.gz s3://cloudera-thirdparty-libs/$NAME.tar.gz
 #
 # File a HD ticket for access to the cloudera-dev AWS instance to push to S3.
-SQUEASEL_VERSION=fe28fe62b80c2e8a5e6a7d23e58369309958dc26
+SQUEASEL_VERSION=8ac777a122fccf0358cb8562e900f8e9edd9ed11
 SQUEASEL_DIR=$TP_DIR/squeasel-${SQUEASEL_VERSION}
 
 # SVN revision of google style guide: