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