#!/bin/bash set -Eeuo pipefail DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" source "$DIR/../util.sh" check_operating_system "debian-11" 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 libffi7 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 # 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 openjdk-17-jdk custom-maven3.9.3 # for driver tests dotnet-sdk-3.1 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() { cat >/etc/apt/sources.list <> /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" == openjdk-17-jdk ]; then if ! dpkg -s "$pkg" 2>/dev/null >/dev/null; then apt install -y "$pkg" # The default Java version should be Java 11 update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java update-alternatives --set javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac fi continue fi if [ "$pkg" == dotnet-sdk-3.1 ]; then if ! dpkg -s "$pkg" 2>/dev/null >/dev/null; then wget -nv https://packages.microsoft.com/config/debian/10/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-3.1 fi continue fi apt install -y "$pkg" done } deps=$2"[*]" "$1" "${!deps}"