scripts/pkgdep: Move distro independent parts to a common place

This will avoid adding similar components into multiple scripts
instead of just one.

Change-Id: I83cff1ad883f3a7054d0f21ec20210c81cb6b9c1
Signed-off-by: Michal Berger <michalx.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3525
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Michal Berger 2020-07-25 22:44:52 +02:00 committed by Tomasz Zawadzki
parent 301b47e446
commit 20708f3531
7 changed files with 74 additions and 81 deletions

View File

@ -30,70 +30,6 @@ function install_all_dependencies() {
INSTALL_LIBURING=true
}
function install_liburing() {
local GIT_REPO_LIBURING=https://github.com/axboe/liburing.git
local liburing_dir=/usr/local/src/liburing
if [[ -e /usr/lib64/liburing.so ]]; then
echo "liburing is already installed. skipping"
else
if [[ -d $liburing_dir ]]; then
echo "liburing source already present, not cloning"
else
mkdir $liburing_dir
git clone "${GIT_REPO_LIBURING}" "$liburing_dir"
fi
(cd "$liburing_dir" && ./configure --libdir=/usr/lib64 && make install)
fi
}
function install_shfmt() {
# Fetch version that has been tested
local shfmt_version=3.1.0
local shfmt=shfmt-$shfmt_version
local shfmt_dir=${SHFMT_DIR:-/opt/shfmt}
local shfmt_dir_out=${SHFMT_DIR_OUT:-/usr/bin}
local shfmt_url
local os
if hash "$shfmt" && [[ $("$shfmt" --version) == "v$shfmt_version" ]]; then
echo "$shfmt already installed"
return 0
fi 2> /dev/null
os=$(uname -s)
case "$os" in
Linux) shfmt_url=https://github.com/mvdan/sh/releases/download/v$shfmt_version/shfmt_v${shfmt_version}_linux_amd64 ;;
FreeBSD) shfmt_url=https://github.com/mvdan/sh/releases/download/v$shfmt_version/shfmt_v${shfmt_version}_freebsd_amd64 ;;
*)
echo "Not supported OS (${os:-Unknown}), skipping"
return 0
;;
esac
mkdir -p "$shfmt_dir"
mkdir -p "$shfmt_dir_out"
echo "Fetching ${shfmt_url##*/}"...
local err
if err=$(curl -f -Lo"$shfmt_dir/$shfmt" "$shfmt_url" 2>&1); then
chmod +x "$shfmt_dir/$shfmt"
ln -sf "$shfmt_dir/$shfmt" "$shfmt_dir_out"
else
cat <<- CURL_ERR
* Fetching $shfmt_url failed, $shfmt will not be available for format check.
* Error:
$err
CURL_ERR
return 0
fi
echo "$shfmt installed"
}
INSTALL_CRYPTO=false
INSTALL_DEV_TOOLS=false
INSTALL_PMEM=false
@ -155,6 +91,7 @@ fi
if [[ -e $scriptsdir/pkgdep/$ID.sh ]]; then
source "$scriptsdir/pkgdep/$ID.sh"
source "$scriptsdir/pkgdep/common.sh"
else
printf 'Not supported platform detected (%s), aborting\n' "$ID" >&2
fi

View File

@ -32,7 +32,6 @@ if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
makepkg -si --needed --noconfirm;
cd .. && rm -rf lcov-git;
popd"
install_shfmt
fi
if [[ $INSTALL_PMEM == "true" ]]; then
# Additional dependencies for building pmem based backends
@ -72,6 +71,3 @@ if [[ $INSTALL_DOCS == "true" ]]; then
cd .. && rm -rf mscgen;
popd"
fi
if [[ $INSTALL_LIBURING == "true" ]]; then
install_liburing
fi

View File

@ -13,7 +13,6 @@ pip3 install pexpect
pip3 install configshell_fb
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
swupd bundle-add -y git os-testsuite-0day
install_shfmt
fi
if [[ $INSTALL_PMEM == "true" ]]; then
# Additional dependencies for building pmem based backends

73
scripts/pkgdep/common.sh Executable file
View File

@ -0,0 +1,73 @@
#!/usr/bin/env bash
install_liburing() {
local GIT_REPO_LIBURING=https://github.com/axboe/liburing.git
local liburing_dir=/usr/local/src/liburing
if [[ -e /usr/lib64/liburing.so ]]; then
echo "liburing is already installed. skipping"
else
if [[ -d $liburing_dir ]]; then
echo "liburing source already present, not cloning"
else
mkdir $liburing_dir
git clone "${GIT_REPO_LIBURING}" "$liburing_dir"
fi
(cd "$liburing_dir" && ./configure --libdir=/usr/lib64 && make install)
fi
}
install_shfmt() {
# Fetch version that has been tested
local shfmt_version=3.1.0
local shfmt=shfmt-$shfmt_version
local shfmt_dir=${SHFMT_DIR:-/opt/shfmt}
local shfmt_dir_out=${SHFMT_DIR_OUT:-/usr/bin}
local shfmt_url
local os
if hash "$shfmt" && [[ $("$shfmt" --version) == "v$shfmt_version" ]]; then
echo "$shfmt already installed"
return 0
fi 2> /dev/null
os=$(uname -s)
case "$os" in
Linux) shfmt_url=https://github.com/mvdan/sh/releases/download/v$shfmt_version/shfmt_v${shfmt_version}_linux_amd64 ;;
FreeBSD) shfmt_url=https://github.com/mvdan/sh/releases/download/v$shfmt_version/shfmt_v${shfmt_version}_freebsd_amd64 ;;
*)
echo "Not supported OS (${os:-Unknown}), skipping"
return 0
;;
esac
mkdir -p "$shfmt_dir"
mkdir -p "$shfmt_dir_out"
echo "Fetching ${shfmt_url##*/}"...
local err
if err=$(curl -f -Lo"$shfmt_dir/$shfmt" "$shfmt_url" 2>&1); then
chmod +x "$shfmt_dir/$shfmt"
ln -sf "$shfmt_dir/$shfmt" "$shfmt_dir_out"
else
cat <<- CURL_ERR
* Fetching $shfmt_url failed, $shfmt will not be available for format check.
* Error:
$err
CURL_ERR
return 0
fi
echo "$shfmt installed"
}
if [[ $INSTALL_DEV_TOOLS == true ]]; then
install_shfmt
fi
if [[ $INSTALL_LIBURING == true ]]; then
install_liburing
fi

View File

@ -28,7 +28,6 @@ if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
apt-get install -y pycodestyle || true
# Additional dependecies for nvmf performance test script
apt-get install -y python3-paramiko
install_shfmt
fi
if [[ $INSTALL_PMEM == "true" ]]; then
# Additional dependencies for building pmem based backends
@ -53,6 +52,3 @@ if [[ $INSTALL_DOCS == "true" ]]; then
# Additional dependencies for building docs
apt-get install -y doxygen mscgen graphviz
fi
if [[ $INSTALL_LIBURING == "true" ]]; then
install_liburing
fi

View File

@ -49,7 +49,6 @@ if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
yum install -y python-pycodestyle lcov ShellCheck
fi
yum install -y git astyle sg3_utils pciutils
install_shfmt
fi
if [[ $INSTALL_PMEM == "true" ]]; then
# Additional dependencies for building pmem based backends
@ -68,6 +67,3 @@ if [[ $INSTALL_DOCS == "true" ]]; then
yum install -y mscgen || echo "Warning: couldn't install mscgen via yum. Please install mscgen manually."
yum install -y doxygen graphviz
fi
if [[ $INSTALL_LIBURING == "true" ]]; then
install_liburing
fi

View File

@ -11,7 +11,6 @@ if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
# Tools for developers
zypper install -y git-core lcov python-pycodestyle sg3_utils \
pciutils ShellCheck
install_shfmt
fi
if [[ $INSTALL_PMEM == "true" ]]; then
# Additional dependencies for building pmem based backends
@ -29,6 +28,3 @@ if [[ $INSTALL_DOCS == "true" ]]; then
# Additional dependencies for building docs
zypper install -y doxygen mscgen graphviz
fi
if [[ $INSTALL_LIBURING == "true" ]]; then
install_liburing
fi