From 327f1dc4ca2d757559c016cb67c06b18131cf224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kay=20Bouch=C3=A9?= Date: Mon, 19 Nov 2018 18:01:28 +0000 Subject: [PATCH] scripts/pkgdep.sh: Added Archlinux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add SPDK dependency installation instructions for ArchLinux OS. When possible dependencies are installed directly via pacman package manager. If not available - use AUR and makepkg. One exception is pmem dependency which is installed using Github sources, as it seems that AUR repo is not frequently update. Additionally for pmem installation ldconfig needs to be updated manually, otherwise it will break fio installation (if done with vm_setup.sh) which detects pmdk headers, but cannot find libraries on runtime. Change-Id: Ib9045ba55b10c2b671e01b48dda8ec439899bc06 Signed-off-by: Kay Bouché Signed-off-by: Karol Latecki Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/433913 Tested-by: SPDK CI Jenkins Reviewed-by: Darek Stojaczyk Reviewed-by: Ben Walker --- scripts/pkgdep.sh | 72 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/scripts/pkgdep.sh b/scripts/pkgdep.sh index c87830b68..c0d8d3621 100755 --- a/scripts/pkgdep.sh +++ b/scripts/pkgdep.sh @@ -118,6 +118,78 @@ elif [ $(uname -s) = "FreeBSD" ] ; then pkg install -y doxygen mscgen graphviz # Additional dependencies for ISA-L used in compression pkg install -y autoconf automake libtool help2man +elif [ -f /etc/arch-release ]; then + # Install main dependencies + pacman -Sy --needed --noconfirm gcc make cunit libaio openssl \ + git astyle autopep8 python clang libutil-linux sg3_utils \ + libiscsi pciutils shellcheck + + # Additional (optional) dependencies for showing backtrace in logs + pacman -Sy --needed --noconfirm libunwind + + # Additional dependencies for DPDK + pacman -Sy --needed --noconfirm numactl nasm + + # Additional dependencies for building docs + pacman -Sy --needed --noconfirm doxygen graphviz + + # Additional dependencies for SPDK CLI + pacman -Sy --needed --noconfirm python-pexpect python-pip + pip install configshell_fb + + # Additional dependencies for ISA-L used in compression + pacman -Sy --needed --noconfirm autoconf automake libtool help2man + + #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" + + # Additional dependency for building docs + 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" + + # Additional dependencies for NVMe over Fabrics + if [[ -n "$http_proxy" ]]; then + gpg_options=" --keyserver hkp://keyserver.ubuntu.com:80 --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" + + # Additional dependencies for building pmem based backends + pacman -Sy --needed --noconfirm ndctl + git clone https://github.com/pmem/pmdk.git /tmp/pmdk -b 1.6.1 + make -C /tmp/pmdk -j$(nproc) + make install -C /tmp/pmdk + echo "/usr/local/lib" > /etc/ld.so.conf.d/pmdk.conf + ldconfig + rm -rf /tmp/pmdk + else echo "pkgdep: unknown system type." exit 1