Initial RK1 media-center image project
This commit is contained in:
Executable
+63
@@ -0,0 +1,63 @@
|
||||
#!/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[@]}"
|
||||
Reference in New Issue
Block a user