Query - pre-built binaries used for dependencies

As I am building the couchbase from source on ppc64le platform; I observed that there are places where it’s using the pre-built binaries for some of the dependencies.
Ex. tlm/cmake/Modules/FindCouchbaseJava.cmake This file is downloading the pre-built binary for oracle-JDK as per the _platform value being set.

Also observed that some other dependencies are being build runtime, hence wondering what would be the reason to use pre-built binaries?
For ppc64le I am building those particular modules manually, though would like to understand if those binaries have any additional changes/patches being applied before using for couchbase-build.


This directory contains scripts and manifests, which used by our build system to prepare Couchbase dependencies: https://github.com/couchbase/tlm/tree/master/deps

You can use these scripts to build all dependencies for your system and put them into $HOME/.cbdepscache or publish somewhere and change this URL:

What related to oracle java, you can use CB_DOWNLOAD_JAVA cmake variable to switch it off (and btw it should be OFF by default). In this case, the scripts will try to use your system java (just make sure it is Oracle JDK).

@avsej - Appreciate the help provided by you!

I have couple of queries -

  1. Could you please help me further for understanding the steps to build deps packages on ppc64le architecture? What is required in DOWNLOAD_COMMAND while building packages from deps directory ?

  2. I have build couchbase version 5.0.0 by downloading dependencies
    from git URLs and also installing already available packages from distribution like snappy,boost etc ,
    but right now we are facing segmentation fault while running couchdb module unit test cases (specifically observed while updating map reduce view) , which is random, so I wonder , what is the cause and hence started looking from any specific dependencies version for couchbase. So
    please do let me know if any specific requirements for each dependency version?

  3. Do you have any Travis CI which we can refer for understanding build steps please?
    Also any documentation/any pointers for understanding the build steps would help me to proceed further?

Take a look in tlm/deps/ - that contains the CMakeFiles to actually build all the dependancies. They will be saved in the build tree, but if you copy to ~/.cbdepscache/ then the cbdeps “download” mechanism will use those instead trying to download from.

See above; if you build the specific versions then you will have the same versions as we ship. I can’t comment on possible architecture issues with PPC64.

There is a Jenkins server which runs commit-validation jobs at: http://cv.jenkins.couchbase.com/view/Commit%20Validation/view/tlm/job/tlm-gerrit-master/ - you can see how the build runs there.