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