mirror of
git://code.qt.io/qt/qt5.git
synced 2026-05-08 03:57:49 +08:00
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>
190 lines
6.4 KiB
Bash
Executable File
190 lines
6.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright (C) 2023 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
|
|
|
set -ex
|
|
|
|
# Remove update notifications and packagekit running in the background
|
|
sudo yum -y remove PackageKit gnome-software
|
|
|
|
# CI: All platforms should have up-to-date packages when new provision is made
|
|
sudo yum -y update
|
|
|
|
installPackages=()
|
|
# Make sure needed ca-certificates are available
|
|
installPackages+=(ca-certificates)
|
|
installPackages+=(git)
|
|
installPackages+=(zlib-devel)
|
|
installPackages+=(glib2-devel)
|
|
installPackages+=(freetype-devel)
|
|
installPackages+=(fontconfig-devel)
|
|
installPackages+=(curl-devel)
|
|
installPackages+=(expat-devel)
|
|
installPackages+=(gettext-devel)
|
|
installPackages+=(perl-devel)
|
|
installPackages+=(dh-autoreconf)
|
|
# cmake build
|
|
installPackages+=(ninja-build)
|
|
installPackages+=(pcre2-devel)
|
|
installPackages+=(double-conversion-devel)
|
|
installPackages+=(zstd)
|
|
installPackages+=(libzstd-devel)
|
|
# update kernel
|
|
installPackages+=(kernel)
|
|
installPackages+=(kernel-tools)
|
|
installPackages+=(kernel-devel)
|
|
installPackages+=(kernel-core)
|
|
installPackages+=(kernel-modules)
|
|
installPackages+=(kernel-headers)
|
|
# EGL support
|
|
# mesa-libraries need to use older version than 22.1.5-2 which cause Xorg to crash
|
|
installPackages+=(mesa-libEGL-devel-21.3.4-1.el8)
|
|
installPackages+=(mesa-libGL-devel-21.3.4-1.el8)
|
|
installPackages+=(mesa-dri-drivers-21.3.4-1.el8.x86_64)
|
|
installPackages+=(mesa-libgbm-21.3.4-1.el8.x86_64)
|
|
installPackages+=(mesa-vulkan-drivers-21.3.4-1.el8.x86_64)
|
|
installPackages+=(libxkbfile-devel)
|
|
# Xinput2
|
|
installPackages+=(libXi-devel)
|
|
installPackages+=(mysql-server)
|
|
installPackages+=(mysql)
|
|
installPackages+=(mysql-devel)
|
|
installPackages+=(postgresql-devel)
|
|
installPackages+=(cups-devel)
|
|
installPackages+=(dbus-devel)
|
|
# gstreamer 1 for QtMultimedia
|
|
# Note! gstreamer1-plugins-bad-free needs to be upgraded or it will conflicts with gstreamer1-plugins-base-devel
|
|
installPackages+=(gstreamer1-plugins-bad-free)
|
|
installPackages+=(gstreamer1-devel)
|
|
installPackages+=(gstreamer1-plugins-base-devel)
|
|
# pipewire for QtMultimedia
|
|
installPackages+=(pipewire-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
|
|
installPackages+=(libusbx-devel)
|
|
# speech-dispatcher-devel / flite-devel for QtSpeech
|
|
installPackages+=(speech-dispatcher-devel)
|
|
installPackages+=(flite-devel)
|
|
# Python 3.8 for pyside. Qt for Python support for Python 3.6 will be deprecated in within pyside6.3
|
|
installPackages+=(python3.11)
|
|
installPackages+=(python3.11-pip)
|
|
installPackages+=(python3.11-devel)
|
|
# WebEngine
|
|
installPackages+=(bison)
|
|
installPackages+=(flex)
|
|
installPackages+=(gperftools-libs)
|
|
installPackages+=(gperf)
|
|
installPackages+=(alsa-lib-devel)
|
|
installPackages+=(pulseaudio-libs-devel)
|
|
installPackages+=(libdrm-devel)
|
|
installPackages+=(libva-devel)
|
|
installPackages+=(libXtst-devel)
|
|
installPackages+=(libxshmfence-devel)
|
|
installPackages+=(nspr-devel)
|
|
installPackages+=(nss-devel)
|
|
installPackages+=(python3-html5lib)
|
|
installPackages+=(libatomic)
|
|
installPackages+=(mesa-libgbm-devel-21.3.4-1.el8.x86_64)
|
|
# For Android builds
|
|
installPackages+=(java-21-openjdk-devel-21.0.9.0.10-1.el9)
|
|
# For receiving shasum
|
|
installPackages+=(perl-Digest-SHA)
|
|
# INTEGRITY requirements
|
|
installPackages+=(glibc.i686)
|
|
# Enable Qt Bluetooth
|
|
installPackages+=(bluez-libs-devel)
|
|
# QtNfc
|
|
installPackages+=(pcsc-lite-devel)
|
|
# QtWebKit
|
|
installPackages+=(libxml2-devel)
|
|
installPackages+=(libxslt-devel)
|
|
# For building Wayland from source
|
|
installPackages+=(libffi-devel)
|
|
# QtWayland
|
|
#installPackages+=(mesa-libwayland-egl)
|
|
#installPackages+=(mesa-libwayland-egl-devel)
|
|
installPackages+=(libwayland-client)
|
|
installPackages+=(libwayland-cursor)
|
|
installPackages+=(libwayland-server)
|
|
# Jenkins
|
|
installPackages+=(chrpath)
|
|
# libxkbcommon
|
|
installPackages+=(libxkbcommon-devel)
|
|
installPackages+=(libxkbcommon-x11-devel)
|
|
# xcb-util-* libraries
|
|
installPackages+=(xcb-util)
|
|
installPackages+=(xcb-util-image-devel)
|
|
installPackages+=(xcb-util-keysyms-devel)
|
|
installPackages+=(xcb-util-wm-devel)
|
|
installPackages+=(xcb-util-renderutil-devel)
|
|
installPackages+=(xcb-util-cursor)
|
|
installPackages+=(xcb-util-cursor-devel)
|
|
|
|
# ODBC support
|
|
installPackages+=(unixODBC-devel)
|
|
installPackages+=(unixODBC)
|
|
# Vulkan support
|
|
installPackages+=(vulkan-devel)
|
|
installPackages+=(vulkan-tools)
|
|
# Conan: For Python build
|
|
installPackages+=(xz-devel)
|
|
installPackages+=(zlib-devel)
|
|
installPackages+=(libffi-devel)
|
|
installPackages+=(libsqlite3x-devel)
|
|
# Build.pl
|
|
installPackages+=(perl-Data-Dumper)
|
|
# In RedHat these come with Devtoolset
|
|
installPackages+=(gcc)
|
|
installPackages+=(gcc-c++)
|
|
installPackages+=(make)
|
|
# Open source VMware Tools
|
|
installPackages+=(open-vm-tools)
|
|
# cifs-utils, for mounting smb drive
|
|
installPackages+=(keyutils)
|
|
installPackages+=(cifs-utils)
|
|
# zip, needed for vcpkg caching
|
|
installPackages+=(zip)
|
|
# OpenSSL requirement, built by vcpkg
|
|
installPackages+=(perl-IPC-Cmd)
|
|
# password management support for Qt Creator
|
|
installPackages+=(libsecret-devel)
|
|
# Keep zoneinfo up-to-date (COIN-1282)
|
|
installPackages+=(tzdata)
|
|
|
|
sudo yum -y install "${installPackages[@]}"
|
|
|
|
sudo dnf -y module install nodejs:16
|
|
|
|
# We shouldn't use yum to install virtualenv. The one found from package repo is not
|
|
# working, but we can use installed pip
|
|
sudo pip3 install --upgrade pip
|
|
# Configure pip
|
|
sudo pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache
|
|
sudo pip config --user set global.extra-index-url https://pypi.org/simple/
|
|
|
|
sudo pip3 install virtualenv wheel
|
|
# Just make sure we have virtualenv to run with python3.8 -m virtualenv
|
|
sudo python3.11 -m pip install virtualenv wheel
|
|
sudo python3.11 -m pip install -r "${BASH_SOURCE%/*}/../common/shared/requirements.txt"
|
|
# For now we don't set QT_SBOM_PYTHON_APPS_PATH here, and rely on the build system to find the
|
|
# system python3.11.
|
|
|
|
sudo /usr/bin/pip3 install wheel
|
|
sudo /usr/bin/pip3 install dataclasses
|
|
sudo /usr/bin/pip3 install -r "${BASH_SOURCE%/*}/../common/shared/requirements.txt"
|
|
|
|
gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
|
|
echo "GCC = $gccVersion" >> versions.txt
|
|
|
|
glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
|
|
echo "glibc = $glibcVersion" >> versions.txt
|
|
|
|
# List all available updates
|
|
sudo yum -y list updates
|