diff options
Diffstat (limited to 'coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64')
9 files changed, 336 insertions, 0 deletions
diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/01-systemsetup.sh new file mode 100644 index 00000000..98744822 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/01-systemsetup.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# Copyright (C) 2017 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 + +# This script modifies system settings for automated use + +set -ex + +# shellcheck source=../common/unix/check_and_set_proxy.sh +source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" + +NTS_IP=10.212.2.216 + +echo "Set timezone to UTC." +sudo timedatectl set-timezone Etc/UTC +echo "Timeout for blanking the screen (0 = never)" +gsettings set org.gnome.desktop.session idle-delay 0 +echo "Prevents screen lock when screesaver goes active." +gsettings set org.gnome.desktop.screensaver lock-enabled false +echo "Set grub timeout to 0" +sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub +sudo update-grub + +# https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624320 +# Checking if Ubuntu 20.04 works without this +#echo "Setting up workaround for Ubuntu systemd resolve bug" +#sudo rm -f /etc/resolv.conf +#sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf + +# remove hostname to get unique based on IP address +sudo rm /etc/hostname + +echo "Set Network Test Server address to $NTS_IP in /etc/hosts" +echo "$NTS_IP qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts + +echo 'LC_ALL=en_US.UTF8' | sudo tee /etc/default/locale + +if [ "$http_proxy" != "" ]; then + echo "Acquire::http::Proxy \"$proxy\";" | sudo tee -a /etc/apt/apt.conf +fi + +# This script diverts qtlogging.ini file so we don't get debugging related auto-test failures. +sudo dpkg-divert --divert /etc/xdg/QtProject/qtlogging.ini.foo --rename /etc/xdg/QtProject/qtlogging.ini diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh new file mode 100644 index 00000000..c9106f88 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh @@ -0,0 +1,250 @@ +#!/usr/bin/env bash +# Copyright (C) 2022 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 + +# 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.d/ubuntu.list" > /dev/null <<-EOC + deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble main restricted universe multiverse + deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-updates main restricted universe multiverse + deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-backports main restricted universe + deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-security main restricted universe multiverse +EOC +} + +#(ping -c 3 repo-clones.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories." +echo "Internal package repository not loading Translation en package (QTQAINFRA-6297). Using public repositories." + +# Make sure needed ca-certificates are available +sudo apt-get install --reinstall ca-certificates + +# 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+=(udev) +installPackages+=(libudev-dev) +installPackages+=(libdrm-dev) +installPackages+=(libegl1-mesa-dev) +installPackages+=(libfontconfig1-dev) +installPackages+=(libgbm-dev) +installPackages+=(liblcms2-dev) +installPackages+=(libpci-dev) +installPackages+=(libre2-dev) +installPackages+=(libsnappy-dev) +installPackages+=(libva-dev) +installPackages+=(libvpx-dev) +installPackages+=(libxkbfile-dev) +installPackages+=(libxshmfence-dev) +installPackages+=(libxss-dev) +# installPackages+=(nodejs) too old +installPackages+=(python3-html5lib) + +# 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+=(gstreamer1.0-libav) +installPackages+=(gstreamer1.0-plugins-base) +installPackages+=(gstreamer1.0-plugins-good) +installPackages+=(gstreamer1.0-plugins-bad) +installPackages+=(gstreamer1.0-plugins-rtp) +installPackages+=(gstreamer1.0-plugins-ugly) +installPackages+=(libgstreamer-gl1.0-0) +installPackages+=(gir1.2-gst-plugins-base-1.0) +installPackages+=(gir1.2-gst-plugins-bad-1.0) +installPackages+=(yasm) +installPackages+=(libva-dev) +# for QtMultimedia streaming tests +installPackages+=(vlc-bin) +installPackages+=(vlc-plugin-base) +# for tst_qfloat16format, see also QTQAINFRA-6390 +installPackages+=(locales-all) + +# Support for cross-building to x86 (needed by WebEngine boot2qt builds) +#installPackages+=(g++-multilib) +installPackages+=(g++-multilib-powerpc-linux-gnu) +installPackages+=(gcc-14) +installPackages+=(g++-14) + +# python3 development package +installPackages+=(python3-dev) +installPackages+=(python3-pip) +installPackages+=(python3-venv) +installPackages+=(virtualenv) +installPackages+=(python3-wheel) +installPackages+=(python-is-python3) + +# Automates interactive applications (Needed by RTA to automate configure testing) +installPackages+=(expect) +installPackages+=(mesa-common-dev) + +# TODO: Ubuntu 24.04 Replacement +#installPackages+=(libgl1-mesa-glx) +installPackages+=(libglx-mesa0) + +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+=(libcurl4-openssl-dev) +installPackages+=(libicu-dev) +installPackages+=(zlib1g-dev) +installPackages+=(zlib1g) +installPackages+=(openjdk-8-jdk) +#Java 11 for Android +installPackages+=(openjdk-11-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) +# Needed for qtspeech +installPackages+=(libspeechd-dev) +#Pypdf for PDF reading in RTA tests +installPackages+=(python3-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 testlib selftests +installPackages+=(valgrind) +# 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) +installPackages+=(zstd) +installPackages+=(lz4) +# Vulkan is needed for examples +installPackages+=(libvulkan-dev) +# Needed for qtdltlogging +installPackages+=(libdlt-dev) +# For QNX +installPackages+=(nfs-kernel-server) +installPackages+=(net-tools) +installPackages+=(bridge-utils) +# For Debian packaging +installPackages+=(sbuild) +installPackages+=(ubuntu-dev-tools) +# cifs-utils, for mounting smb drive +installPackages+=(keyutils) +installPackages+=(cifs-utils) +# VxWorks QEMU network setup (tunctl) +installPackages+=(uml-utilities) +# used for reading vcpkg packages version, from vcpkg.json +installPackages+=(jq) +# For building +installPackages+=(cmake) + +echo "Running update for apt" +waitLoop +sudo apt-get update +echo "Installing packages" +waitLoop +sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y -o DPkg::Lock::Timeout=300 install "${installPackages[@]}" + +# Configure pip +pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache +pip config --user set global.extra-index-url https://pypi.org/simple/ +# Ubuntu 24.04 comes with a newer pip that disallows installing into the system site-packages, +# so we explicitly ask it to allow it. +pip install --user -r "${BASH_SOURCE%/*}/../common/shared/sbom_requirements.txt" --break-system-packages + +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" +# SetEnvVar "PATH" "/usr/lib/nodejs-mozilla/bin:\$PATH" + +OpenSSLVersion="$(openssl version |cut -b 9-14)" +echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-disable-notifications.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-disable-notifications.sh new file mode 100644 index 00000000..1b9ed6c9 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-disable-notifications.sh @@ -0,0 +1,6 @@ +#!/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 + +# shellcheck source=../common/linux/disable-notifications.sh +source "${BASH_SOURCE%/*}/../common/linux/disable-notifications.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-disable-ntp.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-disable-ntp.sh new file mode 100644 index 00000000..1995aa14 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-disable-ntp.sh @@ -0,0 +1,6 @@ +#!/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 + +# shellcheck source=../common/linux/disable-ntp_linux.sh +source "${BASH_SOURCE%/*}/../common/linux/disable-ntp_linux.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-remove-apport.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-remove-apport.sh new file mode 100644 index 00000000..879f3ffb --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-remove-apport.sh @@ -0,0 +1,6 @@ +#!/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 + +# shellcheck source=../common/linux/remove-apport.sh +source "${BASH_SOURCE%/*}/../common/linux/remove-apport.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-remove-update_notifier.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-remove-update_notifier.sh new file mode 100644 index 00000000..f4a5119f --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-remove-update_notifier.sh @@ -0,0 +1,6 @@ +#!/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 + +# shellcheck source=../common/linux/remove-update_notifier.sh +source "${BASH_SOURCE%/*}/../common/linux/remove-update_notifier.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/03-fix-bwrap-apparmor.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/03-fix-bwrap-apparmor.sh new file mode 100644 index 00000000..e155338a --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/03-fix-bwrap-apparmor.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 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 + +# shellcheck source=../common/linux/fix-bwrap-apparmor.sh +source "${BASH_SOURCE%/*}/../common/linux/fix-bwrap-apparmor.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/99-cleanup.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/99-cleanup.sh new file mode 100644 index 00000000..4d6e16ea --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/99-cleanup.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# Copyright (C) 2022 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 + +"$(dirname "$0")"/../common/linux/cleanup_cache.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/99-version.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/99-version.sh new file mode 100644 index 00000000..31821f6b --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/99-version.sh @@ -0,0 +1,6 @@ +#!/bin/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 + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/linux/ubuntu-version.sh" |