1ca95a718SMichal Berger#!/usr/bin/env bash 2eb53c232Spaul luse# SPDX-License-Identifier: BSD-3-Clause 3eb53c232Spaul luse# Copyright (C) 2020 Intel Corporation 40ab4de56SAlexey Marchuk# Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. 5eb53c232Spaul luse# All rights reserved. 634bc24f1SJim Harris# Copyright (c) 2022 Dell Inc, or its subsidiaries. 7eb53c232Spaul luse# 8ca95a718SMichal Berger 989d49f77SMichal Bergercase "$VERSION_CODENAME" in 1089d49f77SMichal Berger bookworm | noble) 1189d49f77SMichal Berger # These ship with pip which enforces PEP668 1289d49f77SMichal Berger apt-get install -y python3-venv 1389d49f77SMichal Berger virtdir=${PIP_VIRTDIR:-/var/spdk/dependencies/pip} 1489d49f77SMichal Berger 1589d49f77SMichal Berger mkdir --p "$virtdir" 1689d49f77SMichal Berger pkgdep_toolpath pip "$virtdir/bin" 1789d49f77SMichal Berger 1889d49f77SMichal Berger pip3() ( 1989d49f77SMichal Berger if [[ ! -e $virtdir/bin/activate ]]; then 2089d49f77SMichal Berger python3 -m venv --upgrade-deps --system-site-packages "$virtdir" 2189d49f77SMichal Berger fi 2289d49f77SMichal Berger source "$virtdir/bin/activate" 2389d49f77SMichal Berger "$virtdir/bin/pip3" "$@" 2489d49f77SMichal Berger ) 25b10f50b0SMichal Berger 26b10f50b0SMichal Berger apt-get install -y pkgconf 2789d49f77SMichal Berger ;; 28b10f50b0SMichal Berger *) 29b10f50b0SMichal Berger apt-get install -y pkg-config 30b10f50b0SMichal Berger ;; 3189d49f77SMichal Bergeresac 3289d49f77SMichal Berger 336f4e195fSMichal Bergerapt-get install -y gcc g++ make libcunit1-dev libaio-dev libssl-dev libjson-c-dev libcmocka-dev uuid-dev libiscsi-dev \ 346f4e195fSMichal Berger libkeyutils-dev libncurses5-dev libncursesw5-dev python3 python3-pip python3-dev unzip libfuse3-dev patchelf 356f4e195fSMichal Berger 36ca95a718SMichal Bergerpip3 install ninja 37ed1571eeSMichal Bergerpip3 install meson 38738cdf14SKarol Lateckipip3 install pyelftools 39597688b2SKonrad Sztyberpip3 install ijson 405d5d9cbbSKonrad Sztyberpip3 install python-magic 41509241ceSKonrad Sztyberpip3 install grpcio 42509241ceSKonrad Sztyberpip3 install grpcio-tools 43d2db3959SKonrad Sztyberpip3 install pyyaml 44da094053SEugene Kobyakpip3 install Jinja2 45b538e6efSEugene Kobyakpip3 install tabulate 46ed1571eeSMichal Berger# Additional dependencies for SPDK CLI 47ed1571eeSMichal Bergerapt-get install -y python3-configshell-fb python3-pexpect 48ca95a718SMichal Berger 49ca95a718SMichal Berger# Additional dependencies for DPDK 50ed1571eeSMichal Bergerapt-get install -y nasm libnuma-dev 51ca95a718SMichal Berger# Additional dependencies for ISA-L used in compression 52ca95a718SMichal Bergerapt-get install -y autoconf automake libtool help2man 535a1c74bfSJim Harris# Additional dependencies for USDT 545a1c74bfSJim Harrisapt-get install -y systemtap-sdt-dev 55ca95a718SMichal Bergerif [[ $INSTALL_DEV_TOOLS == "true" ]]; then 56ca95a718SMichal Berger # Tools for developers 57ed1571eeSMichal Berger apt-get install -y git astyle lcov clang sg3-utils pciutils shellcheck \ 585e75b913SMichal Berger abigail-tools bash-completion ruby-dev pycodestyle bundler rake 591ff3715dSJosh Soref # Additional dependencies for nvmf performance test script 60ca95a718SMichal Berger apt-get install -y python3-paramiko 61ca95a718SMichal Bergerfi 62ca95a718SMichal Bergerif [[ $INSTALL_PMEM == "true" ]]; then 63ca95a718SMichal Berger # Additional dependencies for building pmem based backends 64ed1571eeSMichal Berger apt-get install -y libpmem-dev libpmemblk-dev libpmemobj-dev 65ca95a718SMichal Bergerfi 668a5d487dSMykola Golubif [[ $INSTALL_RBD == "true" ]]; then 678a5d487dSMykola Golub # Additional dependencies for RBD bdev in NVMe over Fabrics 688a5d487dSMykola Golub apt-get install -y librados-dev librbd-dev 698a5d487dSMykola Golubfi 70ca95a718SMichal Bergerif [[ $INSTALL_RDMA == "true" ]]; then 71ca95a718SMichal Berger # Additional dependencies for RDMA transport in NVMe over Fabrics 72ca95a718SMichal Berger apt-get install -y libibverbs-dev librdmacm-dev 73ca95a718SMichal Bergerfi 74ca95a718SMichal Bergerif [[ $INSTALL_DOCS == "true" ]]; then 75ca95a718SMichal Berger # Additional dependencies for building docs 76ca95a718SMichal Berger apt-get install -y doxygen mscgen graphviz 77ca95a718SMichal Bergerfi 7834bc24f1SJim Harris# Additional dependencies for Avahi 7934bc24f1SJim Harrisif [[ $INSTALL_AVAHI == "true" ]]; then 8034bc24f1SJim Harris # Additional dependencies for Avahi 8134bc24f1SJim Harris apt-get install -y libavahi-client-dev 8234bc24f1SJim Harrisfi 8344dcf4fbSTomasz Zawadzkiif [[ $INSTALL_IDXD == "true" ]]; then 8444dcf4fbSTomasz Zawadzki # accel-config-devel is required for kernel IDXD implementation used in DSA accel module 8544dcf4fbSTomasz Zawadzki if [[ $ID == "ubuntu" && ${VERSION_ID:0:2} -ge "23" ]]; then 8644dcf4fbSTomasz Zawadzki apt-get install -y libaccel-config-dev 8744dcf4fbSTomasz Zawadzki else 8844dcf4fbSTomasz Zawadzki echo "libaccel-config is only present on Ubuntu 23.04 or higher." 8944dcf4fbSTomasz Zawadzki fi 9044dcf4fbSTomasz Zawadzkifi 916fac5aabSYankun Liif [[ $INSTALL_LZ4 == "true" ]]; then 926fac5aabSYankun Li apt-get install -y liblz4-dev 936fac5aabSYankun Lifi 94