helpers is a part of onedata system that unifies access to files stored at heterogeneous data storage systems that belong to geographically distributed organizations.
The goal of helpers is provision of a "storage helpers" - libraries allowing access to all supported by onedata (self-scalable cluster that will is a central point of each data centre that uses onedata) filesystems.
helpers is built with CMake. More information about compiling the project in "Compilation" section.
In order to compile the project, you need to have fallowing additional libraries, its headers and all its prerequisites in include/ld path:
- libfuse (only headers needed)
- libboost
- libprotobuf
- libtbb
- folly
- librados (when compiling with Ceph support)
- aws-sdk-cpp-s3 (when compiling with S3 support)
- Swift_CPP_SDK (when compiling with Swift support)
- OpenSSL (when compiling with OpenSSL instead of BoringSSL)
Also you need cmake 2.8+. Use this command to install the required dependency packages:
-
Debian/Ubuntu Dependencies (.deb packages):
apt-get install libfuse-dev libboost-dev libprotobuf-dev
-
RHEL/CentOS/Fedora Dependencies (.rpm packages):
yum install fuse-libs fuse-devel cmake28 boost-devel boost-static subversion protobuf-devel
If 'PREFER_STATIC_LINK' env variable is set during compilation, shared library - libhelpers.so/dylib will be linked statically against protobuf, boost_ and openssl (if it's possible).
In order to build with only selected helpers the following variables should be added to the make command line:
- WITH_CEPH=OFF - disables Ceph helper
- WITH_S3=OFF - disables S3 helper
- WITH_SWIFT=OFF - disables Swift helper
- WITH_GLUSTERFS=OFF - disables GlusterFS helper
In order to build the helpers using other Git repository than default, environment
variable ONEDATA_GIT_URL must be exported before calling make
, e.g.:
export ONEDATA_GIT_URL=https://github.com/onedata
Before build submodules must be initialized. To do it simply run make submodules
make -s release
make -s debug
after this step you should have your libhelpers.a and libhelpers.so/dylib in "release" or "debug" subdirectory.
In order to build helpers
on OSX all dependecies must be installed using
Homebrew (see Travis build specification). Currently helper for
Ceph is not supported on OSX, furthermore NSS library is by default linked to a
special folder on OSX, thus make
has to called with the following
paremeters':
PKG_CONFIG_PATH=/usr/local/opt/nss/lib/pkgconfig make release WITH_CEPH=OFF OPENSSL_ROOT_DIR=/usr/local/opt/openssl OPENSSL_LIBRARIES=/usr/local/opt/openssl/lib
There are two testing targets:
make -s test
which has summarized output (per test case) and:
make -s cunit
which shows detailed test results.