rethinkdb 2.3.6 - levivic/zEcoTest GitHub Wiki
Building RethinkDB
RethinkDB is the open-source, scalable database that makes building realtime apps dramatically easier. Version 2.3.6 of RethinkDB has been built and tested on Linux on z Systems. The following instructions can be used for Ubuntu 16.04 and Alpine 3.6.
General Note:
- When following the steps below please use a standard permission user unless otherwise specified
- A directory
/<source_root>/
will be referred to in these instructions, this is a temporary writable directory anywhere you'd like to place it
Building and Installing RethinkDB
Step 1: Install the Dependencies
- Ubuntu 16.04
sudo apt-get update
sudo apt-get install -y build-essential protobuf-compiler python libprotobuf-dev libcurl4-openssl-dev libboost-all-dev libncurses5-dev libjemalloc-dev wget m4 libssl-dev git
- Alpine 3.6
apk update
apk add gcc g++ protobuf-dev jemalloc-dev boost-dev libssh2 openssl-dev python curl-dev libexecinfo-dev make wget tar patch curl unzip autoconf automake libtool icu-dev git bsd-compat-headers m4 paxmark unzip vim
Step 2: Clone and build RethinkDB
cd /<source root>/
git clone https://github.com/linux-on-ibm-z/rethinkdb.git --branch v2.3.6-s390x
cd rethinkdb/
For Ubuntu:
./configure --allow-fetch
make -j 4
For Alpine:
Make changes to src/arch/runtime/coroutines.hpp
@@ -17,7 +17,7 @@
// Enable cross-coroutine backtraces in debug mode, or when coro profiling is enabled.
// We don't enable it on ARM, because taking backtraces currently isn't working
// reliably and sometimes causes crashes.
-#if (!defined(NDEBUG) && !defined(__MACH__) && !defined(__arm__)) \
+#if (!defined(NDEBUG) && !defined(__MACH__) && !defined(__arm__)) && !defined(__s390x__) \
|| defined(ENABLE_CORO_PROFILER)
#define CROSS_CORO_BACKTRACES 1
#endif
./configure --allow-fetch LDFLAGS=-lexecinfo
make -j 4
Note: make -j 4
will execute up to 4 build tasks in parallel. This number may be increased or decreased as necessary to match the resources available on the machine. Also note that the current porting on Alpine doesn't pass all unit tests due to the implementation of backtrace
in a third party library libexecinfo .
Step 3: Install RethinkDB
sudo make install
Step 4: Start RethinkDB server
rethinkdb --bind all
(Optional) Testing RethinkDB
Execute Unit Tests
cd /<source root>/rethinkdb
make -j 4 DEBUG=1
./test/run unit -j 4
Note: ./test/run unit -j 4
will execute up to 4 unit tests in parallel. This number may be increased or decreased to match the resources available on the machine. There are errors left on Alpine due to the libexecinfo
issue.
Execute Integration Tests
cd /<source root>/rethinkdb
./test/run -j 4
Note: There is a known failure when running test cases of type FAIL regression.known_failures_1774. This can be safely ignored. There is another failure regarding cpplint.cpplint
, which might be due to the v8 dependency workaround.