Files
rk1/media/scripts/install-build-deps.sh

64 lines
2.2 KiB
Bash
Executable File

#!/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[@]}"