xref: /spdk/test/common/config/pkgdep/git (revision 7366e569fbc7dff6dcc6709ffb52a890284de67e)
1function install_spdk() {
2	mkdir -p "$GIT_REPOS/spdk_repo/output" || echo "Can not create spdk_repo/output directory."
3
4	if [[ -d $GIT_REPOS/spdk_repo/spdk ]]; then
5		echo "spdk source already present, not cloning"
6	else
7		git -C "$GIT_REPOS/spdk_repo" clone "${GIT_REPO_SPDK}"
8	fi
9	git -C "$GIT_REPOS/spdk_repo/spdk" config submodule.dpdk.url "${GIT_REPO_DPDK}"
10	git -C "$GIT_REPOS/spdk_repo/spdk" config submodule.intel-ipsec-mb.url "${GIT_REPO_INTEL_IPSEC_MB}"
11	git -C "$GIT_REPOS/spdk_repo/spdk" submodule update --init --recursive
12}
13
14function install_refspdk() {
15	local release
16	local output_dir
17	local config_params
18	local rootdir
19	local version
20
21	version=$1
22
23	# Create a reference SPDK build for ABI tests
24	git -C "$GIT_REPOS/spdk_repo/spdk" fetch --tags --force
25
26	if [[ "$version" == "latest" ]]; then
27		release=$(git -C "$GIT_REPOS/spdk_repo/spdk" tag | sort --version-sort | grep -v rc | tail -n 1)
28		output_dir="$GIT_REPOS/spdk_abi_latest"
29	elif [[ "$version" == "LTS" ]]; then
30		release=$(git -C "$GIT_REPOS/spdk_repo/spdk" describe --tags --exclude=LTS LTS)
31		output_dir="$GIT_REPOS/spdk_abi_lts"
32	fi
33
34	rm -rf "$output_dir"
35
36	if [[ ! -d $output_dir ]]; then
37		cp -R "$GIT_REPOS/spdk_repo/spdk" "$output_dir"
38	fi
39
40	lts_2001_fallback=false
41	if [[ "$release" == v20.01* ]]; then
42		# We switch to a .x branch in order to slurp all the backports which fix spdk_abi_lts
43		# build for this particular release. Fetch the branch explicitly as in case of our CI,
44		# jenkins will set remote.*.fetch to a particular ref the build run against, so plain
45		# git fetch won't include any branches from the repo. FIXME: This could be removed
46		# after new LTS is in place.
47		release=${release%%-*}.x
48		git -C "$output_dir" fetch origin "+refs/heads/$release:refs/heads/$release"
49		lts_2001_fallback=true
50	fi
51	git -C "$output_dir" checkout "$release"
52	git -C "$output_dir" submodule update --init
53
54	if [[ "$release" == v20.01* ]]; then
55		makefiles=(
56			"$output_dir/dpdk/drivers/crypto/aesni_gcm/Makefile"
57			"$output_dir/dpdk/drivers/crypto/aesni_mb/Makefile"
58			"$output_dir/dpdk/drivers/crypto/kasumi/Makefile"
59			"$output_dir/dpdk/drivers/crypto/snow3g/Makefile"
60		)
61		# Attempt to replicate dpdk's 2a860943b8 commit which fixes builds under make 4.3
62		# FIXME: Remove this when LTS changes!
63		for makefile in "${makefiles[@]}"; do
64			# This sed call is meant to be compatible with its FreeBSD implementation
65			echo "$(sed -e 's/\\#/\$H/g' -e '/IMB_HDR =/i\
66				H := \\#' "$makefile")" > "$makefile"
67		done
68	fi
69	cat > $HOME/autorun-spdk.conf <<- EOF
70		SPDK_BUILD_SHARED_OBJECT=1
71		SPDK_TEST_AUTOBUILD=1
72		SPDK_TEST_UNITTEST=1
73		SPDK_TEST_BLOCKDEV=1
74		SPDK_TEST_PMDK=1
75		SPDK_TEST_ISAL=1
76		SPDK_TEST_REDUCE=1
77		SPDK_TEST_CRYPTO=1
78		SPDK_TEST_FTL=1
79		SPDK_TEST_OCF=1
80		SPDK_TEST_RAID5=1
81		SPDK_TEST_RBD=1
82		SPDK_RUN_ASAN=1
83		SPDK_RUN_UBSAN=1
84		SPDK_TEST_NVME_CUSE=1
85		SPDK_TEST_BLOBFS=1
86		SPDK_TEST_URING=1
87	EOF
88
89	mkdir -p $HOME/output
90
91	(
92		rootdir="$output_dir"
93		source $HOME/autorun-spdk.conf
94		source $output_dir/test/common/autotest_common.sh
95
96		# Prepare separate, fixed, cmdline for the FreeBSD, Issue #1397.
97		if [[ $OSID == freebsd ]]; then
98			config_params="--enable-debug"
99			config_params+=" --without-isal --with-fio=/usr/src/fio"
100
101			# TODO: Remove this if-block after 21.01 LTS is released and 20.01 LTS is deprecated.
102			if ! "$lts_2001_fallback"; then
103				config_params+=" --with-idxd --disable-unit-tests"
104			fi
105
106			MAKE=gmake
107		else
108			# TODO: "get_config_params" was not available in 20.01 LTS release.
109			# Remove this if-block after 21.01 release.
110			if "$lts_2001_fallback"; then
111				config_params="--enable-debug --enable-werror --with-rdma"
112				config_params+=" --with-fio=/usr/src/fio --with-iscsi-initiator"
113				config_params+=" --with-nvme-cuse --with-pmdk --with-reduce"
114				config_params+=" --with-rbd --with-crypto --with-ocf --enable-ubsan"
115				config_params+=" --enable-asan --with-fuse --with-uring"
116			else
117				config_params="$(get_config_params)"
118			fi
119		fi
120		$output_dir/configure $(echo $config_params | sed 's/--enable-coverage//g')
121		if [[ $OSID != freebsd ]]; then
122			$MAKE -C $output_dir $MAKEFLAGS include/spdk/config.h
123			CONFIG_OCF_PATH="$output_dir/ocf" $MAKE -C $output_dir/lib/env_ocf $MAKEFLAGS exportlib O=$output_dir/build/ocf.a
124			$output_dir/configure $config_params --with-ocf=$output_dir/build/ocf.a --with-shared
125		fi
126		$MAKE -C $output_dir $MAKEFLAGS
127	)
128}
129
130function install_qat() {
131	# Disect the kernel version into maj, min, release and local version
132	local kernel_maj kernel_min kernel_rel kernel_loc
133	local kernel_ver
134
135	in_syms() {
136		local syms
137		if [[ -e /proc/kallsyms ]]; then
138			syms=/proc/kallsyms
139		elif [[ -e /boot/System.map-$(< /proc/sys/kernel/osrelease) ]]; then
140			syms=/boot/System.map-$(< /proc/sys/kernel/osrelease)
141		else
142			return 0
143		fi
144
145		grep -q "$1" "$syms"
146	}
147
148	IFS=".-" read -r kernel_{maj,min,rel,loc} < /proc/sys/kernel/osrelease
149	kernel_ver=$((kernel_maj << 16 | kernel_min << 8 | kernel_rel))
150
151	if [[ -e /sys/module/qat_c62x ]]; then
152		sudo modprobe -r qat_c62x || :
153	fi
154	if [[ -d $GIT_REPOS/QAT ]]; then
155		sudo rm -rf "$GIT_REPOS/QAT"
156	fi
157
158	mkdir "$GIT_REPOS/QAT"
159
160	tar -C "$GIT_REPOS/QAT" -xzof - < <(wget -O- "$DRIVER_LOCATION_QAT")
161
162	# Patch use of hidden types in kernels >= 5.6.3. See .patch for details
163	if ((kernel_ver >= 0x050603)); then
164		# Patch only the driver version that was tested
165		[[ ${DRIVER_LOCATION_QAT##*/} == qat1.7.l.4.9.0-00008.tar.gz ]] && patch --dir="$GIT_REPOS/QAT" -p1
166	fi < "$rootdir/test/common/config/pkgdep/patches/qat/0001-timespec.patch"
167
168	# Patch name of the pci_aer function which was renamed in kernels >= 5.7.1. See .patch for details
169	if ((kernel_ver >= 0x050701)) || ! in_syms pci_cleanup_aer_uncorrect_error_status; then
170		# Patch only the driver version that was tested
171		if [[ ${DRIVER_LOCATION_QAT##*/} == qat1.7.l.4.9.0-00008.tar.gz ]]; then
172			patch --dir="$GIT_REPOS/QAT" -p1
173		fi < "$rootdir/test/common/config/pkgdep/patches/qat/0001-pci_aer.patch"
174		if ((kernel_ver < 0x050701)); then
175			# Older kernel build without pci_cleanup_aer_uncorrect_error_status()? This might be
176			# centos8's build.
177			if [[ ${DRIVER_LOCATION_QAT##*/} == qat1.7.l.4.12.0-00011.tar.gz ]]; then
178				patch --dir="$GIT_REPOS/QAT" -p1
179			fi < "$rootdir/test/common/config/pkgdep/patches/qat/0001-pci_aer_centos.patch"
180		fi
181	fi
182
183	# Patch use of cryptohash.h which was removed in favor of crypto/sha.h in kernels >= 5.8. See .patch for details
184	if ((kernel_ver >= 0x050800)); then
185		# Patch only the driver version that was tested
186		[[ ${DRIVER_LOCATION_QAT##*/} == qat1.7.l.4.9.0-00008.tar.gz ]] && patch --dir="$GIT_REPOS/QAT" -p1
187	fi < "$rootdir/test/common/config/pkgdep/patches/qat/0001-cryptohash.patch"
188
189	# Object files need to be passed via obj-m otherwise they won't be built with kernels >= 5.10
190	if ((kernel_ver >= 0x050a01)); then
191		patch --dir="$GIT_REPOS/QAT" -p1
192	fi < "$rootdir/test/common/config/pkgdep/patches/qat/0001-set-obj-m.patch"
193	(cd "$GIT_REPOS/QAT" && sudo ./configure --enable-icp-sriov=host && sudo make install)
194
195	if ! sudo service qat_service start; then
196		echo "failed to start the qat service. Something may be wrong with your device or package."
197	fi
198}
199
200function install_rocksdb() {
201	# Rocksdb is installed for use with the blobfs tests.
202	if [ ! -d /usr/src/rocksdb ]; then
203		git clone "${GIT_REPO_ROCKSDB}" "$GIT_REPOS/rocksdb"
204		git -C "$GIT_REPOS/rocksdb" checkout 6.15.fb
205		sudo mv "$GIT_REPOS/rocksdb" /usr/src/
206	else
207		sudo git -C /usr/src/rocksdb checkout 6.15.fb
208		echo "rocksdb already in /usr/src. Not checking out again"
209	fi
210}
211
212function install_fio() {
213	# This version of fio is installed in /usr/src/fio to enable
214	# building the spdk fio plugin.
215	local fio_version="fio-3.19"
216
217	if [ ! -d /usr/src/fio ]; then
218		if [ ! -d fio ]; then
219			git clone "${GIT_REPO_FIO}" "$GIT_REPOS/fio"
220			sudo mv "$GIT_REPOS/fio" /usr/src/
221		else
222			sudo mv "$GIT_REPOS/fio" /usr/src/
223		fi
224		(
225			git -C /usr/src/fio checkout master \
226				&& git -C /usr/src/fio pull \
227				&& git -C /usr/src/fio checkout $fio_version \
228				&& if [ $OSID == 'freebsd' ]; then
229					gmake -C /usr/src/fio -j${jobs} \
230						&& sudo gmake -C /usr/src/fio install
231				else
232					make -C /usr/src/fio -j${jobs} \
233						&& sudo make -C /usr/src/fio install
234				fi
235		)
236	else
237		echo "fio already in /usr/src/fio. Not installing"
238	fi
239}
240
241function install_flamegraph() {
242	# Flamegraph is used when printing out timing graphs for the tests.
243	if [ ! -d /usr/local/FlameGraph ]; then
244		git clone "${GIT_REPO_FLAMEGRAPH}" "$GIT_REPOS/FlameGraph"
245		mkdir -p /usr/local
246		sudo mv "$GIT_REPOS/FlameGraph" /usr/local/FlameGraph
247	else
248		echo "flamegraph already installed. Skipping"
249	fi
250}
251
252function _install_qemu() {
253	local repo=$1
254	local branch=$2
255
256	mkdir -p "$GIT_REPOS/qemu"
257	if [[ ! -d $GIT_REPOS/qemu/$branch ]]; then
258		git clone "$repo" -b "$branch" "$GIT_REPOS/qemu/$branch"
259	else
260		echo "qemu already checked out. Skipping"
261	fi
262
263	declare -a opt_params=("--prefix=/usr/local/qemu/$branch")
264	declare -a extra_cflags=()
265
266	opt_params+=("--disable-docs")
267	if ((gcc_version >= 9)); then
268		# GCC 9 fails to compile Qemu due to some old warnings which were not detected by older versions.
269		extra_cflags+=("-Wno-error=stringop-truncation" "-Wno-error=deprecated-declarations")
270		extra_cflags+=("-Wno-error=incompatible-pointer-types" "-Wno-error=format-truncation")
271		extra_cflags+=("-Wno-error=address-of-packed-member")
272		opt_params+=("--disable-glusterfs")
273	fi
274
275	# Most tsocks proxies rely on a configuration file in /etc/tsocks.conf.
276	# If using tsocks, please make sure to complete this config before trying to build qemu.
277	if [[ $INSTALL_TSOCKS == true && $NO_TSOCKS != true ]]; then
278		if hash tsocks 2> /dev/null; then
279			opt_params+=("--with-git='tsocks git'")
280		fi
281	fi
282	opt_params+=("--extra-cflags=${extra_cflags[*]}")
283
284	# The qemu configure script places several output files in the CWD.
285	(cd "$GIT_REPOS/qemu/$branch" && ./configure "${opt_params[@]}" --target-list="x86_64-softmmu" --enable-kvm --enable-linux-aio --enable-numa)
286
287	make -C "$GIT_REPOS/qemu/$branch" -j${jobs}
288	sudo make -C "$GIT_REPOS/qemu/$branch" install
289}
290
291function install_qemu() {
292	# Three versions of QEMU are used in the tests.
293	# Stock QEMU is used for vhost.
294	# A special fork is used to test OCSSDs.
295	# Third is for libvfio-user tests.
296	# Install all.
297
298	# Forked QEMUs
299	SPDK_QEMU_BRANCH=spdk-5.0.0
300	VFIO_QEMU_BRANCH=vfio-user-v0.6
301	_install_qemu $GIT_REPO_QEMU $SPDK_QEMU_BRANCH
302	_install_qemu $GIT_REPO_QEMU_VFIO $VFIO_QEMU_BRANCH
303}
304
305function install_nvmecli() {
306	if [ ! -d "/usr/local/src/nvme-cli" ]; then
307		# Changes required for SPDK are already merged on top of
308		# nvme-cli, however not released yet.
309		# Support for SPDK should be released in nvme-cli >1.11.1
310		if [[ ! -d $GIT_REPOS/nvme-cli-cuse ]]; then
311			git clone "https://github.com/linux-nvme/nvme-cli.git" "$GIT_REPOS/nvme-cli-cuse"
312		fi
313		git -C "$GIT_REPOS/nvme-cli-cuse" checkout "e770466615096a6d41f038a28819b00bc3078e1d"
314		make -C "$GIT_REPOS/nvme-cli-cuse" CPPFLAGS="-Wno-error=maybe-uninitialized"
315		sudo mv "$GIT_REPOS/nvme-cli-cuse" /usr/local/src/nvme-cli
316	fi
317}
318
319function install_libiscsi() {
320	# We currently don't make any changes to the libiscsi repository for our tests, but it is possible that we will need
321	# to later. Cloning from git is just future proofing the machines.
322	if [[ ! -d $GIT_REPOS/libiscsi ]]; then
323		git clone "${GIT_REPO_LIBISCSI}" "$GIT_REPOS/libiscsi"
324	else
325		echo "libiscsi already checked out. Skipping"
326	fi
327	(cd "$GIT_REPOS/libiscsi" && ./autogen.sh && ./configure --prefix=/usr/local/libiscsi)
328	make -C "$GIT_REPOS/libiscsi" -j${jobs} WARN_CFLAGS=
329	sudo make -C "$GIT_REPOS/libiscsi" install
330}
331
332function install_git() {
333	if type -P git; then
334		if ge "$(git --version | awk '{print $3}')" "$GIT_VERSION"; then
335			return 0
336		fi
337	fi >/dev/null
338
339	install zlib-devel curl-devel
340	tar -C "$GIT_REPOS" -xzof <(wget -qO- "$GIT_REPO_GIT")
341	(cd "$GIT_REPOS/git-$GIT_VERSION" \
342		&& make configure \
343		&& ./configure --prefix=/usr/local/git \
344		&& sudo make -j${jobs} install)
345	sudo sh -c "echo 'export PATH=/usr/local/git/bin:$PATH' >> /etc/bashrc"
346	export "PATH=/usr/local/git/bin:$PATH"
347	# Be nice for vagrant-proxyconf setup
348	mkdir -p "/usr/local/git/etc"
349}
350
351function install_extra_pkgs() {
352	if [[ $INSTALL_QAT == true ]]; then
353		install libudev-devel || install libudev-dev || :
354	fi
355
356	if [[ $INSTALL_QEMU == true ]]; then
357		install qemu-system-x86 qemu-img \
358			|| install qemu-system-x86 qemu-utils \
359			|| install qemu \
360			|| :
361	fi
362}
363
364function install_vagrant() {
365	local vagrant_version="2.2.7"
366	local vagrant_installer="vagrant_${vagrant_version}_x86_64.deb"
367	local vagrant_plugins=(vagrant-libvirt vagrant-sshfs vagrant-cachier vagrant-proxyconf)
368
369	if [[ $OSID != ubuntu ]]; then
370		echo "Currently, Vagrant installation is supported only on ubuntu"
371		return 0
372	fi
373
374	# Install vagrant and it's plugins dependencies
375	# function should be defined in pkgdep/$package_manager file
376	install_vagrant_dependencies
377
378	# Download and install vagrant
379	if hash vagrant &> /dev/null; then
380		echo "Vagrant is already installed"
381	else
382		wget "https://releases.hashicorp.com/vagrant/${vagrant_version}/${vagrant_installer}"
383		sudo dpkg -i "${vagrant_installer}"
384	fi
385	vagrant --version
386
387	# Install vagrant plugins
388	local vagrant_plugin_list
389	vagrant_plugin_list=$(vagrant plugin list)
390
391	local plugin
392	for plugin in "${vagrant_plugins[@]}"; do
393		if grep -Fq "$plugin" <<< "$vagrant_plugin_list"; then
394			echo "$plugin already installed"
395		else
396			vagrant plugin install "$plugin"
397		fi
398	done
399}
400
401function install_igb_uio() {
402	git clone "${GIT_REPO_DPDK_KMODS}" "$GIT_REPOS/dpdk-kmods"
403	(cd "$GIT_REPOS/dpdk-kmods/linux/igb_uio" && make -j ${jobs})
404	sudo mkdir -p "/lib/modules/$(uname -r)/extra/dpdk"
405	sudo cp "$GIT_REPOS/dpdk-kmods/linux/igb_uio/igb_uio.ko" "/lib/modules/$(uname -r)/extra/dpdk"
406	sudo depmod
407}
408
409function install_irdma() {
410	local RDMA_CORE_VERSION=27.0
411	local RDMA_CORE=https://github.com/linux-rdma/rdma-core/releases/download/v$RDMA_CORE_VERSION/rdma-core-$RDMA_CORE_VERSION.tar.gz
412
413	if [[ $ID != fedora ]]; then
414		echo "Installation of the irdma can be attempted only on Fedora"
415		return 0
416	fi
417
418	# Install extra dependencies needed by the rdma-core-27.0
419	install ninja-build pandoc perl-generators valgrind-devel python-docutils libnl3 libnl3-devel
420
421	rm -rf "$GIT_REPOS/irdma-$IRDMA_VERSION"
422	rm -rf "$GIT_REPOS/rdma-core-$RDMA_CORE_VERSION"
423
424	curl -L -o- "$IRDMA_DRIVER" | tar -C "$GIT_REPOS" -xzf -
425	[[ -e $GIT_REPOS/irdma-$IRDMA_VERSION/build.sh ]]
426
427	(
428		cd "$GIT_REPOS/irdma-$IRDMA_VERSION"
429		"$GIT_REPOS/irdma-$IRDMA_VERSION/build.sh"
430	)
431
432	# Fetch and build the rdma-core irdma depends on
433	curl -L -o- "$RDMA_CORE" | tar -C "$GIT_REPOS" -xzf -
434	[[ -e $GIT_REPOS/irdma-$IRDMA_VERSION/libirdma-$RDMA_CORE_VERSION.patch ]]
435
436	patch --dir="$GIT_REPOS/rdma-core-$RDMA_CORE_VERSION" -p2 \
437		< "$GIT_REPOS/irdma-$IRDMA_VERSION/libirdma-$RDMA_CORE_VERSION.patch"
438
439	# Note that paths and the name of the package are hardcoded into .spec, hence they need to stay like this.
440	[[ -e $GIT_REPOS/rdma-core-$RDMA_CORE_VERSION/redhat/rdma-core.spec ]]
441	mkdir -p "$HOME/rpmbuild/"{SOURCES,SPECS}
442	cp "$GIT_REPOS/rdma-core-$RDMA_CORE_VERSION/redhat/rdma-core.spec" "$HOME/rpmbuild/SPECS"
443
444	# Re-package the source
445	tar -czf "$HOME/rpmbuild/SOURCES/rdma-core-$RDMA_CORE_VERSION.tgz" -C "$GIT_REPOS" "rdma-core-$RDMA_CORE_VERSION"
446
447	# Build the rpms
448	(
449		cd "$HOME/rpmbuild/SPECS"
450		# Make sure stock ninja-build is used
451		PATH="/usr/bin:$PATH" rpmbuild -ba rdma-core.spec
452	)
453
454	# Now, don't install the packages since this will, most likely, conflict with packages already installed
455	# in the system. Instead, simply inform user what the next step is and note what potential issues it may
456	# have with the installation.
457
458	shopt -s nullglob
459	local rpms=("$HOME/rpmbuild/RPMS/x86_64/"*.rpm)
460	shopt -u nullglob
461	((${#rpms[@]} > 0))
462
463	cat <<-EOF
464
465		INFO: rdma-core-$RDMA_CORE_VERSION was successfully built, following packages are
466		available for installation:
467
468		$(printf '  - %s\n' "${rpms[@]##*/}")
469
470		Note that installing the above packages may raise conflicts with their
471		potentially newer versions already installed on the system. Dependent
472		packages may be uninstalled during the process as well. Please, run the
473		following command to finish the installation:
474
475		  $package_manager install [--allowerasing] $HOME/rpmbuild/RPMS/x86_64/*.rpm
476
477	EOF
478}
479
480function install_ice() {
481	rm -rf "$GIT_REPOS/ice-$ICE_VERSION"
482
483	curl -L -o- "$ICE_DRIVER" | tar -C "$GIT_REPOS" -xzf -
484	(
485		cd "$GIT_REPOS/ice-$ICE_VERSION/src"
486		make -j"$(nproc)" install
487	)
488}
489
490function install_sources() {
491	if [[ $ID == centos ]] && (( VERSION_ID == 7 )); then
492		# install proper version of the git first
493		install_git
494	fi
495
496	IFS="," read -ra conf_env <<< "$CONF"
497	for conf in "${conf_env[@]}"; do
498		export "INSTALL_${conf^^}=true"
499	done
500
501	if [[ $OSID == freebsd ]]; then
502		jobs=$(($(sysctl -n hw.ncpu) * 2))
503	else
504		jobs=$(($(nproc) * 2))
505		sources+=(
506			install_irdma
507			install_libiscsi
508			install_nvmecli
509			install_qat
510			install_rocksdb
511			install_flamegraph
512			install_qemu
513			install_igb_uio
514			install_ice
515		)
516		install_extra_pkgs
517	fi
518	sources+=(install_fio)
519	sources+=(install_vagrant)
520	sources+=(install_spdk)
521
522	sudo mkdir -p /usr/{,local}/src
523	sudo mkdir -p "$GIT_REPOS"
524
525	for source in "${sources[@]}"; do
526		source_conf=${source^^}
527		if [[ ${!source_conf} == true ]]; then
528			"$source"
529		fi
530	done
531
532	if [[ $INSTALL_REFSPDK == true ]]; then
533		# Serialize builds as refspdk depends on spdk
534		[[ $INSTALL_SPDK != true ]] && install_spdk
535		install_refspdk latest
536		install_refspdk LTS
537	fi
538}
539
540GIT_VERSION=2.25.1
541IRDMA_VERSION=1.2.21
542ICE_VERSION=1.2.1
543: ${GIT_REPO_SPDK=https://github.com/spdk/spdk.git}
544export GIT_REPO_SPDK
545: ${GIT_REPO_DPDK=https://github.com/spdk/dpdk.git}
546export GIT_REPO_DPDK
547: ${GIT_REPO_ROCKSDB=https://review.spdk.io/spdk/rocksdb}
548export GIT_REPO_ROCKSDB
549: ${GIT_REPO_FIO=https://github.com/axboe/fio.git}
550export GIT_REPO_FIO
551: ${GIT_REPO_FLAMEGRAPH=https://github.com/brendangregg/FlameGraph.git}
552export GIT_REPO_FLAMEGRAPH
553: ${GIT_REPO_QEMU=https://github.com/spdk/qemu}
554export GIT_REPO_QEMU
555: ${GIT_REPO_QEMU_VFIO=https://github.com/tmakatos/qemu}
556export GIT_REPO_QEMU_VFIO
557: ${GIT_REPO_LIBISCSI=https://github.com/sahlberg/libiscsi}
558export GIT_REPO_LIBISCSI
559: ${GIT_REPO_INTEL_IPSEC_MB=https://github.com/spdk/intel-ipsec-mb.git}
560export GIT_REPO_INTEL_IPSEC_MB
561: ${DRIVER_LOCATION_QAT=https://01.org/sites/default/files/downloads//qat1.7.l.4.12.0-00011.tar.gz}
562export DRIVER_LOCATION_QAT
563: ${GIT_REPO_GIT=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz}
564export GIT_REPO_GIT
565: ${GIT_REPO_DPDK_KMODS=http://dpdk.org/git/dpdk-kmods}
566export GIT_REPO_DPDK_KMODS
567: ${IRDMA_DRIVER=https://downloadmirror.intel.com/30238/eng/irdma-$IRDMA_VERSION.tgz}
568export IRDMA_DRIVER
569: ${ICE_DRIVER=https://downloadmirror.intel.com/30234/eng/ice-$ICE_VERSION.tar.gz}
570export ICE_DRIVER
571GIT_REPOS=${GIT_REPOS:-$HOME}
572
573gcc_version=$(gcc -dumpversion) gcc_version=${gcc_version%%.*}
574