#!/bin/bash set -Eeuo pipefail DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" source "$DIR/../util.sh" check_operating_system "debian-12" check_architecture "x86_64" TOOLCHAIN_BUILD_DEPS=( coreutils gcc g++ build-essential make # generic build tools wget # used for archive download gnupg # used for archive signature verification tar gzip bzip2 xz-utils unzip # used for archive unpacking zlib1g-dev # zlib library used for all builds libexpat1-dev libipt-dev libbabeltrace-dev liblzma-dev python3-dev texinfo # for gdb libcurl4-openssl-dev # for cmake libreadline-dev # for cmake and llvm libffi-dev libxml2-dev # for llvm libedit-dev libpcre2-dev libpcre3-dev automake bison # for swig curl # snappy file # for libunwind libssl-dev # for libevent libgmp-dev gperf # for proxygen git # for fbthrift ) TOOLCHAIN_RUN_DEPS=( make # generic build tools tar gzip bzip2 xz-utils # used for archive unpacking zlib1g # zlib library used for all builds libexpat1 libipt2 libbabeltrace1 liblzma5 python3 # for gdb libcurl4 # for cmake file # for CPack libreadline8 # for cmake and llvm libffi8 libxml2 # for llvm libssl-dev # for libevent ) MEMGRAPH_BUILD_DEPS=( git # source code control make cmake pkg-config # build system curl wget # for downloading libs uuid-dev default-jre-headless # required by antlr libreadline-dev # for memgraph console libpython3-dev python3-dev # for query modules libssl-dev libseccomp-dev netcat-traditional # tests are using nc to wait for memgraph python3 virtualenv python3-virtualenv python3-pip # for qa, macro_benchmark and stress tests python3-yaml # for the configuration generator libcurl4-openssl-dev # mg-requests sbcl # for custom Lisp C++ preprocessing doxygen graphviz # source documentation generators mono-runtime mono-mcs zip unzip default-jdk-headless custom-maven3.9.3 # for driver tests dotnet-sdk-7.0 golang custom-golang1.18.9 nodejs npm autoconf # for jemalloc code generation libtool # for protobuf code generation libsasl2-dev ) MEMGRAPH_TEST_DEPS="${MEMGRAPH_BUILD_DEPS[*]}" MEMGRAPH_RUN_DEPS=( logrotate openssl python3 libseccomp ) NEW_DEPS=( wget curl tar gzip ) list() { echo "$1" } check() { local missing="" for pkg in $1; do if [ "$pkg" == custom-maven3.9.3 ]; then if [ ! -f "/opt/apache-maven-3.9.3/bin/mvn" ]; then missing="$pkg $missing" fi continue fi if [ "$pkg" == custom-golang1.18.9 ]; then if [ ! -f "/opt/go1.18.9/go/bin/go" ]; then missing="$pkg $missing" fi continue fi if ! dpkg -s "$pkg" >/dev/null 2>/dev/null; then missing="$pkg $missing" fi done if [ "$missing" != "" ]; then echo "MISSING PACKAGES: $missing" exit 1 fi } install() { cd "$DIR" apt update # If GitHub Actions runner is installed, append LANG to the environment. # Python related tests doesn't work the LANG export. if [ -d "/home/gh/actions-runner" ]; then echo "LANG=en_US.utf8" >> /home/gh/actions-runner/.env else echo "NOTE: export LANG=en_US.utf8" fi apt install -y wget for pkg in $1; do if [ "$pkg" == custom-maven3.9.3 ]; then install_custom_maven "3.9.3" continue fi if [ "$pkg" == custom-golang1.18.9 ]; then install_custom_golang "1.18.9" continue fi if [ "$pkg" == dotnet-sdk-7.0 ]; then if ! dpkg -s "$pkg" 2>/dev/null >/dev/null; then wget -nv https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb apt-get update apt-get install -y apt-transport-https dotnet-sdk-7.0 fi continue fi apt install -y "$pkg" done } deps=$2"[*]" "$1" "${!deps}"