FFmpeg: Move required provisioning packages into common files

The packages required for FFmpeg provisioning may change between FFmpeg
versions, as is the case when upgrading to FFmpeg n8.1. It is a
time-waster to manually go through all hosts to make sure they all
have the correct packages. Additionally we have no way of knowing
whether a package is used by FFmpeg and/or something else.

This patch moves the list of required FFmpeg packages into some common
files, and refactors each host to read these files. This way we can
modify provisioning in one place.

Pick-to: 6.11
Change-Id: I31d409595b7da231b1f845c18095e77f7af51b0a
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
This commit is contained in:
Nils Petter Skålerud
2026-04-22 10:09:15 +02:00
parent 400d0d446b
commit 8adbc25578
31 changed files with 123 additions and 49 deletions

View File

@@ -0,0 +1,3 @@
diffutils
make
yasm

View File

@@ -0,0 +1,4 @@
diffutils
libva-devel
make
yasm

View File

@@ -0,0 +1,3 @@
diffutils
make
yasm

View File

@@ -0,0 +1,4 @@
diffutils
libva-dev
make
yasm

View File

@@ -0,0 +1,2 @@
diffutils
yasm

View File

@@ -41,7 +41,11 @@ build_ffmpeg() {
popd
}
brew install yasm
# Install required packages through Brew
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../macos/ffmpeg_required_brew_packages.txt"
brew install "${required_ffmpeg_packages[@]}"
export MACOSX_DEPLOYMENT_TARGET=12
fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh"

View File

@@ -0,0 +1,3 @@
diffutils
make
yasm

View File

@@ -20,7 +20,8 @@ $url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/$package"
$url_official = "http://repo.msys2.org/distrib/$arch/$package"
$TargetLocation = "C:\Utils"
$required_packages = @("perl", "make", "yasm", "diffutils")
$required_packages = @("perl")
$required_packages += Get-Content "$PSScriptRoot\..\windows\ffmpeg_required_msys_packages.txt"
if ((Test-Path $url_cache_prebuilt)) {
$PackagePath = "C:\Windows\Temp\$package_prebuilt"

View File

@@ -54,8 +54,10 @@ installPackages+=(gstreamer1-plugins-base-devel)
#installPackages+=(gstreamer1-plugin-openh264)
# pipewire for QtMultimedia
installPackages+=(pipewire-devel)
# yasm for QtMultimedia
installPackages+=(yasm)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -60,9 +60,10 @@ installPackages+=(gstreamer1-devel)
installPackages+=(gstreamer1-plugins-base-devel)
# pipewire for QtMultimedia
installPackages+=(pipewire-devel)
# for QtMultimedia, ffmpeg
installPackages+=(yasm)
installPackages+=(libva-devel)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -47,9 +47,10 @@ installPackages+=(dbus-devel)
installPackages+=(gstreamer1-plugins-bad-free)
installPackages+=(gstreamer1-devel)
installPackages+=(gstreamer1-plugins-base-devel)
# for QtMultimedia, ffmpeg
installPackages+=(yasm)
installPackages+=(libva-devel)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -48,9 +48,10 @@ installPackages+=(dbus-devel)
installPackages+=(gstreamer1-plugins-bad-free)
installPackages+=(gstreamer1-devel)
installPackages+=(gstreamer1-plugins-base-devel)
# for QtMultimedia, ffmpeg
installPackages+=(yasm)
installPackages+=(libva-devel)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -60,9 +60,10 @@ installPackages+=(dbus-devel)
installPackages+=(gstreamer1-plugins-bad-free)
installPackages+=(gstreamer1-devel)
installPackages+=(gstreamer1-plugins-base-devel)
# for QtMultimedia, ffmpeg
installPackages+=(yasm)
installPackages+=(libva-devel)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -60,9 +60,10 @@ installPackages+=(gstreamer1-devel)
installPackages+=(gstreamer1-plugins-base-devel)
# pipewire for QtMultimedia
installPackages+=(pipewire-devel)
# for QtMultimedia, ffmpeg
installPackages+=(yasm)
installPackages+=(libva-devel)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -50,9 +50,10 @@ installPackages+=(dbus-devel)
installPackages+=(gstreamer1-plugins-bad-free)
installPackages+=(gstreamer1-devel)
installPackages+=(gstreamer1-plugins-base-devel)
# QtMultimedia, ffmpeg
installPackages+=(yasm)
installPackages+=(libva-devel)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -68,8 +68,10 @@ installPackages+=(gstreamer1-plugins-base-devel)
installPackages+=(gstreamer1-plugin-openh264)
# pipewire for QtMultimedia
installPackages+=(pipewire-devel)
# yasm for QtMultimedia
installPackages+=(yasm)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -68,8 +68,10 @@ installPackages+=(gstreamer1-plugins-base-devel)
installPackages+=(gstreamer1-plugin-openh264)
# pipewire for QtMultimedia
installPackages+=(pipewire-devel)
# yasm for QtMultimedia
installPackages+=(yasm)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -68,8 +68,10 @@ installPackages+=(gstreamer1-plugins-base-devel)
installPackages+=(gstreamer1-plugin-openh264)
# pipewire for QtMultimedia
installPackages+=(pipewire-devel)
# yasm for QtMultimedia
installPackages+=(yasm)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_rhel_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb

View File

@@ -65,8 +65,10 @@ sudo zypper -nq install libva-devel
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_sles_packages.txt"
sudo zypper -nq install "${required_ffmpeg_packages[@]}"
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel

View File

@@ -63,8 +63,10 @@ sudo zypper -nq install alsa-devel dbus-1-devel libxkbfile-devel libdrm-devel \
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_sles_packages.txt"
sudo zypper -nq install "${required_ffmpeg_packages[@]}"
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel \

View File

@@ -66,8 +66,10 @@ sudo zypper -nq install alsa-devel dbus-1-devel libxkbfile-devel libdrm-devel \
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_sles_packages.txt"
sudo zypper -nq install "${required_ffmpeg_packages[@]}"
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel

View File

@@ -91,6 +91,10 @@ installPackages+=(libva-dev)
# for QtMultimedia streaming tests
installPackages+=(vlc-bin)
installPackages+=(vlc-plugin-base)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_ubuntu_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# Support for cross-building to x86 (needed by WebEngine boot2qt builds)
installPackages+=(g++-multilib)

View File

@@ -109,6 +109,10 @@ installPackages+=(libva-dev)
# for QtMultimedia streaming tests
installPackages+=(vlc-bin)
installPackages+=(vlc-plugin-base)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_ubuntu_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# Support for cross-building to x86 (needed by WebEngine boot2qt builds)
installPackages+=(g++-multilib)

View File

@@ -114,6 +114,10 @@ installPackages+=(libva-dev)
# for QtMultimedia streaming tests
installPackages+=(vlc-bin)
installPackages+=(vlc-plugin-base)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_ubuntu_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# Support for cross-building to x86 (needed by WebEngine boot2qt builds)
installPackages+=(g++-multilib)

View File

@@ -116,6 +116,10 @@ installPackages+=(libva-dev)
# for QtMultimedia streaming tests
installPackages+=(vlc-bin)
installPackages+=(vlc-plugin-base)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_ubuntu_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# for tst_qfloat16format, see also QTQAINFRA-6390
installPackages+=(locales-all)

View File

@@ -115,6 +115,10 @@ installPackages+=(libva-dev)
# for QtMultimedia streaming tests
installPackages+=(vlc-bin)
installPackages+=(vlc-plugin-base)
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_ubuntu_packages.txt"
installPackages+=("${required_ffmpeg_packages[@]}")
# for tst_qfloat16format, see also QTQAINFRA-6390
installPackages+=(locales-all)

View File

@@ -48,12 +48,14 @@ sudo zypper -nq install libva-devel
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_opensuse_packages.txt"
sudo zypper -nq install "${required_ffmpeg_packages[@]}"
# cups
sudo zypper -nq install cups-devel

View File

@@ -48,12 +48,14 @@ sudo zypper -nq install libva-devel
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_opensuse_packages.txt"
sudo zypper -nq install "${required_ffmpeg_packages[@]}"
# cups
sudo zypper -nq install cups-devel

View File

@@ -51,13 +51,15 @@ sudo zypper -nq install alsa-devel dbus-1-devel libxkbfile-devel \
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel pipewire-devel \
gstreamer-1.20-plugin-openh264 gstreamer-plugins-bad-devel
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_opensuse_packages.txt"
sudo zypper -nq install "${required_ffmpeg_packages[@]}"
# cups
sudo zypper -nq install cups-devel

View File

@@ -49,12 +49,14 @@ sudo zypper -nq install alsa-devel dbus-1-devel libxkbfile-devel \
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel pipewire-devel gstreamer-plugin-openh264
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_opensuse_packages.txt"
sudo zypper -nq install "${required_ffmpeg_packages[@]}"
# cups
sudo zypper -nq install cups-devel

View File

@@ -52,12 +52,14 @@ sudo zypper -nq install alsa-devel dbus-1-devel libxkbfile-devel \
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel pipewire-devel # gstreamer-plugin-openh264 not available
# Required FFmpeg packages
required_ffmpeg_packages=()
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_opensuse_packages.txt"
sudo zypper -nq install "${required_ffmpeg_packages[@]}"
# cups
sudo zypper -nq install cups-devel