2012-02-25 11:30:03 +04:00
|
|
|
#!/bin/bash
|
|
|
|
|
2012-06-07 22:55:06 +04:00
|
|
|
# Copyright 2012, Google Inc. All rights reserved.
|
|
|
|
# Use of this source code is governed by a BSD-style license that can
|
|
|
|
# be found in the LICENSE file.
|
2012-02-25 11:30:03 +04:00
|
|
|
|
|
|
|
if [ ! -f bootstrap.sh ]; then
|
|
|
|
echo "bootstrap.sh must be run from its current directory" 1>&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
. ./dev.env
|
|
|
|
|
2012-09-13 22:12:27 +04:00
|
|
|
mkdir -p $VTROOT/dist
|
|
|
|
mkdir -p $VTROOT/bin
|
|
|
|
mkdir -p $VTROOT/lib
|
2012-10-27 00:11:44 +04:00
|
|
|
mkdir -p $VTROOT/vthook
|
2012-06-04 09:24:54 +04:00
|
|
|
|
2013-07-18 01:07:28 +04:00
|
|
|
# install zookeeper
|
|
|
|
zk_dist=$VTROOT/dist/vt-zookeeper-3.3.5
|
|
|
|
if [ -d $zk_dist ]; then
|
|
|
|
echo "skipping zookeeper build"
|
|
|
|
else
|
|
|
|
(cd $VTTOP/third_party/zookeeper && \
|
|
|
|
tar -xjf zookeeper-3.3.5.tbz && \
|
|
|
|
mkdir -p $zk_dist/lib && \
|
|
|
|
cp zookeeper-3.3.5/contrib/fatjar/zookeeper-3.3.5-fatjar.jar $zk_dist/lib && \
|
|
|
|
(cd zookeeper-3.3.5/src/c && \
|
|
|
|
./configure --prefix=$zk_dist && \
|
|
|
|
make -j3 install) && rm -rf zookeeper-3.3.5)
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "zookeeper build failed"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
ln -nfs $VTTOP/third_party/go/launchpad.net $VTROOT/src
|
|
|
|
go install launchpad.net/gozk/zookeeper
|
|
|
|
|
|
|
|
# FIXME(szopa): Get rid of this dependency.
|
|
|
|
# install opts-go
|
2013-12-25 02:28:19 +04:00
|
|
|
go get code.google.com/p/opts-go
|
2014-04-17 20:59:13 +04:00
|
|
|
go get code.google.com/p/goprotobuf/proto
|
2014-05-08 22:34:58 +04:00
|
|
|
go get code.google.com/p/go.tools/cmd/goimports
|
2013-07-31 03:17:41 +04:00
|
|
|
go get github.com/golang/glog
|
2013-07-18 01:07:28 +04:00
|
|
|
|
2013-03-09 00:01:49 +04:00
|
|
|
ln -snf $VTTOP/config $VTROOT/config
|
|
|
|
ln -snf $VTTOP/data $VTROOT/data
|
|
|
|
ln -snf $VTTOP/py $VTROOT/py-vtdb
|
|
|
|
ln -snf $VTTOP/go/zk/zkctl/zksrv.sh $VTROOT/bin/zksrv.sh
|
2014-04-04 22:33:57 +04:00
|
|
|
ln -snf $VTTOP/test/vthook-test.sh $VTROOT/vthook/test.sh
|
2013-03-09 00:01:49 +04:00
|
|
|
|
2013-07-19 04:24:47 +04:00
|
|
|
# install mysql
|
|
|
|
if [ -d $VTROOT/dist/mysql ];
|
|
|
|
then
|
|
|
|
echo "skipping MySQL build"
|
|
|
|
else
|
2014-04-03 01:52:07 +04:00
|
|
|
case "$MYSQL_FLAVOR" in
|
|
|
|
"MariaDB")
|
|
|
|
echo "Getting and compiling MariaDB"
|
|
|
|
# MariaDB may require cmake and libaio-dev to compile, I ran:
|
|
|
|
# sudo apt-get install cmake
|
|
|
|
# sudo apt-get install libaio-dev
|
|
|
|
echo "Downloading and compiling MariaDB"
|
|
|
|
pushd third_party
|
|
|
|
version="10.0.10"
|
|
|
|
wget https://downloads.mariadb.org/interstitial/mariadb-${version}/kvm-tarbake-jaunty-x86/mariadb-${version}.tar.gz
|
|
|
|
tar xzf mariadb-${version}.tar.gz
|
|
|
|
popd
|
2013-07-19 04:24:47 +04:00
|
|
|
|
2014-04-03 01:52:07 +04:00
|
|
|
pushd third_party/mariadb-${version}
|
|
|
|
cmake . -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=$VTROOT/dist/mysql
|
|
|
|
make -j 8 install
|
|
|
|
rm -rf $VTROOT/dist/mysql/mysql-test
|
|
|
|
rm -rf $VTROOT/dist/mysql/sql-bench
|
|
|
|
popd
|
|
|
|
rm -rf third_party/mariadb-${version}.tar.gz third_party/mariadb-${version}
|
|
|
|
;;
|
2013-07-19 04:24:47 +04:00
|
|
|
|
2014-04-03 01:52:07 +04:00
|
|
|
*)
|
|
|
|
echo "Getting and compiling Google MySQL"
|
|
|
|
git clone https://code.google.com/r/sougou-vitess-mysql/ third_party/mysql
|
|
|
|
pushd third_party/mysql
|
|
|
|
set -e
|
|
|
|
git apply ../mysql.patch
|
|
|
|
export VT_MYSQL_ROOT=$VTROOT/dist/mysql
|
|
|
|
source google/env.inc
|
|
|
|
source google/compile.inc
|
2013-07-19 04:24:47 +04:00
|
|
|
|
2014-04-03 01:52:07 +04:00
|
|
|
# Install
|
|
|
|
make -s install #DESTDIR=$VTROOT/dist/mysql
|
|
|
|
rm -rf $VTROOT/dist/mysql/mysql-test
|
|
|
|
rm -rf $VTROOT/dist/mysql/sql-bench
|
|
|
|
popd
|
|
|
|
rm -rf third_party/mysql
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
2013-07-19 04:24:47 +04:00
|
|
|
|
2012-09-13 22:12:27 +04:00
|
|
|
# generate pkg-config, so go can use mysql C client
|
|
|
|
if [ ! -x $VT_MYSQL_ROOT/bin/mysql_config ]; then
|
|
|
|
echo "cannot execute $VT_MYSQL_ROOT/bin/mysql_config, exiting" 1>&2
|
|
|
|
exit 1
|
2012-09-05 01:20:28 +04:00
|
|
|
fi
|
2013-07-18 01:07:28 +04:00
|
|
|
|
2012-09-13 22:12:27 +04:00
|
|
|
cp $VTTOP/config/gomysql.pc.tmpl $VTROOT/lib/gomysql.pc
|
|
|
|
echo "Version:" "$($VT_MYSQL_ROOT/bin/mysql_config --version)" >> $VTROOT/lib/gomysql.pc
|
|
|
|
echo "Cflags:" "$($VT_MYSQL_ROOT/bin/mysql_config --cflags) -ggdb -fPIC" >> $VTROOT/lib/gomysql.pc
|
|
|
|
echo "Libs:" "$($VT_MYSQL_ROOT/bin/mysql_config --libs_r)" >> $VTROOT/lib/gomysql.pc
|
2012-09-05 01:20:28 +04:00
|
|
|
|
2012-09-13 22:12:27 +04:00
|
|
|
# install bson
|
2012-06-04 09:24:54 +04:00
|
|
|
bson_dist=$VTROOT/dist/py-vt-bson-0.3.2
|
2012-02-25 11:30:03 +04:00
|
|
|
if [ -d $bson_dist ]; then
|
|
|
|
echo "skipping bson python build"
|
|
|
|
else
|
|
|
|
cd $VTTOP/third_party/py/bson-0.3.2 && \
|
2013-07-20 02:53:56 +04:00
|
|
|
python ./setup.py install --prefix=$bson_dist && \
|
|
|
|
rm -r build
|
2012-02-25 11:30:03 +04:00
|
|
|
fi
|
|
|
|
|
2012-08-30 22:46:16 +04:00
|
|
|
# install cbson
|
2012-09-05 01:32:02 +04:00
|
|
|
cbson_dist=$VTROOT/dist/py-cbson
|
|
|
|
if [ -d $cbson_dist ]; then
|
|
|
|
echo "skipping cbson python build"
|
|
|
|
else
|
|
|
|
cd $VTTOP/py/cbson && \
|
|
|
|
python ./setup.py install --prefix=$cbson_dist
|
|
|
|
fi
|
2012-09-05 01:20:28 +04:00
|
|
|
|
2013-07-20 03:23:02 +04:00
|
|
|
# create pre-commit hooks
|
|
|
|
echo "creating git pre-commit hooks"
|
|
|
|
ln -sf $VTTOP/misc/git/pre-commit $VTTOP/.git/hooks/pre-commit
|
2012-02-25 11:30:03 +04:00
|
|
|
echo "source dev.env in your shell to complete the setup."
|