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:
parent
301b47e446
commit
20708f3531
@ -30,70 +30,6 @@ function install_all_dependencies() {
|
|||||||
INSTALL_LIBURING=true
|
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_CRYPTO=false
|
||||||
INSTALL_DEV_TOOLS=false
|
INSTALL_DEV_TOOLS=false
|
||||||
INSTALL_PMEM=false
|
INSTALL_PMEM=false
|
||||||
@ -155,6 +91,7 @@ fi
|
|||||||
|
|
||||||
if [[ -e $scriptsdir/pkgdep/$ID.sh ]]; then
|
if [[ -e $scriptsdir/pkgdep/$ID.sh ]]; then
|
||||||
source "$scriptsdir/pkgdep/$ID.sh"
|
source "$scriptsdir/pkgdep/$ID.sh"
|
||||||
|
source "$scriptsdir/pkgdep/common.sh"
|
||||||
else
|
else
|
||||||
printf 'Not supported platform detected (%s), aborting\n' "$ID" >&2
|
printf 'Not supported platform detected (%s), aborting\n' "$ID" >&2
|
||||||
fi
|
fi
|
||||||
|
@ -32,7 +32,6 @@ if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|||||||
makepkg -si --needed --noconfirm;
|
makepkg -si --needed --noconfirm;
|
||||||
cd .. && rm -rf lcov-git;
|
cd .. && rm -rf lcov-git;
|
||||||
popd"
|
popd"
|
||||||
install_shfmt
|
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_PMEM == "true" ]]; then
|
if [[ $INSTALL_PMEM == "true" ]]; then
|
||||||
# Additional dependencies for building pmem based backends
|
# Additional dependencies for building pmem based backends
|
||||||
@ -72,6 +71,3 @@ if [[ $INSTALL_DOCS == "true" ]]; then
|
|||||||
cd .. && rm -rf mscgen;
|
cd .. && rm -rf mscgen;
|
||||||
popd"
|
popd"
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_LIBURING == "true" ]]; then
|
|
||||||
install_liburing
|
|
||||||
fi
|
|
||||||
|
@ -13,7 +13,6 @@ pip3 install pexpect
|
|||||||
pip3 install configshell_fb
|
pip3 install configshell_fb
|
||||||
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
||||||
swupd bundle-add -y git os-testsuite-0day
|
swupd bundle-add -y git os-testsuite-0day
|
||||||
install_shfmt
|
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_PMEM == "true" ]]; then
|
if [[ $INSTALL_PMEM == "true" ]]; then
|
||||||
# Additional dependencies for building pmem based backends
|
# Additional dependencies for building pmem based backends
|
||||||
|
73
scripts/pkgdep/common.sh
Executable file
73
scripts/pkgdep/common.sh
Executable 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
|
@ -28,7 +28,6 @@ if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|||||||
apt-get install -y pycodestyle || true
|
apt-get install -y pycodestyle || true
|
||||||
# Additional dependecies for nvmf performance test script
|
# Additional dependecies for nvmf performance test script
|
||||||
apt-get install -y python3-paramiko
|
apt-get install -y python3-paramiko
|
||||||
install_shfmt
|
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_PMEM == "true" ]]; then
|
if [[ $INSTALL_PMEM == "true" ]]; then
|
||||||
# Additional dependencies for building pmem based backends
|
# Additional dependencies for building pmem based backends
|
||||||
@ -53,6 +52,3 @@ if [[ $INSTALL_DOCS == "true" ]]; then
|
|||||||
# Additional dependencies for building docs
|
# Additional dependencies for building docs
|
||||||
apt-get install -y doxygen mscgen graphviz
|
apt-get install -y doxygen mscgen graphviz
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_LIBURING == "true" ]]; then
|
|
||||||
install_liburing
|
|
||||||
fi
|
|
||||||
|
@ -49,7 +49,6 @@ if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|||||||
yum install -y python-pycodestyle lcov ShellCheck
|
yum install -y python-pycodestyle lcov ShellCheck
|
||||||
fi
|
fi
|
||||||
yum install -y git astyle sg3_utils pciutils
|
yum install -y git astyle sg3_utils pciutils
|
||||||
install_shfmt
|
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_PMEM == "true" ]]; then
|
if [[ $INSTALL_PMEM == "true" ]]; then
|
||||||
# Additional dependencies for building pmem based backends
|
# 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 mscgen || echo "Warning: couldn't install mscgen via yum. Please install mscgen manually."
|
||||||
yum install -y doxygen graphviz
|
yum install -y doxygen graphviz
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_LIBURING == "true" ]]; then
|
|
||||||
install_liburing
|
|
||||||
fi
|
|
||||||
|
@ -11,7 +11,6 @@ if [[ $INSTALL_DEV_TOOLS == "true" ]]; then
|
|||||||
# Tools for developers
|
# Tools for developers
|
||||||
zypper install -y git-core lcov python-pycodestyle sg3_utils \
|
zypper install -y git-core lcov python-pycodestyle sg3_utils \
|
||||||
pciutils ShellCheck
|
pciutils ShellCheck
|
||||||
install_shfmt
|
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_PMEM == "true" ]]; then
|
if [[ $INSTALL_PMEM == "true" ]]; then
|
||||||
# Additional dependencies for building pmem based backends
|
# Additional dependencies for building pmem based backends
|
||||||
@ -29,6 +28,3 @@ if [[ $INSTALL_DOCS == "true" ]]; then
|
|||||||
# Additional dependencies for building docs
|
# Additional dependencies for building docs
|
||||||
zypper install -y doxygen mscgen graphviz
|
zypper install -y doxygen mscgen graphviz
|
||||||
fi
|
fi
|
||||||
if [[ $INSTALL_LIBURING == "true" ]]; then
|
|
||||||
install_liburing
|
|
||||||
fi
|
|
||||||
|
Loading…
Reference in New Issue
Block a user