# Building `librocksdb` Instructions for building rocksdb prior to creating a Zuar Runner Debian package. Assumes that the Zuar Runner repo is located in `~/mitto` and the rocksdb repo is located in `~/rocksdb`. On the build machine, get and build rocksdb. ``` $ cd ~ $ ROCKSDB_VER=v6.17.3 $ git clone -b ${ROCKSDB_VER} --depth 1 https://github.com/facebook/rocksdb.git $ cd rocksdb \ # If PORTABLE isn't set, one runs the risk of creating a library with # instructions using CPU features that may not be present in the # target systems. $ PORTABLE=1 make shared_lib # Not necessary to build, but necessary to actually run Zuar Runner $ sudo make INSTALL_PATH=/usr install-shared ``` The above will create the following files/links: ``` $ cd ~ $ ls -ltr rocksdb/librocksdb* -rwxr-xr-x 1 khe khe 169760472 Mar 18 08:58 rocksdb/librocksdb.so.6.17.3* lrwxrwxrwx 1 khe khe 20 Mar 18 08:58 rocksdb/librocksdb.so.6.17 -> librocksdb.so.6.17.3* lrwxrwxrwx 1 khe khe 20 Mar 18 08:58 rocksdb/librocksdb.so.6 -> librocksdb.so.6.17.3* lrwxrwxrwx 1 khe khe 20 Mar 18 08:58 rocksdb/librocksdb.so -> librocksdb.so.6.17.3* ``` The `.so` file and related links are included in the Zuar Runner Debian package when it is built. Their exact location and path must be correct for packaging and package installation to work. ## Zuar Runner ### Update Zuar Runner 1. `mitto/DEBIAN/Makefile` 2. Possibly `mitto/DEBIAN/debian/postinst` ### Build Zuar Runner Debian Package Once rocksdb is built, Zuar Runner can be built. ``` $ cd ~/mitto $ make all # will eventually 'make DEBIAN' ``` ## CircleCI Repo If the version of rocksdb has changed, the following must be updated: 1. `Dockerfile` in `circleci` repo. Build and push a new Docker image to CircleCI.