From 4c67fe81eb80ad311bf489b0b4d1c1ecf7d48f72 Mon Sep 17 00:00:00 2001 From: Maciej Wawryk Date: Fri, 10 Jan 2020 14:15:25 +0100 Subject: [PATCH] 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: Maciej Wawryk Change-Id: I332cbc430bd04e6ef2872ab762da99e837bf0fc2 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/481595 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Darek Stojaczyk Reviewed-by: Karol Latecki Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki --- scripts/pkgdep.sh | 98 ++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 48 deletions(-) diff --git a/scripts/pkgdep.sh b/scripts/pkgdep.sh index 6d2c995c2..ebbabbae1 100755 --- a/scripts/pkgdep.sh +++ b/scripts/pkgdep.sh @@ -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 - # 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 + 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 building docs + yum install -y doxygen mscgen graphviz + # Additional dependencies for building pmem based backends + yum install -y libpmemblk-devel || true # 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 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 + # 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 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