#!/usr/bin/env bash set -Eeuo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)" # shellcheck source=lib.sh . "${SCRIPT_DIR}/lib.sh" MODE=check case "${1:---check}" in --check) MODE=check ;; --install) MODE=install ;; -h|--help) printf 'Usage: install-build-deps.sh [--check|--install]\n' exit 0 ;; *) die "unknown argument: $1" ;; esac require_arm64_trixie need_command dpkg-query packages=( adduser autoconf automake autopoint autotools-dev build-essential ca-certificates cmake default-jre devscripts dpkg-dev file gawk gcc g++ gdc gettext git gperf hwdata jq libasound2-dev libass-dev libavahi-client-dev libavahi-common-dev libbluetooth-dev libbluray-dev libbz2-dev libcdio++-dev libcdio-dev libcec-dev libcrossguid-dev libcwiid-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libegl1-mesa-dev libenca-dev libexiv2-dev libflac-dev libfmt-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libfstrcmp-dev libgbm-dev libgcrypt20-dev libgif-dev libgl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev libgnutls28-dev libgpg-error-dev libgtest-dev libinput-dev libiso9660-dev libjpeg-dev liblcms2-dev liblirc-dev libltdl-dev liblzo2-dev libmariadb-dev libmicrohttpd-dev libnfs-dev libogg-dev libp8-platform-dev libpcre2-dev libplist-dev libpng-dev libpulse-dev libshairplay-dev libsmbclient-dev libspdlog-dev libsqlite3-dev libssl-dev libtag1-dev libtiff-dev libtinyxml2-dev libtinyxml-dev libtool libudev-dev libunistring-dev libvorbis-dev libxkbcommon-dev libxslt1-dev libxt-dev lsb-release meson nasm ninja-build nlohmann-json3-dev patch pkg-config python3-dev python3-pil python3-pip rapidjson-dev swig unzip uuid-dev zip zlib1g-dev ) missing=() for package in "${packages[@]}"; do if ! dpkg-query -W -f='${db:Status-Abbrev}' "${package}" 2>/dev/null | grep -q '^ii '; then missing+=("${package}") fi done if ((${#missing[@]} == 0)); then log "all build dependencies are installed" exit 0 fi if [[ "${MODE}" == "check" ]]; then printf 'Missing build packages:\n' printf ' %s\n' "${missing[@]}" exit 1 fi [[ "${EUID}" -eq 0 ]] || die "--install must run as root (use sudo)" export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y --no-install-recommends "${missing[@]}"