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