Setup Indy SDK build environment for RHEL-based distributions¶
These instructions have been tested on:
- Amazon Linux 2017.03
- Fedora 27
Please follow the instructions appropriate for your distribution.
Building libindy
¶
1. Install Rust¶
Installation via rustup
is recommended. Follow
these instructions.
2. Install dependencies available in system repositories¶
For Amazon Linux 2017.03/CentOS/RHEL:
yum clean all
yum upgrade -y
yum groupinstall -y "Development Tools"
yum install -y \
wget \
cmake \
pkgconfig \
openssl-devel \
sqlite-devel
For Fedora 26/27/28:
dnf clean all
dnf upgrade -y
dnf groupinstall -y "Development Tools"
dnf install -y \
wget \
cmake \
pkgconfig \
openssl-devel \
sqlite-devel
3. Build and install a modern version of libsodium
from source¶
For Amazon Linux 2017.03 or other distributions without libsodium
available in system repositories:
cd /tmp
curl https://download.libsodium.org/libsodium/releases/old/libsodium-1.0.14.tar.gz | tar -xz
cd /tmp/libsodium-1.0.14
./configure
make
make install
rm -rf /tmp/libsodium-1.0.14
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
For Fedora 26/27/28, libsodium-1.0.14
is already available as a system package:
dnf install libsodium libsodium-devel
4. Additional dependencies¶
For Fedora 26/27/28, you may also need to install zeromq
(libzmq
) before being able to successfully
build libindy
:
dnf install zeromq zeromq-devel
If you discover that there are other dependencies not mentioned here, please open an issue.
5. Checkout and build the library¶
git checkout https://github.com/hyperledger/indy-sdk.git
cd ./indy-sdk/libindy
cargo build
Building indy-cli
¶
indy-cli
is dependent on libindy
and must be built before indy-cli
.
After building libindy
, run the following commands from the indy-sdk
directory:
cd indy-cli
RUSTFLAGS="-L ../libindy/target/{BUILD_TYPE}" cargo build
In the above command, substitute {BUILD_TYPE}
with release
or debug
as appropriate.
If you have installed libindy.so
to a system-wide location and subsequently run ldconfig
, you do not need
to specify the RUSTFLAGS
environment variable as rustc
should be able to find libindy.so
without additional
help.
If not, however, indy-cli
needs help to be able to find libindy.so
while being built. Setting LD_LIBRARY_PATH
is only referenced at runtime and not at build time and is not helpful in this case. Specifying RUSTFLAGS
in the
command above will tell rustc
to also check ../libindy/target/{BUILD_TYPE}
for libraries.
Running integration tests¶
Starting up¶
Start local nodes pool with Docker
This may be useful if you want to launch integration tests inside another container attached to the same docker network.
Run tests¶
RUST_TEST_THREADS=1 cargo test
It is possible to change ip of test pool by providing of TEST_POOL_IP environment variable:
RUST_TEST_THREADS=1 TEST_POOL_IP=10.0.0.2 cargo test
See ci/amazon.dockerfile for example of Amazon Linux based environment creation in Docker.