The SMA requires some extra python packages during the build to generate the protobuf interface, so this option will select whether it's enabled or not. Additionally, the dependencies are added to `pkgdep.sh` in this patch. Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: Ib0d75c86d4d8575ec1245b219b4e96edb773b366 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10974 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Monica Kenguva <monica.kenguva@intel.com> Reviewed-by: Karol Latecki <karol.latecki@intel.com>
79 lines
2.7 KiB
Bash
Executable File
79 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Install main dependencies
|
|
pacman -Sy --needed --noconfirm gcc make cmake cunit libaio openssl \
|
|
libutil-linux libiscsi python ncurses json-c cmocka ninja meson
|
|
# Additional dependencies for SPDK CLI
|
|
pacman -Sy --needed --noconfirm python-pexpect python-pip libffi
|
|
pip install configshell_fb
|
|
pip install pyelftools
|
|
pip install ijson
|
|
pip install python-magic
|
|
pip install grpcio
|
|
pip install grpcio-tools
|
|
# Additional dependencies for DPDK
|
|
pacman -Sy --needed --noconfirm numactl nasm
|
|
# Additional dependencies for ISA-L used in compression
|
|
pacman -Sy --needed --noconfirm autoconf automake libtool help2man
|
|
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|
# Tools for developers
|
|
pacman -Sy --needed --noconfirm git astyle autopep8 \
|
|
clang sg3_utils pciutils shellcheck bash-completion
|
|
#fakeroot needed to instal via makepkg
|
|
pacman -Sy --needed --noconfirm fakeroot
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
git clone https://aur.archlinux.org/perl-perlio-gzip.git;
|
|
cd perl-perlio-gzip;
|
|
yes y | makepkg -si --needed;
|
|
cd ..; rm -rf perl-perlio-gzip
|
|
popd"
|
|
# sed is to modify sources section in PKGBUILD
|
|
# By default it uses git:// which will fail behind proxy, so
|
|
# redirect it to http:// source instead
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
git clone https://aur.archlinux.org/lcov-git.git;
|
|
cd lcov-git;
|
|
sed -i 's/git:/git+http:/' PKGBUILD;
|
|
makepkg -si --needed --noconfirm;
|
|
cd .. && rm -rf lcov-git;
|
|
popd"
|
|
fi
|
|
if [[ $INSTALL_PMEM == "true" ]]; then
|
|
# Additional dependencies for building pmem based backends
|
|
pacman -Sy --needed --noconfirm ndctl pkg-config
|
|
git clone https://github.com/pmem/pmdk.git /tmp/pmdk -b 1.6.1
|
|
make -C /tmp/pmdk -j$(nproc)
|
|
make install prefix=/usr -C /tmp/pmdk
|
|
echo "/usr/local/lib" > /etc/ld.so.conf.d/pmdk.conf
|
|
ldconfig
|
|
rm -rf /tmp/pmdk
|
|
fi
|
|
if [[ $INSTALL_FUSE == "true" ]]; then
|
|
# Additional dependencies for FUSE and NVMe-CUSE
|
|
pacman -Sy --needed --noconfirm fuse3
|
|
fi
|
|
if [[ $INSTALL_RDMA == "true" ]]; then
|
|
# Additional dependencies for RDMA transport in NVMe over Fabrics
|
|
if [[ -n "$http_proxy" ]]; then
|
|
gpg_options=" --keyserver hkp://pgp.mit.edu:11371 --keyserver-options \"http-proxy=$http_proxy\""
|
|
fi
|
|
su - $SUDO_USER -c "gpg $gpg_options --recv-keys 29F0D86B9C1019B1"
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
git clone https://aur.archlinux.org/rdma-core.git;
|
|
cd rdma-core;
|
|
makepkg -si --needed --noconfirm;
|
|
cd .. && rm -rf rdma-core;
|
|
popd"
|
|
fi
|
|
if [[ $INSTALL_DOCS == "true" ]]; then
|
|
# Additional dependencies for building docs
|
|
pacman -Sy --needed --noconfirm doxygen graphviz
|
|
pacman -S --noconfirm --needed gd ttf-font
|
|
su - $SUDO_USER -c "pushd /tmp;
|
|
git clone https://aur.archlinux.org/mscgen.git;
|
|
cd mscgen;
|
|
makepkg -si --needed --noconfirm;
|
|
cd .. && rm -rf mscgen;
|
|
popd"
|
|
fi
|