#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# A script to install dependencies required for release
# verification on Ubuntu.

set -exu

codename=$(. /etc/os-release && echo ${UBUNTU_CODENAME})

case ${codename} in
  bionic)
    llvm=12
    nlohmann_json=
    python=3.8
    apt-get update -y -q
    apt-get install -y -q --no-install-recommends \
      apt-transport-https \
      ca-certificates \
      gnupg \
      wget
    wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
    echo "deb https://apt.llvm.org/${codename}/ llvm-toolchain-${codename}-${llvm} main" > \
      /etc/apt/sources.list.d/llvm.list
    apt-get update -y -q
    apt-get install -y -q --no-install-recommends \
      llvm-${llvm}-dev
    ;;
  *)
    nlohmann_json=3
    python=3
    apt-get update -y -q
    apt-get install -y -q --no-install-recommends \
      llvm-dev
    ;;
esac

apt-get install -y -q --no-install-recommends \
  build-essential \
  clang \
  cmake \
  curl \
  git \
  gnupg \
  libcurl4-openssl-dev \
  libgirepository1.0-dev \
  libglib2.0-dev \
  libsqlite3-dev \
  libssl-dev \
  maven \
  ninja-build \
  nlohmann-json${nlohmann_json}-dev \
  openjdk-11-jdk \
  pkg-config \
  python${python}-dev \
  python${python}-venv \
  python3-pip \
  ruby-dev \
  tzdata \
  wget

case ${codename} in
  bionic)
    python${python} -m pip install -U pip
    update-alternatives \
      --install /usr/bin/python3 python3 /usr/bin/python${python} 1
    ;;
esac
