Commit 4c67fe81 authored by Maciej Wawryk's avatar Maciej Wawryk Committed by Ben Walker
Browse files

scripts/pkgdep.sh: Separate minimal required dependencies



We want to split pkgdep.sh to install packeges that are required to run SPDK
and that are needed by developers.
This patch is only split one install command to divide the minimal
dependencies from the developer tools.

Signed-off-by: default avatarMaciej Wawryk <maciejx.wawryk@intel.com>
Change-Id: I332cbc430bd04e6ef2872ab762da99e837bf0fc2
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/481595


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: default avatarKarol Latecki <karol.latecki@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 62deaa83
Loading
Loading
Loading
Loading
+45 −43
Original line number Diff line number Diff line
@@ -54,101 +54,108 @@ if [ -s /etc/redhat-release ]; then
		fi
	fi

	# Minimal install
	yum install -y gcc gcc-c++ make CUnit-devel libaio-devel openssl-devel \
		git astyle python-pycodestyle lcov python libuuid-devel \
		sg3_utils libiscsi-devel pciutils ShellCheck
		libuuid-devel libiscsi-devel python
	# Additional dependencies for SPDK CLI - not available in rhel and centos
	if ! echo "$ID $VERSION_ID" | grep -E -q 'rhel 7|centos 7'; then
		yum install -y python3-configshell python3-pexpect
	fi
	# Additional dependencies for ISA-L used in compression
	yum install -y autoconf automake libtool help2man
	# Additional dependencies for DPDK
	yum install -y numactl-devel nasm
	# Dependencies for developers
	yum install -y git astyle python-pycodestyle lcov \
		sg3_utils pciutils ShellCheck
	# Additional (optional) dependencies for showing backtrace in logs
	yum install -y libunwind-devel || true
	# Additional dependencies for NVMe over Fabrics
	yum install -y libibverbs-devel librdmacm-devel
	# Additional dependencies for DPDK
	yum install -y numactl-devel nasm
	# Additional dependencies for building docs
	yum install -y doxygen mscgen graphviz
	# Additional dependencies for building pmem based backends
	yum install -y libpmemblk-devel || true
	# Additional dependencies for SPDK CLI - not available in rhel and centos
	if ! echo "$ID $VERSION_ID" | grep -E -q 'rhel 7|centos 7'; then
		yum install -y python3-configshell python3-pexpect
	fi
	# Additional dependencies for ISA-L used in compression
	yum install -y autoconf automake libtool help2man
	# Additional dependencies for FUSE and CUSE
	yum install -y fuse3-devel
elif [ -f /etc/debian_version ]; then
	# Includes Ubuntu, Debian
	# Minimal install
	apt-get install -y gcc g++ make libcunit1-dev libaio-dev libssl-dev \
		git astyle pep8 lcov clang uuid-dev sg3-utils libiscsi-dev pciutils \
		shellcheck
		uuid-dev libiscsi-dev python
	# Additional dependencies for DPDK
	apt-get install -y libnuma-dev nasm
	# Additional dependencies for ISA-L used in compression
	apt-get install -y autoconf automake libtool help2man
	# Dependencies for developers
	apt-get install -y git astyle pep8 lcov clang sg3-utils pciutils shellcheck
	# Additional python style checker not available on ubuntu 16.04 or earlier.
	apt-get install -y pycodestyle || true
	# Additional (optional) dependencies for showing backtrace in logs
	apt-get install -y libunwind-dev || true
	# Additional dependencies for NVMe over Fabrics
	apt-get install -y libibverbs-dev librdmacm-dev
	# Additional dependencies for DPDK
	apt-get install -y libnuma-dev nasm
	# Additional dependencies for building docs
	apt-get install -y doxygen mscgen graphviz
	# Additional dependencies for SPDK CLI - not available on older Ubuntus
	apt-get install -y python3-configshell-fb python3-pexpect || echo \
		"Note: Some SPDK CLI dependencies could not be installed."
	# Additional dependencies for ISA-L used in compression
	apt-get install -y autoconf automake libtool help2man
	# Additional dependencies for FUSE and CUSE
	apt-get install -y libfuse3-dev
	# Additional dependecies for nvmf performance test script
	apt-get install -y python3-paramiko
elif [ -f /etc/SuSE-release ] || [ -f /etc/SUSE-brand ]; then
	# Minimal install
	zypper install -y gcc gcc-c++ make cunit-devel libaio-devel libopenssl-devel \
		git-core lcov python-base python-pycodestyle libuuid-devel sg3_utils pciutils \
		ShellCheck
		libuuid-devel python-base
	# Additional dependencies for DPDK
	zypper install -y libnuma-devel nasm
	# Additional dependencies for ISA-L used in compression
	zypper install -y autoconf automake libtool help2man
	# Dependencies for developers
	zypper install -y git-core lcov python-pycodestyle sg3_utils \
		pciutils ShellCheck
	# Additional (optional) dependencies for showing backtrace in logs
	zypper install libunwind-devel || true
	# Additional dependencies for NVMe over Fabrics
	zypper install -y rdma-core-devel
	# Additional dependencies for DPDK
	zypper install -y libnuma-devel nasm
	# Additional dependencies for building pmem based backends
	zypper install -y libpmemblk-devel
	# Additional dependencies for building docs
	zypper install -y doxygen mscgen graphviz
	# Additional dependencies for ISA-L used in compression
	zypper install -y autoconf automake libtool help2man
	# Additional dependencies for FUSE and CUSE
	zypper install -y fuse3-devel
elif [ $(uname -s) = "FreeBSD" ] ; then
	pkg install -y gmake cunit openssl git devel/astyle bash py27-pycodestyle \
		python misc/e2fsprogs-libuuid sysutils/sg3_utils nasm
	# Additional dependencies for building docs
	pkg install -y doxygen mscgen graphviz
	# Minimal install
	pkg install -y gmake cunit openssl git bash misc/e2fsprogs-libuuid python
	# Additional dependencies for ISA-L used in compression
	pkg install -y autoconf automake libtool help2man
	# Dependencies for developers
	pkg install -y devel/astyle bash py27-pycodestyle \
		misc/e2fsprogs-libuuid sysutils/sg3_utils nasm
	# Additional dependencies for building docs
	pkg install -y doxygen mscgen graphviz
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

		libutil-linux libiscsi python
	# 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

	# Dependencies for developers
	pacman -Sy --needed --noconfirm git astyle autopep8 \
		clang sg3_utils pciutils shellcheck
	# Additional (optional) dependencies for showing backtrace in logs
	pacman -Sy --needed --noconfirm libunwind
	# 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

	# Additional dependencies for FUSE and CUSE
	pacman -Sy --needed --noconfirm fuse3

	#fakeroot needed to instal via makepkg
	pacman -Sy --needed --noconfirm fakeroot
	su - $SUDO_USER -c "pushd /tmp;
@@ -157,7 +164,6 @@ elif [ -f /etc/arch-release ]; then
		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
@@ -168,7 +174,6 @@ elif [ -f /etc/arch-release ]; then
		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;
@@ -177,7 +182,6 @@ elif [ -f /etc/arch-release ]; then
		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\""
@@ -189,7 +193,6 @@ elif [ -f /etc/arch-release ]; then
		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
@@ -198,7 +201,6 @@ elif [ -f /etc/arch-release ]; then
	echo "/usr/local/lib" > /etc/ld.so.conf.d/pmdk.conf
	ldconfig
	rm -rf /tmp/pmdk

else
	echo "pkgdep: unknown system type."
	exit 1