Blob Blame History Raw
diff --git a/3rdparty/Makefile.am b/3rdparty/Makefile.am
index 7cf0c88..6df5526 100644
--- a/3rdparty/Makefile.am
+++ b/3rdparty/Makefile.am
@@ -94,10 +94,6 @@ if WITH_BUNDLED_ZOOKEEPER
 	  $(MAKE) $(AM_MAKEFLAGS)
 
   ALL_LOCAL += $(ZOOKEEPER)/src/c/libzookeeper_mt.la
-else
-  # No matter what, we need to extract ZooKeeper so that we can run
-  # 'make check' (some of our tests need the ZooKeeper JAR).
-  ALL_LOCAL += $(ZOOKEEPER)-stamp
 endif
 
 all-local: $(ALL_LOCAL)
diff --git a/configure.ac b/configure.ac
index 86d448c..75e494c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,6 +19,12 @@
 
 AC_PREREQ([2.61])
 AC_INIT([mesos], [0.23.0])
+MAJOR_VER=0
+MINOR_VER=23
+PATCH_VER=0
+AC_SUBST(MAJOR_VER)
+AC_SUBST(MINOR_VER)
+AC_SUBST(PATCH_VER)
 
 # Have autoconf setup some variables related to the system.
 AC_CANONICAL_HOST
@@ -216,6 +222,8 @@ AC_ARG_VAR([MAVEN_HOME], [looks for mvn at MAVEN_HOME/bin/mvn])
 
 AC_ARG_VAR([PROTOBUF_JAR], [full path to protobuf jar on prefixed builds])
 
+AC_ARG_VAR([ZOOKEEPER_JAR], [full path to zookeeper jar on prefixed builds])
+
 AC_ARG_VAR([PYTHON], [which Python interpreter to use])
 
 AC_MSG_NOTICE([Setting up build environment for ${target_cpu} ${target_os}])
@@ -284,8 +296,18 @@ fi
 if test -n "`echo $with_zookeeper`"; then
   CPPFLAGS="$CPPFLAGS -I${with_zookeeper}/include/zookeeper"
   LDFLAGS="$LDFLAGS -L${with_zookeeper}/lib"
+  if test -z "`echo ZOOKEEPER_JAR`"; then
+    ZOOKEEPER_JAR="${with_zookeeper}/zookeeper.jar"
+  fi
 elif test "x$enable_bundled" = "xno"; then
   CPPFLAGS="$CPPFLAGS -I/usr/include/zookeeper"
+  if test -z "`echo ZOOKEEPER_JAR`"; then
+    ZOOKEEPER_JAR="/usr/share/java/zookeeper/zookeeper.jar"
+  fi
+else
+  if test -z "`echo ZOOKEEPER_JAR`"; then
+    ZOOKEEPER_JAR="3rdparty/zookeeper-3.4.5/zookeeper-3.4.5.jar"
+  fi
 fi
 
 
@@ -400,6 +422,7 @@ fi
 AM_CONDITIONAL([WITH_BUNDLED_ZOOKEEPER],
                [test "x$with_bundled_zookeeper" = "xyes"])
 
+AC_SUBST([ZOOKEEPER_JAR])
 
 # Check if user has asked us to use a preinstalled protobuf, or if
 # they asked us to ignore all bundled libraries while compiling and
diff --git a/src/Makefile.am b/src/Makefile.am
index b821a3b..17fac25 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -27,8 +27,6 @@ include ../3rdparty/libprocess/3rdparty/versions.am
 # them include $(top_builddir) as appropriate.
 DISTRIBUTE = 3rdparty/distribute-$(DISTRIBUTE_VERSION)
 LEVELDB = 3rdparty/leveldb
-ZOOKEEPER = 3rdparty/zookeeper-$(ZOOKEEPER_VERSION)/src/c
-ZOOKEEPER_JAR = 3rdparty/zookeeper-$(ZOOKEEPER_VERSION)/zookeeper-$(ZOOKEEPER_VERSION).jar
 LIBPROCESS = 3rdparty/libprocess
 STOUT = $(LIBPROCESS)/3rdparty/stout
 BOOST = $(LIBPROCESS)/3rdparty/boost-$(BOOST_VERSION)
@@ -38,6 +36,10 @@ GTEST = $(GMOCK)/gtest
 PROTOBUF = $(LIBPROCESS)/3rdparty/protobuf-$(PROTOBUF_VERSION)
 PICOJSON = $(LIBPROCESS)/3rdparty/picojson-$(PICOJSON_VERSION)
 
+if WITH_BUNDLED_ZOOKEEPER
+  ZOOKEEPER = 3rdparty/zookeeper-$(ZOOKEEPER_VERSION)/src/c
+endif
+
 
 # Unfortunatley, 'pkglibexecdir' and 'pkgsysconfdir' are not set
 # before automake 1.11, so we need to set them manually (until we in
@@ -564,7 +566,7 @@ lib_LTLIBRARIES += libmesos.la
 # Include as part of the distribution.
 libmesos_la_SOURCES = $(MESOS_PROTO) $(CONTAINERIZER_PROTO) $(SCHEDULER_PROTO)
 
-libmesos_la_LDFLAGS = -release $(PACKAGE_VERSION)
+libmesos_la_LDFLAGS = -version-info $(MINOR_VER):$(MAJOR_VER):0
 
 # Since we just include the convenience library (and no sources), we
 # need to tell libtool to build this as a C++ library.
@@ -909,7 +911,7 @@ $(EXAMPLES_JAR): $(EXAMPLES_SOURCE)
 	@echo "Building examples.jar ..."
 	$(MKDIR_P) examples/java
 	$(JAVA_HOME)/bin/javac -source 1.6 -target 1.6			\
-          -cp ../$(ZOOKEEPER_JAR):@PROTOBUF_JAR@:$(MESOS_JAR):$(srcdir)/examples/java	\
+          -cp @ZOOKEEPER_JAR@:@PROTOBUF_JAR@:$(MESOS_JAR):$(srcdir)/examples/java	\
           -sourcepath $(srcdir)/examples/java -d examples/java	        \
           $(srcdir)/examples/java/*.java
 	$(JAVA_HOME)/bin/jar cf $@ -C examples/java .
@@ -1160,6 +1162,7 @@ if HAS_JAVA
 
   mesos_tests_CPPFLAGS += $(JAVA_CPPFLAGS)
   mesos_tests_CPPFLAGS += -DZOOKEEPER_VERSION=\"$(ZOOKEEPER_VERSION)\"
+  mesos_tests_CPPFLAGS += -DZOOKEEPER_JAR=\"@ZOOKEEPER_JAR@\"
   mesos_tests_LDFLAGS = $(AM_LDFLAGS)
   mesos_tests_DEPENDENCIES += $(EXAMPLES_JAR)
 
diff --git a/src/examples/java/test-log.in b/src/examples/java/test-log.in
index 4c8547a..7723e73 100644
--- a/src/examples/java/test-log.in
+++ b/src/examples/java/test-log.in
@@ -21,11 +21,10 @@ test ! -e ${PROTOBUF_JAR} && \
 
 # TODO(vinod): Deduce the zookeeper version.
 ZOOKEEPER=${MESOS_BUILD_DIR}/3rdparty/zookeeper-3.4.5
-ZOOKEEPER_JAR=${ZOOKEEPER}/zookeeper-3.4.5.jar
+ZOOKEEPER_JAR=@ZOOKEEPER_JAR@
 
 test ! -e ${ZOOKEEPER_JAR} && \
-  echo "${RED}Failed to find ${ZOOKEEPER_JAR}${NORMAL}" && \
-  exit 1
+  echo "${RED}Failed to find ${ZOOKEEPER_JAR}${NORMAL}"
 
 MESOS_JAR=${MESOS_BUILD_DIR}/src/java/target/mesos-@PACKAGE_VERSION@.jar
 
diff --git a/src/tests/zookeeper.cpp b/src/tests/zookeeper.cpp
index 08cab86..1e6e315 100644
--- a/src/tests/zookeeper.cpp
+++ b/src/tests/zookeeper.cpp
@@ -56,16 +56,17 @@ const Duration ZooKeeperTest::NO_TIMEOUT = Seconds(10);
 void ZooKeeperTest::SetUpTestCase()
 {
   if (!Jvm::created()) {
+    string classpath = "-Djava.class.path=" ZOOKEEPER_JAR;
+
+#ifdef BUNDLED
     string zkHome =
       path::join(flags.build_dir, "/3rdparty/zookeeper-" ZOOKEEPER_VERSION);
 
-    string classpath = "-Djava.class.path=" +
-      path::join(zkHome, "zookeeper-" ZOOKEEPER_VERSION ".jar");
-
     // Now add all the libraries in 'lib' too.
     Try<list<string> > jars = os::glob(path::join(zkHome, "lib", "*.jar"));
 
     CHECK_SOME(jars);
+#endif
 
     foreach (const string& jar, jars.get()) {
       classpath += ":" + jar;