Commit 20708f35 authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

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: default avatarMichal Berger <michalx.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3525


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 301b47e4
Loading
Loading
Loading
Loading
+1 −64
Original line number Diff line number Diff line
@@ -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
+0 −4
Original line number Diff line number Diff line
@@ -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
+0 −1
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
#!/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
+0 −4
Original line number Diff line number Diff line
@@ -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
Loading