scripts/vm_setup: add Arch Linux test dependencies install
Dependencies install with -i option works OK. Additional dependencies with -t option: - rocksdb - OK - librxe - OK - iscsi - OK - ocf - OK - flamegraph - OK - tsocks - OK - nvmecli - OK - fio - compilation errors on version 3.3 OK if updated to 3.15 - qemu - OK, but need to disable some error warnings: -Wno-error=stringop-truncation -Wno-error=deprecated-declarations -Wno-error=incompatible-pointer-types -Wno-error=format-truncation - qat - not run - vpp - not run - libiscsi - compilation errors Change-Id: Ifde26c1f1d35c8fe06e18ddba33fe2d054b6d2cf Signed-off-by: Karol Latecki <karol.latecki@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466948 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Seth Howell <seth.howell@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
579d44b0ee
commit
03578a3d25
@ -150,6 +150,14 @@ function install_fio()
|
||||
if echo $CONF | grep -q fio; then
|
||||
# This version of fio is installed in /usr/src/fio to enable
|
||||
# building the spdk fio plugin.
|
||||
local fio_version="fio-3.3"
|
||||
|
||||
# Change version on Arch Linux, 3.3 does not compile
|
||||
# with gcc 9
|
||||
if [ $PACKAGEMNG == 'pacman' ]; then
|
||||
fio_version="fio-3.15"
|
||||
fi
|
||||
|
||||
if [ ! -d /usr/src/fio ]; then
|
||||
if [ ! -d fio ]; then
|
||||
git clone "${GIT_REPO_FIO}"
|
||||
@ -160,7 +168,7 @@ function install_fio()
|
||||
(
|
||||
git -C /usr/src/fio checkout master &&
|
||||
git -C /usr/src/fio pull &&
|
||||
git -C /usr/src/fio checkout fio-3.3 &&
|
||||
git -C /usr/src/fio checkout $fio_version &&
|
||||
make -C /usr/src/fio -j${jobs} &&
|
||||
sudo make -C /usr/src/fio install
|
||||
)
|
||||
@ -196,6 +204,8 @@ function install_qemu()
|
||||
sudo dnf install -y qemu-system-x86 qemu-img
|
||||
elif [ "$PACKAGEMNG" = "apt-get" ]; then
|
||||
sudo apt-get install -y qemu-system-x86 qemu-img
|
||||
elif [ "$PACKAGEMNG" = "pacman" ]; then
|
||||
sudo pacman -Sy --needed --noconfirm qemu
|
||||
fi
|
||||
|
||||
# Forked QEMU
|
||||
@ -208,6 +218,11 @@ function install_qemu()
|
||||
fi
|
||||
|
||||
declare -a opt_params=("--prefix=/usr/local/qemu/$SPDK_QEMU_BRANCH")
|
||||
if [ "$PACKAGEMNG" = "pacman" ]; then
|
||||
# GCC 9 on ArchLinux fails to compile Qemu due to some old warnings which were not detected by older versions.
|
||||
opt_params+=("--extra-cflags='-Wno-error=stringop-truncation -Wno-error=deprecated-declarations -Wno-error=incompatible-pointer-types -Wno-error=format-truncation'")
|
||||
opt_params+=("--disable-glusterfs")
|
||||
fi
|
||||
|
||||
# Most tsocks proxies rely on a configuration file in /etc/tsocks.conf.
|
||||
# If using tsocks, please make sure to complete this config before trying to build qemu.
|
||||
@ -319,6 +334,8 @@ if hash dnf &>/dev/null; then
|
||||
PACKAGEMNG=dnf
|
||||
elif hash apt-get &>/dev/null; then
|
||||
PACKAGEMNG=apt-get
|
||||
elif hash pacman &>/dev/null; then
|
||||
PACKAGEMNG=pacman
|
||||
else
|
||||
echo 'Supported package manager not found. Script supports "dnf" and "apt-get".'
|
||||
fi
|
||||
@ -383,14 +400,22 @@ cd ~
|
||||
jobs=$(($(nproc)*2))
|
||||
|
||||
if $UPGRADE; then
|
||||
if [ $PACKAGEMNG == 'apt-get' ]; then
|
||||
if [ $PACKAGEMNG == 'dnf' ]; then
|
||||
sudo $PACKAGEMNG upgrade -y
|
||||
elif [ $PACKAGEMNG == 'apt-get' ]; then
|
||||
sudo $PACKAGEMNG update
|
||||
sudo $PACKAGEMNG upgrade -y
|
||||
elif [ $PACKAGEMNG == 'pacman' ]; then
|
||||
sudo $PACKAGEMNG -Syu --noconfirm --needed
|
||||
fi
|
||||
sudo $PACKAGEMNG upgrade -y
|
||||
fi
|
||||
|
||||
if $INSTALL; then
|
||||
sudo $PACKAGEMNG install -y git
|
||||
if [ $PACKAGEMNG == 'pacman' ]; then
|
||||
sudo $PACKAGEMNG -Sy --needed --noconfirm git
|
||||
else
|
||||
sudo $PACKAGEMNG install -y git
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -p spdk_repo/output
|
||||
@ -526,6 +551,52 @@ if $INSTALL; then
|
||||
# rpm-build is not used
|
||||
# iptables installed by default
|
||||
|
||||
elif [ $PACKAGEMNG == 'pacman' ]; then
|
||||
if echo $CONF | grep -q tsocks; then
|
||||
sudo pacman -Sy --noconfirm --needed tsocks
|
||||
fi
|
||||
|
||||
sudo pacman -Sy --noconfirm --needed valgrind \
|
||||
jq \
|
||||
nvme-cli \
|
||||
ceph \
|
||||
gdb \
|
||||
fio \
|
||||
linux-headers \
|
||||
gflags \
|
||||
autoconf \
|
||||
automake \
|
||||
libtool \
|
||||
libutil-linux \
|
||||
libiscsi \
|
||||
open-isns \
|
||||
glib2 \
|
||||
pixman \
|
||||
flex \
|
||||
bison \
|
||||
elfutils \
|
||||
libelf \
|
||||
astyle \
|
||||
gptfdisk \
|
||||
socat \
|
||||
sshfs \
|
||||
sshpass \
|
||||
python-pandas \
|
||||
btrfs-progs \
|
||||
iptables \
|
||||
clang \
|
||||
bc \
|
||||
perl-switch \
|
||||
open-iscsi
|
||||
|
||||
# TODO:
|
||||
# These are either missing or require some other installation method
|
||||
# than pacman:
|
||||
|
||||
# librbd-devel
|
||||
# perl-open
|
||||
# targetcli
|
||||
|
||||
else
|
||||
echo "Package manager is undefined, skipping INSTALL step"
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user