Commit 327f1dc4 authored by Kay Bouché's avatar Kay Bouché Committed by Ben Walker
Browse files

scripts/pkgdep.sh: Added Archlinux



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: default avatarKay Bouché <kay-b@live.de>
Signed-off-by: default avatarKarol Latecki <karol.latecki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/433913


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 6df5fbfb
Loading
Loading
Loading
Loading
+72 −0
Original line number Diff line number Diff line
@@ -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