From 4c3eb64a21c7a2ce8f9d08e9e67d3b738b8de835 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 21 Oct 2020 21:54:27 -0700 Subject: [PATCH] Updated BUILD (markdown) --- BUILD.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/BUILD.md b/BUILD.md index 3636616..081bee4 100644 --- a/BUILD.md +++ b/BUILD.md @@ -5,7 +5,7 @@ - Ubuntu Cosmic (18.10) through Focal (20.04): ```autoconf autoconf-archive autoconf2.13 automake autotools-dev boost1.71 build-essential git libbz2-dev libmagic-dev libnss-db libsodium-dev libssl-dev libtool shtool xz-utils libgraphicsmagick1-dev libgraphicsmagick-q16-3 libicu-dev libjemalloc-dev liblz4-dev libzstd-dev librocksdb-dev clang-10``` - THE COMPLETE SOURCE-CODE OF ROCKSDB MUST BE AVAILABLE TO BUILD CONSTRUCT. This is different from the `include/` and `lib/` files installed by your distribution's package system. Most platforms do not have to build the source, but it must be available. + ❗ THE COMPLETE SOURCE-CODE OF ROCKSDB MUST BE AVAILABLE TO BUILD CONSTRUCT. This is different from the `include/` and `lib/` files installed by your distribution's package system. Most platforms do not have to build the source, but it must be available. ``` git submodule update --init deps/rocksdb @@ -16,15 +16,20 @@ > 👉 For best performance and stability, please check for the version available on your system and match that with the `git checkout` command above. + > 🛑 RocksDB 6.10.X and 6.11.X have a bug and should not be used. If you are affected by these versions please add `--with-included-rocksdb=v6.12.6` to `./configure` when instructed below. + 2. **Review special requirements for your platform** - - Ubuntu (ALL RELEASES): + - #### Arch Linux + RocksDB versions 6.10.X and 6.11.X should not be used. If the RocksDB package version falls within this range (i.e. 6.10.2-1) you must configure with `--with-included-rocksdb=v6.12.6`. + + - #### Ubuntu You must configure Construct with the option `--with-included-rocksdb`. This will fetch and properly build rocksdb. > Ubuntu builds their library with `-Bsymbolic-functions`. This conflicts with the requirements of Construct's embedding. - - Ubuntu Bionic (18.04) and earlier: + - ##### Ubuntu Bionic (18.04) and earlier Remove `boost1.71` from the package list in the earlier section; add `--with-included-boost` to `./configure` when instructed below. @@ -42,10 +47,10 @@ especially for development. Example `--prefix=$HOME/.local/`. 4. **Build Construct** - > 🛑 Do not set your `--prefix` path to a directory inside your git repository or an invocation of `git clean` will erase your database in $prefix/var/db/. - > ❗ Any `--with-included-*` option to configure will fetch, configure **and build** the dependencies included as submodules. The result cannot be installed on the system without this repository remaining intact. Please review the special requirements first to understand which options you need or don't need on your system. + > 👉 Do not set your `--prefix` path to a directory inside your git repository or an invocation of `git clean` will erase your database in $prefix/var/db/. + ``` export CXX=clang++ export CC=clang @@ -70,7 +75,7 @@ git reset --hard && git clean -f -x -d Those wishing to contribute new functionality or diagnose difficult bugs will benefit from several configuration options. This configuration generates a significant amount of additional code and instrumentation, in addition to full debug logging. The server may consume additional CPU and memory resources. -> Until the resolution of [#84](https://github.com/matrix-construct/construct/issues/84) it is advised to sterilize the build environment before any re-`./configure`. +> ❗ Until the resolution of [#84](https://github.com/matrix-construct/construct/issues/84) it is advised to sterilize the build environment before any re-`./configure`. > All `--with-included-` and other platform-specific build options remain the same and must be applied to these recipes.