# Building `librocksdb` Instructions for building rocksdb prior to creating a Mitto Debian package. Assumes that the Mitto 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 Mitto $ 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 Mitto Debian package when it is built. Their exact location and path must be correct for packaging and package installation to work. ## Mitto ### Update Mitto 1. `mitto/DEBIAN/Makefile` 2. Possibly `mitto/DEBIAN/debian/postinst` ### Build Mitto Debian Package Once rocksdb is built, Mitto 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.