xref: /spdk/test/common/config/pkgdep/git (revision 52939f252f2e182ba62a91f015fc30b8e463d7b0)
1function install_qat() {
2	if ! hash yasm; then
3		install yasm
4	fi
5
6	install libnl3 libnl3-devel || install libnl-3-200 libnl-3-dev
7
8	in_syms() {
9		local syms
10		if [[ -e /proc/kallsyms ]]; then
11			syms=/proc/kallsyms
12		elif [[ -e /boot/System.map-$kernel_ver ]]; then
13			syms=/boot/System.map-$kernel_ver
14		else
15			return 0
16		fi
17
18		grep -q "$1" "$syms"
19	}
20
21	if [[ -e /sys/module/qat_c62x ]]; then
22		sudo modprobe -r qat_c62x || :
23	fi
24	if [[ -d $GIT_REPOS/QAT ]]; then
25		sudo rm -rf "$GIT_REPOS/QAT"
26	fi
27
28	mkdir "$GIT_REPOS/QAT"
29
30	tar -C "$GIT_REPOS/QAT" -xzof - < <(wget -O- "$DRIVER_LOCATION_QAT")
31
32	if ge "$kernel_ver" 6.7.0; then
33		patch --dir="$GIT_REPOS/QAT" -p1
34	fi < "$rootdir/test/common/config/pkgdep/patches/qat/0001-phys_proc_id.patch"
35
36	if ge "$kernel_ver" 6.8.0; then
37		patch --dir="$GIT_REPOS/QAT" -p1 < \
38			"$rootdir/test/common/config/pkgdep/patches/qat/0001-strlcpy-to-strscpy.patch"
39		patch --dir="$GIT_REPOS/QAT" -p1 < \
40			"$rootdir/test/common/config/pkgdep/patches/qat/0001-missing-prototypes.patch"
41	fi
42
43	patch --dir="$GIT_REPOS/QAT" -p1 \
44		< "$rootdir/test/common/config/pkgdep/patches/qat/0001-no-vmlinux.patch"
45
46	(cd "$GIT_REPOS/QAT" && sudo ./configure --enable-icp-sriov=host && sudo make install)
47
48	if ! sudo service qat_service start; then
49		echo "failed to start the qat service. Something may be wrong with your device or package."
50	fi
51}
52
53function install_rocksdb() {
54	# Rocksdb is installed for use with the blobfs tests.
55	if [ ! -d /usr/src/rocksdb ]; then
56		git clone "${GIT_REPO_ROCKSDB}" "$GIT_REPOS/rocksdb"
57		git -C "$GIT_REPOS/rocksdb" checkout 6.15.fb
58		sudo mv "$GIT_REPOS/rocksdb" /usr/src/
59	else
60		sudo git -C /usr/src/rocksdb checkout 6.15.fb
61		echo "rocksdb already in /usr/src. Not checking out again"
62	fi
63}
64
65function install_ittapi() {
66	# Install Intel Instrumentation and Trace API
67	local ittapi_version=v3.24.5 ittapi_dir=/usr/src/ittapi
68
69	rm -rf "$ittapi_dir"
70	git clone "${GIT_REPO_ITTAPI}" --branch "$ittapi_version" "$GIT_REPOS/ittapi"
71	make -C "$GIT_REPOS/ittapi/src/ittnotify_refcol"
72
73	mv "$GIT_REPOS/ittapi" "$ittapi_dir"
74	ln -s . "$ittapi_dir/sdk"
75}
76
77function install_fio() {
78	# This version of fio is installed in /usr/src/fio to enable
79	# building the spdk fio plugin.
80	local fio_version="fio-3.35"
81
82	if [ ! -d /usr/src/fio ]; then
83		if [ ! -d fio ]; then
84			git clone "${GIT_REPO_FIO}" "$GIT_REPOS/fio"
85			sudo mv "$GIT_REPOS/fio" /usr/src/
86		else
87			sudo mv "$GIT_REPOS/fio" /usr/src/
88		fi
89		(
90			git -C /usr/src/fio checkout master \
91				&& git -C /usr/src/fio pull \
92				&& git -C /usr/src/fio checkout $fio_version \
93				&& if [ $OSID == 'freebsd' ]; then
94					gmake -C /usr/src/fio -j${jobs} \
95						&& sudo gmake -C /usr/src/fio install
96				else
97					make -C /usr/src/fio -j${jobs} \
98						&& sudo make -C /usr/src/fio install
99				fi
100		)
101	else
102		echo "fio already in /usr/src/fio. Not installing"
103	fi
104}
105
106function install_flamegraph() {
107	# Flamegraph is used when printing out timing graphs for the tests.
108	if [ ! -d /usr/local/FlameGraph ]; then
109		git clone "${GIT_REPO_FLAMEGRAPH}" "$GIT_REPOS/FlameGraph"
110		mkdir -p /usr/local
111		sudo mv "$GIT_REPOS/FlameGraph" /usr/local/FlameGraph
112	else
113		echo "flamegraph already installed. Skipping"
114	fi
115}
116
117function _install_qemu() {
118	local repo=$1
119	local branch=$2
120	local prefix=${3:-}
121	local name=${4:-}
122
123	mkdir -p "$GIT_REPOS/qemu"
124
125	local repo_dir=$GIT_REPOS/qemu/$branch
126	if [[ -n $prefix ]]; then
127		repo_dir=$GIT_REPOS/qemu/$prefix-$branch
128	fi
129
130	if [[ ! -d $repo_dir ]]; then
131		git clone "$repo" -b "$branch" "$repo_dir"
132	else
133		echo "qemu already checked out. Skipping"
134	fi
135
136	declare -a opt_params=("--prefix=/usr/local/qemu/${repo_dir##*/}")
137	declare -a extra_cflags=()
138
139	opt_params+=("--disable-docs")
140	if ((gcc_version >= 9)); then
141		opt_params+=("--disable-glusterfs")
142	fi
143
144	extra_cflags+=("-Wno-error")
145
146	# Most tsocks proxies rely on a configuration file in /etc/tsocks.conf.
147	# If using tsocks, please make sure to complete this config before trying to build qemu.
148	if [[ $INSTALL_TSOCKS == true && $NO_TSOCKS != true ]]; then
149		if hash tsocks 2> /dev/null; then
150			opt_params+=("--with-git='tsocks git'")
151		fi
152	fi
153	opt_params+=("--extra-cflags=${extra_cflags[*]}")
154
155	if [[ $prefix == vanilla ]]; then
156		# Latest qemu seems to take sysconfdir from the prefix and instead of checking /etc
157		# it looks under /usr/local/qemu/vanilla*/bin/../etc which is a bit peculiar. Fix it.
158		opt_params+=("--sysconfdir=/etc/")
159	fi
160
161	# The qemu configure script places several output files in the CWD.
162	(cd "$repo_dir" && ./configure "${opt_params[@]}" --target-list="x86_64-softmmu" --enable-kvm --enable-linux-aio --enable-numa)
163
164	make -C "$repo_dir" -j${jobs}
165	sudo make -C "$repo_dir" install
166
167	# Add a symlink to point at a latest build - this is useful to easily track QEMU flavors for which
168	# branches change quite often (e.g. vfio-user's).
169	[[ -n $name ]] || return 0
170	[[ -L /usr/local/qemu/$name-latest ]] && sudo rm "/usr/local/qemu/$name-latest"
171	sudo ln -s "/usr/local/qemu/${repo_dir##*/}" "/usr/local/qemu/$name-latest"
172}
173
174function install_qemu() {
175	# Four versions of QEMU are used in the tests, three are installed
176	# directly from the source. Each QEMU is dedicated for different
177	# use-cases:
178	#  - Packed QEMU: version provided by given distro. Used to boot VMs
179	#    from within vhost tests.
180	#  - vfio-user QEMU: A special fork to test libvfio-user components.
181	#  - Vanilla QEMU: Used by the CI to boot the testing VMs.
182
183	_install_qemu $GIT_REPO_QEMU_VFIO $VFIO_QEMU_BRANCH "" vfio-user
184	_install_qemu "$GIT_REPO_QEMU" "$VANILLA_QEMU_BRANCH" vanilla vanilla
185}
186
187function install_nvmecli() {
188	# nvme-cli >1.11.1 should be used.
189	rm -rf "$GIT_REPOS/nvme-cli-cuse"
190	git clone "https://github.com/linux-nvme/nvme-cli.git" "$GIT_REPOS/nvme-cli-cuse"
191	git -C "$GIT_REPOS/nvme-cli-cuse" checkout v2.5
192
193	meson setup --force-fallback-for=libnvme \
194		"$GIT_REPOS/nvme-cli-cuse/.build" \
195		"$GIT_REPOS/nvme-cli-cuse"
196	meson compile -C "$GIT_REPOS/nvme-cli-cuse/.build"
197
198	rm -rf /usr/local/src/nvme-cli
199	mv "$GIT_REPOS/nvme-cli-cuse" /usr/local/src/nvme-cli
200
201	# Make sure binary is available for the cuse tests
202	if [[ -e /usr/local/src/nvme-cli/.build/nvme ]]; then
203		sudo ln -s .build/nvme /usr/local/src/nvme-cli/
204	fi
205}
206
207# This function install version of nvme-cli, that support listing spdk nvme
208# devices, should be remove after changes present in nvme-cli upstream.
209function install_nvmecli_plugin() {
210	rm -rf "$GIT_REPOS/nvme-cli-plugin"
211
212	git clone $GIT_REPO_NVME_CLI "$GIT_REPOS/nvme-cli-plugin"
213	git -C "$GIT_REPOS/nvme-cli-plugin" fetch $GIT_REPO_NVME_CLI refs/changes/95/16795/12
214	git -C "$GIT_REPOS/nvme-cli-plugin" checkout FETCH_HEAD
215
216	meson setup --force-fallback-for=libnvme,json-c \
217		"$GIT_REPOS/nvme-cli-plugin/.build" \
218		"$GIT_REPOS/nvme-cli-plugin"
219	meson compile -C "$GIT_REPOS/nvme-cli-plugin/.build"
220
221	rm -rf /usr/local/src/nvme-cli-plugin
222	mv "$GIT_REPOS/nvme-cli-plugin" /usr/local/src/nvme-cli-plugin
223
224	# Make sure binary is available for the plugin tests
225	if [[ -e /usr/local/src/nvme-cli-plugin/.build/nvme ]]; then
226		sudo ln -s .build/nvme /usr/local/src/nvme-cli-plugin/
227	fi
228}
229
230function install_libiscsi() {
231	# We currently don't make any changes to the libiscsi repository for our tests, but it is possible that we will need
232	# to later. Cloning from git is just future proofing the machines.
233	if [[ ! -d $GIT_REPOS/libiscsi ]]; then
234		git clone "${GIT_REPO_LIBISCSI}" "$GIT_REPOS/libiscsi"
235	else
236		echo "libiscsi already checked out. Skipping"
237	fi
238	(cd "$GIT_REPOS/libiscsi" && ./autogen.sh && ./configure --prefix=/usr/local/libiscsi)
239	make -C "$GIT_REPOS/libiscsi" -j${jobs} WARN_CFLAGS=
240	sudo make -C "$GIT_REPOS/libiscsi" install
241}
242
243function install_git() {
244	if type -P git; then
245		if ge "$(git --version | awk '{print $3}')" "$GIT_VERSION"; then
246			return 0
247		fi
248	fi >/dev/null
249
250	install zlib-devel curl-devel
251	tar -C "$GIT_REPOS" -xzof <(wget -qO- "$GIT_REPO_GIT")
252	(cd "$GIT_REPOS/git-$GIT_VERSION" \
253		&& make configure \
254		&& ./configure \
255		&& sudo make -j${jobs} install)
256}
257
258function install_extra_pkgs() {
259	if [[ $INSTALL_QAT == true ]]; then
260		install libudev-devel || install libudev-dev || :
261	fi
262
263	if [[ $INSTALL_QEMU == true ]]; then
264		install qemu-system-x86 qemu-img \
265			|| install qemu-system-x86 qemu-utils \
266			|| install qemu
267
268		# Install extra dependency which was removed from Qemu 7.2 source tree
269		install libslirp-devel \
270			|| install libslirp-dev
271	fi || :
272}
273
274function install_vagrant() {
275	local vagrant_version="2.2.7"
276	local vagrant_installer="vagrant_${vagrant_version}_x86_64.deb"
277	local vagrant_plugins=(vagrant-libvirt vagrant-sshfs vagrant-cachier vagrant-proxyconf)
278
279	if [[ $OSID != ubuntu ]]; then
280		echo "Currently, Vagrant installation is supported only on ubuntu"
281		return 0
282	fi
283
284	# Install vagrant and it's plugins dependencies
285	# function should be defined in pkgdep/$package_manager file
286	install_vagrant_dependencies
287
288	# Download and install vagrant
289	if hash vagrant &> /dev/null; then
290		echo "Vagrant is already installed"
291	else
292		wget "https://releases.hashicorp.com/vagrant/${vagrant_version}/${vagrant_installer}"
293		sudo dpkg -i "${vagrant_installer}"
294	fi
295	vagrant --version
296
297	# Install vagrant plugins
298	local vagrant_plugin_list
299	vagrant_plugin_list=$(vagrant plugin list)
300
301	local plugin
302	for plugin in "${vagrant_plugins[@]}"; do
303		if grep -Fq "$plugin" <<< "$vagrant_plugin_list"; then
304			echo "$plugin already installed"
305		else
306			vagrant plugin install "$plugin"
307		fi
308	done
309}
310
311function install_igb_uio() {
312	git clone "${GIT_REPO_DPDK_KMODS}" "$GIT_REPOS/dpdk-kmods"
313
314	(cd "$GIT_REPOS/dpdk-kmods/linux/igb_uio" && make -j ${jobs})
315	sudo mkdir -p "/lib/modules/$(uname -r)/extra/dpdk"
316	sudo cp "$GIT_REPOS/dpdk-kmods/linux/igb_uio/igb_uio.ko" "/lib/modules/$(uname -r)/extra/dpdk"
317	sudo depmod
318}
319
320function install_irdma() {
321	local RDMA_CORE_VERSION=46.0
322	local RDMA_CORE=https://github.com/linux-rdma/rdma-core/releases/download/v$RDMA_CORE_VERSION/rdma-core-$RDMA_CORE_VERSION.tar.gz
323
324	if [[ $ID != fedora ]]; then
325		echo "Installation of the irdma can be attempted only on Fedora"
326		return 0
327	fi
328
329	# Install extra dependencies needed by the rdma-core
330	install ninja-build pandoc perl-generators valgrind-devel python-docutils libnl3 libnl3-devel python3-Cython
331
332	rm -rf "$GIT_REPOS/irdma-$IRDMA_VERSION"
333	rm -rf "$GIT_REPOS/rdma-core-$RDMA_CORE_VERSION"
334
335	curl -L -o- "$IRDMA_DRIVER" | tar -C "$GIT_REPOS" -xzf -
336	[[ -e $GIT_REPOS/irdma-$IRDMA_VERSION/build.sh ]]
337
338	if ge "$kernel_ver" 6.5.1; then
339		patch --dir="$GIT_REPOS/irdma-$IRDMA_VERSION" -p1
340	fi < "$rootdir/test/common/config/pkgdep/patches/irdma/0001-irdma-avoid-fortify-string-warning.patch"
341	(
342		cd "$GIT_REPOS/irdma-$IRDMA_VERSION"
343		sed -i "s/IRDMA_FLUSH_DELAY_MS 1500/IRDMA_FLUSH_DELAY_MS 50/" \
344			"$GIT_REPOS/irdma-$IRDMA_VERSION/src/irdma/verbs.h"
345		"$GIT_REPOS/irdma-$IRDMA_VERSION/build.sh"
346	)
347
348	# Fetch and build the rdma-core irdma depends on
349	curl -L -o- "$RDMA_CORE" | tar -C "$GIT_REPOS" -xzf -
350	[[ -e $GIT_REPOS/irdma-$IRDMA_VERSION/libirdma-$RDMA_CORE_VERSION.patch ]]
351
352	patch --dir="$GIT_REPOS/rdma-core-$RDMA_CORE_VERSION" -p2 \
353		< "$GIT_REPOS/irdma-$IRDMA_VERSION/libirdma-$RDMA_CORE_VERSION.patch"
354
355	# Note that paths and the name of the package are hardcoded into .spec, hence they need to stay like this.
356	[[ -e $GIT_REPOS/rdma-core-$RDMA_CORE_VERSION/redhat/rdma-core.spec ]]
357	mkdir -p "$HOME/rpmbuild/"{SOURCES,SPECS}
358	cp "$GIT_REPOS/rdma-core-$RDMA_CORE_VERSION/redhat/rdma-core.spec" "$HOME/rpmbuild/SPECS"
359
360	# Re-package the source
361	tar -czf "$HOME/rpmbuild/SOURCES/rdma-core-$RDMA_CORE_VERSION.tgz" -C "$GIT_REPOS" "rdma-core-$RDMA_CORE_VERSION"
362
363	# Build the rpms
364	(
365		cd "$HOME/rpmbuild/SPECS"
366		# Make sure stock ninja-build is used
367		PATH="/usr/bin:$PATH" rpmbuild -ba rdma-core.spec
368	)
369
370	# Now, don't install the packages since this will, most likely, conflict with packages already installed
371	# in the system. Instead, simply inform user what the next step is and note what potential issues it may
372	# have with the installation.
373
374	shopt -s nullglob
375	local rpms=("$HOME/rpmbuild/RPMS/x86_64/"*.rpm)
376	shopt -u nullglob
377	((${#rpms[@]} > 0))
378
379	cat <<-EOF
380
381		INFO: rdma-core-$RDMA_CORE_VERSION was successfully built, following packages are
382		available for installation:
383
384		$(printf '  - %s\n' "${rpms[@]##*/}")
385
386		Note that installing the above packages may raise conflicts with their
387		potentially newer versions already installed on the system. Dependent
388		packages may be uninstalled during the process as well. Please, run the
389		following command to finish the installation:
390
391		  $package_manager install [--allowerasing] $HOME/rpmbuild/RPMS/x86_64/*.rpm
392
393	EOF
394}
395
396function install_ice() {
397	rm -rf "$GIT_REPOS/ice-$ICE_VERSION"
398
399	curl -L -o- "$ICE_DRIVER" | tar -C "$GIT_REPOS" -xzf -
400
401	if ge "$kernel_ver" 6.7.0; then
402		patch --dir="$GIT_REPOS/ice-$ICE_VERSION/src" \
403			< "$rootdir/test/common/config/pkgdep/patches/ice/0001-devlink_fmsg.patch"
404		patch --dir="$GIT_REPOS/ice-$ICE_VERSION/src" \
405			< "$rootdir/test/common/config/pkgdep/patches/ice/0001-xdp_do_flush_map.patch"
406	fi
407
408	if ge "$kernel_ver" 6.8.0; then
409		patch --dir="$GIT_REPOS/ice-$ICE_VERSION/src"
410	fi < "$rootdir/test/common/config/pkgdep/patches/ice/0001-ethtool-set-get-rxfh-params.patch"
411
412	(
413		cd "$GIT_REPOS/ice-$ICE_VERSION/src"
414		sudo make -j"$(nproc)" install
415	)
416}
417
418function install_lcov() {
419	local lcov_version=v1.15
420
421	install perl-IO-Compress || install perl-modules
422
423	rm -rf /usr/src/lcov
424	sudo git clone "$GIT_REPO_LCOV" --branch "$lcov_version" /usr/src/lcov
425	(cd /usr/src/lcov; sudo make install)
426}
427
428function install_bpftrace() {
429	local deps=() bcc_rev
430
431	deps+=(cereal-devel)
432	deps+=(clang-devel)
433	deps+=(cmake)
434	deps+=(dwarves)
435	deps+=(gmock-devel)
436	deps+=(gtest-devel)
437	deps+=(llvm-devel)
438	deps+=(bcc-devel)
439	deps+=(libbpf-devel)
440
441	install "${deps[@]}"
442
443	rm -rf $GIT_REPOS/bpftrace
444
445	git clone "$GIT_REPO_BPFTRACE" "$GIT_REPOS/bpftrace"
446	git -C $GIT_REPOS/bpftrace checkout $BPFTRACE_VERSION
447
448	mkdir -p "$GIT_REPOS/bpftrace/build"
449	cmake \
450		-DCMAKE_BUILD_TYPE=Release \
451		-DBUILD_TESTING=OFF \
452		-B "$GIT_REPOS/bpftrace/build" \
453		-S "$GIT_REPOS/bpftrace"
454
455	make -C $GIT_REPOS/bpftrace/build -j$(nproc)
456	sudo make -C $GIT_REPOS/bpftrace/build install
457}
458
459function install_doxygen() {
460	# Stable, 1.10 commit that works for our docs
461	local release=78422d3905e57acebf0374feefafa6578dbe86aa
462
463	rm -rf "$GIT_REPOS/doxygen"
464
465	git clone "$GIT_REPO_DOXYGEN" "$GIT_REPOS/doxygen"
466	git -C "$GIT_REPOS/doxygen" checkout "$release"
467
468	mkdir -p "$GIT_REPOS/doxygen/build"
469
470	cmake -G "Unix Makefiles" \
471		-B "$GIT_REPOS/doxygen/build" \
472		-S "$GIT_REPOS/doxygen"
473
474	# This build is quite heavy, so let's not go crazy with -j here
475	make -C "$GIT_REPOS/doxygen/build" -j$(($(nproc) / 2))
476	make -C "$GIT_REPOS/doxygen/build" install
477}
478
479function install_sources() {
480	if [[ $ID == centos ]] && (( VERSION_ID == 7 )); then
481		# install proper version of the git first
482		install_git
483	fi
484
485	IFS="," read -ra conf_env <<< "$CONF"
486	for conf in "${conf_env[@]}"; do
487		export "INSTALL_${conf^^}=true"
488	done
489
490	if [[ $OSID == freebsd ]]; then
491		jobs=$(($(sysctl -n hw.ncpu) * 2))
492	else
493		jobs=$(($(nproc) * 2))
494		sources+=(
495			install_irdma
496			install_libiscsi
497			install_nvmecli
498			install_nvmecli_plugin
499			install_qat
500			install_rocksdb
501			install_flamegraph
502			install_qemu
503			install_igb_uio
504			install_ice
505			install_lcov
506			install_bpftrace
507			install_doxygen
508		)
509		install_extra_pkgs
510	fi
511	sources+=(install_fio)
512	sources+=(install_vagrant)
513	sources+=(install_ittapi)
514
515	sudo mkdir -p /usr/{,local}/src
516	sudo mkdir -p "$GIT_REPOS"
517
518	for source in "${sources[@]}"; do
519		source_conf=${source^^}
520		if [[ ${!source_conf} == true ]]; then
521			"$source"
522		fi
523	done
524}
525
526GIT_VERSION=2.25.1
527IRDMA_VERSION=1.13.43
528ICE_VERSION=1.13.7
529
530BPFTRACE_VERSION=${BPFTRACE_VERSION:-db63ddb}
531VFIO_QEMU_BRANCH=${VFIO_QEMU_BRANCH:-vfio-user-p3.0}
532VANILLA_QEMU_BRANCH=${VANILLA_QEMU_BRANCH:-v8.0.0}
533
534: ${GIT_REPO_ROCKSDB=https://review.spdk.io/spdk/rocksdb}
535export GIT_REPO_ROCKSDB
536: ${GIT_REPO_FIO=https://github.com/axboe/fio.git}
537export GIT_REPO_FIO
538: ${GIT_REPO_FLAMEGRAPH=https://github.com/brendangregg/FlameGraph.git}
539export GIT_REPO_FLAMEGRAPH
540: ${GIT_REPO_QEMU=https://github.com/qemu/qemu}
541export GIT_REPO_QEMU
542: ${GIT_REPO_QEMU_VFIO=https://github.com/oracle/qemu}
543export GIT_REPO_QEMU_VFIO
544: ${GIT_REPO_LIBISCSI=https://github.com/sahlberg/libiscsi}
545export GIT_REPO_LIBISCSI
546: ${DRIVER_LOCATION_QAT=https://downloadmirror.intel.com/795697/QAT.L.4.24.0-00005.tar.gz}
547export DRIVER_LOCATION_QAT
548: ${GIT_REPO_GIT=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz}
549export GIT_REPO_GIT
550: ${GIT_REPO_DPDK_KMODS=http://dpdk.org/git/dpdk-kmods}
551export GIT_REPO_DPDK_KMODS
552: ${IRDMA_DRIVER=https://downloadmirror.intel.com/812530/irdma-$IRDMA_VERSION.tgz}
553export IRDMA_DRIVER
554: ${ICE_DRIVER="https://sourceforge.net/projects/e1000/files/ice%20stable/$ICE_VERSION/ice-$ICE_VERSION.tar.gz"}
555export ICE_DRIVER
556: ${GIT_REPO_LCOV=https://github.com/linux-test-project/lcov}
557export GIT_REPO_LCOV
558: ${GIT_REPO_BCC=https://github.com/iovisor/bcc.git}
559export GIT_REPO_BCC
560: ${GIT_REPO_BPFTRACE=https://github.com/iovisor/bpftrace.git}
561export GIT_REPO_BPFTRACE
562: ${GIT_REPO_NVME_CLI=https://review.spdk.io/gerrit/spdk/nvme-cli}
563export GIT_REPO_NVME_CLI
564: ${GIT_REPO_ITTAPI=https://github.com/intel/ittapi.git}
565export GIT_REPO_ITTAPI
566: ${GIT_REPO_DOXYGEN="https://github.com/doxygen/doxygen"}
567export GIT_REPO_DOXYGEN
568
569GIT_REPOS=${GIT_REPOS:-$HOME}
570
571gcc_version=$(gcc -dumpversion) gcc_version=${gcc_version%%.*}
572if [[ -e /proc/sys/kernel/osrelease ]]; then
573	kernel_ver=$(< /proc/sys/kernel/osrelease)
574fi
575