From 97c7b8bf147df936fa228665c71c848a54e29d6d Mon Sep 17 00:00:00 2001 From: Joey Yakimowich-Payne Date: Wed, 11 Feb 2026 11:40:41 -0700 Subject: [PATCH] Build toolbox --- scripts/bootstrap-toolbox-build.sh | 79 ++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 scripts/bootstrap-toolbox-build.sh diff --git a/scripts/bootstrap-toolbox-build.sh b/scripts/bootstrap-toolbox-build.sh new file mode 100755 index 00000000..d3f546c9 --- /dev/null +++ b/scripts/bootstrap-toolbox-build.sh @@ -0,0 +1,79 @@ +#!/usr/bin/env bash +set -euo pipefail + +JOBS="${JOBS:-$(nproc)}" +SKIP_BUILD=0 + +for arg in "$@"; do + case "$arg" in + --skip-build) + SKIP_BUILD=1 + ;; + --jobs=*) + JOBS="${arg#*=}" + ;; + *) + echo "Unknown argument: $arg" + echo "Usage: $0 [--skip-build] [--jobs=N]" + exit 1 + ;; + esac +done + +if [[ ! -f /run/.containerenv ]]; then + echo "Run this script inside your toolbox container." + exit 1 +fi + +if ! command -v dnf >/dev/null 2>&1; then + echo "This script expects a Fedora/RHEL-like toolbox with dnf." + exit 1 +fi + +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$REPO_ROOT" + +FEDORA_VER="$(rpm -E %fedora)" + +if ! rpm -q rpmfusion-free-release >/dev/null 2>&1; then + sudo dnf -y install "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VER}.noarch.rpm" +fi + +if ! rpm -q rpmfusion-nonfree-release >/dev/null 2>&1; then + sudo dnf -y install "https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VER}.noarch.rpm" +fi + +sudo dnf -y install \ + ffmpeg ffmpeg-devel \ + git make gcc gcc-c++ pkgconf-pkg-config \ + qt6-qtbase-devel qt6-qtdeclarative-devel qt6-qtquickcontrols2-devel qt6-qtsvg-devel qt6-qtwayland-devel \ + SDL2-devel SDL2_ttf-devel \ + opus-devel openssl-devel \ + libva-utils libva-devel libdrm-devel mesa-libEGL-devel mesa-libGL-devel \ + libX11-devel libXext-devel libXrandr-devel libXfixes-devel libXi-devel libXcursor-devel + +if rpm -q libva-intel-media-driver >/dev/null 2>&1; then + sudo dnf -y swap libva-intel-media-driver intel-media-driver --allowerasing +elif ! rpm -q intel-media-driver >/dev/null 2>&1; then + sudo dnf -y install intel-media-driver +fi + +git submodule update --init --recursive + +if command -v vainfo >/dev/null 2>&1; then + if ! vainfo 2>/dev/null | grep -q 'VAProfileHEVCMain'; then + echo "Warning: HEVC decode profile not detected in VAAPI." + fi + if ! vainfo 2>/dev/null | grep -q 'VAProfileH264High'; then + echo "Warning: H264 decode profile not detected in VAAPI." + fi +fi + +rm -rf Makefile */Makefile */Makefile.* app/release app/debug +qmake6 moonlight-qt.pro + +if [[ "$SKIP_BUILD" -eq 0 ]]; then + make release -j"$JOBS" +fi + +echo "Done."