mirror of https://github.com/qt/qt5.git
238 lines
8.8 KiB
Bash
Executable File
238 lines
8.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
#############################################################################
|
|
##
|
|
## Copyright (C) 2021 The Qt Company Ltd.
|
|
## Contact: http://www.qt.io/licensing/
|
|
##
|
|
## This file is part of the provisioning scripts of the Qt Toolkit.
|
|
##
|
|
## $QT_BEGIN_LICENSE:LGPL21$
|
|
## Commercial License Usage
|
|
## Licensees holding valid commercial Qt licenses may use this file in
|
|
## accordance with the commercial license agreement provided with the
|
|
## Software or, alternatively, in accordance with the terms contained in
|
|
## a written agreement between you and The Qt Company. For licensing terms
|
|
## and conditions see http://www.qt.io/terms-conditions. For further
|
|
## information use the contact form at http://www.qt.io/contact-us.
|
|
##
|
|
## GNU Lesser General Public License Usage
|
|
## Alternatively, this file may be used under the terms of the GNU Lesser
|
|
## General Public License version 2.1 or version 3 as published by the Free
|
|
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
|
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
|
## following information to ensure the GNU Lesser General Public License
|
|
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
|
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
##
|
|
## As a special exception, The Qt Company gives you certain additional
|
|
## rights. These rights are described in The Qt Company LGPL Exception
|
|
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
##
|
|
## $QT_END_LICENSE$
|
|
##
|
|
#############################################################################
|
|
|
|
# Install required packages with APT
|
|
|
|
# shellcheck source=../common/linux/apt_wait_loop.sh
|
|
source "${BASH_SOURCE%/*}/../common/linux/apt_wait_loop.sh"
|
|
|
|
echo "Disabling auto update"
|
|
sudo sed -i 's/APT::Periodic::Update-Package-Lists "1";/APT::Periodic::Update-Package-Lists "0";/' /etc/apt/apt.conf.d/10periodic
|
|
for service in apt-daily.timer apt-daily-upgrade.timer apt-daily.service apt-daily-upgrade.service; do
|
|
sudo systemctl stop $service
|
|
sudo systemctl disable $service
|
|
done
|
|
|
|
function set_internal_repo {
|
|
|
|
# Stop fetching the dep-11 metadata, since our mirrors do not handle them well
|
|
sudo mv /etc/apt/apt.conf.d/50appstream{,.disabled}
|
|
|
|
sudo tee "/etc/apt/sources.list" > /dev/null <<-EOC
|
|
deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal main restricted universe multiverse
|
|
deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal-updates main restricted universe multiverse
|
|
deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal-backports main restricted universe
|
|
deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal-security main restricted universe multiverse
|
|
deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal main restricted
|
|
deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal-updates main restricted
|
|
deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal universe
|
|
EOC
|
|
}
|
|
|
|
(ping -c 3 repo-clones.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories."
|
|
|
|
# Git is not needed by builds themselves, but is nice to have
|
|
# immediately as one starts debugging
|
|
installPackages+=(git)
|
|
# 7zip is a needed decompressing tool
|
|
installPackages+=(p7zip-full)
|
|
# To be able to mount yocto-cache during builds
|
|
installPackages+=(nfs-common)
|
|
# libssl-dev provides headers for OpenSSL
|
|
installPackages+=(libssl-dev)
|
|
# Needed libraries for X11 support accordingly to https://wiki.qt.io/Building_Qt_5_from_Git
|
|
installPackages+=("^libxcb.*")
|
|
installPackages+=(libxkbcommon-dev)
|
|
installPackages+=(libxkbcommon-x11-dev)
|
|
installPackages+=(libx11-xcb-dev)
|
|
installPackages+=(libglu1-mesa-dev)
|
|
installPackages+=(libxrender-dev)
|
|
installPackages+=(libxi-dev)
|
|
# Enable linking to system dbus
|
|
installPackages+=(libdbus-1-dev)
|
|
# Needed libraries for WebEngine
|
|
installPackages+=(libudev-dev)
|
|
installPackages+=(libegl1-mesa-dev)
|
|
installPackages+=(libfontconfig1-dev)
|
|
installPackages+=(libgbm-dev)
|
|
installPackages+=(libxkbfile-dev)
|
|
installPackages+=(libxshmfence-dev)
|
|
installPackages+=(libxss-dev)
|
|
installPackages+=(nodejs)
|
|
# NOTE! Can't install nodejs-dev because libssl1.0-dev conflicts with libssl1.0-dev which is depandency of nodejs-dev.
|
|
|
|
# Common event loop handling
|
|
installPackages+=(libglib2.0-dev)
|
|
# MySQL support
|
|
installPackages+=(libmysqlclient-dev)
|
|
# PostgreSQL support
|
|
installPackages+=(libpq-dev)
|
|
# SQLite support
|
|
installPackages+=(libsqlite3-dev)
|
|
# ODBC support
|
|
installPackages+=(unixodbc-dev)
|
|
# Support for FreeType font engine
|
|
installPackages+=(libfreetype6-dev)
|
|
# Enable the usage of system jpeg libraries
|
|
installPackages+=(libjpeg-dev)
|
|
# Enable support for printer driver
|
|
installPackages+=(libcups2-dev)
|
|
# Enable support for printer test
|
|
installPackages+=(cups-pdf)
|
|
# Install libraries needed for QtMultimedia to be able to support all plugins
|
|
installPackages+=(libasound2-dev)
|
|
installPackages+=(libgstreamer1.0-dev)
|
|
installPackages+=(libgstreamer-plugins-base1.0-dev)
|
|
installPackages+=(libgstreamer-plugins-good1.0-dev)
|
|
installPackages+=(libgstreamer-plugins-bad1.0-dev)
|
|
installPackages+=(libgstreamer-gl1.0-0)
|
|
installPackages+=(gir1.2-gst-plugins-base-1.0)
|
|
installPackages+=(gir1.2-gst-plugins-bad-1.0)
|
|
|
|
# Support for cross-building to x86 (needed by WebEngine boot2qt builds)
|
|
installPackages+=(g++-multilib)
|
|
# python3 development package
|
|
installPackages+=(python3-dev)
|
|
installPackages+=(python3-pip)
|
|
installPackages+=(virtualenv)
|
|
installPackages+=(python3-wheel)
|
|
# python2 development package
|
|
installPackages+=(python-dev)
|
|
# Automates interactive applications (Needed by RTA to automate configure testing)
|
|
installPackages+=(expect)
|
|
installPackages+=(mesa-common-dev)
|
|
installPackages+=(libgl1-mesa-glx)
|
|
installPackages+=(libgl1-mesa-dev)
|
|
installPackages+=(libegl1-mesa-dev)
|
|
installPackages+=(libegl1)
|
|
installPackages+=(libegl-mesa0)
|
|
installPackages+=(libegl-dev)
|
|
installPackages+=(libglvnd-dev)
|
|
installPackages+=(libgles2-mesa-dev)
|
|
installPackages+=(curl)
|
|
installPackages+=(libicu-dev)
|
|
installPackages+=(zlib1g-dev)
|
|
installPackages+=(zlib1g)
|
|
installPackages+=(openjdk-8-jdk)
|
|
installPackages+=(libgtk-3-dev)
|
|
installPackages+=(ninja-build)
|
|
installPackages+=(libssl-dev)
|
|
installPackages+=(libxcursor-dev)
|
|
installPackages+=(libxcomposite-dev)
|
|
installPackages+=(libxdamage-dev)
|
|
installPackages+=(libxrandr-dev)
|
|
installPackages+=(libfontconfig1-dev)
|
|
installPackages+=(libsrtp2-dev)
|
|
installPackages+=(libwebp-dev)
|
|
installPackages+=(libjsoncpp-dev)
|
|
installPackages+=(libopus-dev)
|
|
installPackages+=(libminizip-dev)
|
|
installPackages+=(libavutil-dev)
|
|
installPackages+=(libavformat-dev)
|
|
installPackages+=(libavcodec-dev)
|
|
installPackages+=(libevent-dev)
|
|
installPackages+=(bison)
|
|
installPackages+=(flex)
|
|
installPackages+=(gperf)
|
|
installPackages+=(libasound2-dev)
|
|
installPackages+=(libpulse-dev)
|
|
installPackages+=(libxtst-dev)
|
|
installPackages+=(libnspr4-dev)
|
|
installPackages+=(libnss3-dev)
|
|
installPackages+=(libnss3)
|
|
installPackages+=(libopenal-dev)
|
|
installPackages+=(libbluetooth-dev)
|
|
#VirtualBox for RTA
|
|
installPackages+=(virtualbox)
|
|
installPackages+=(dkms)
|
|
# Needed for qtspeech
|
|
installPackages+=(libspeechd-dev)
|
|
#Pypdf for PDF reading in RTA tests
|
|
installPackages+=(python-pypdf2)
|
|
# Needed for b2qt
|
|
installPackages+=(git-lfs)
|
|
installPackages+=(chrpath)
|
|
installPackages+=(gawk)
|
|
installPackages+=(texinfo)
|
|
# Needed for Poppler test in QtWebEngine
|
|
installPackages+=(libpoppler-cpp-dev)
|
|
# Needed for QtCore
|
|
installPackages+=(libdouble-conversion-dev)
|
|
installPackages+=(libpcre2-dev)
|
|
# Needed for qtgampepad
|
|
installPackages+=(libsdl2-2.0)
|
|
installPackages+=(libsdl2-dev)
|
|
# Needed for qtwebkit
|
|
installPackages+=(ruby)
|
|
installPackages+=(libxslt1-dev)
|
|
installPackages+=(libxml2-dev)
|
|
installPackages+=(libhyphen-dev)
|
|
# For remote access
|
|
installPackages+=(ssh)
|
|
# For bitbake
|
|
installPackages+=(diffstat)
|
|
installPackages+=(binfmt-support)
|
|
# Vulkan is needed for examples
|
|
installPackages+=(libvulkan-dev)
|
|
# Needed for qtdltlogging
|
|
installPackages+=(libdlt-dev)
|
|
# For integrity
|
|
installPackages+=(libc6:i386)
|
|
installPackages+=(libncurses5:i386)
|
|
installPackages+=(libstdc++6:i386)
|
|
installPackages+=(libx11-6:i386)
|
|
installPackages+=(lib32z1)
|
|
installPackages+=(linux-libc-dev:i386)
|
|
installPackages+=(libxcursor1:i386)
|
|
installPackages+=(libc6-dev-i386)
|
|
sudo dpkg --add-architecture i386
|
|
|
|
echo "Running update for apt"
|
|
waitLoop
|
|
sudo apt-get update
|
|
echo "Installing packages"
|
|
waitLoop
|
|
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install "${installPackages[@]}"
|
|
|
|
# Install all needed packages in a special wheel cache directory
|
|
pip3 wheel --wheel-dir "$HOME/python3-wheels" -r "${BASH_SOURCE%/*}/../common/shared/requirements.txt"
|
|
|
|
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
|
|
SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels"
|
|
|
|
OpenSSLVersion="$(openssl version |cut -b 9-14)"
|
|
echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
|
|