diff options
author | Kalle Viironen <kalle.viironen@qt.io> | 2023-10-06 14:36:44 +0300 |
---|---|---|
committer | Elias Toivola <elias.toivola@qt.io> | 2024-04-30 08:53:26 +0300 |
commit | 715321a47d527f9a9aa29739aec824c8892805df (patch) | |
tree | bb4c29bf1c89f18eec35846bde9483fc6108da51 /coin | |
parent | fe87f13d439feebc47f5b643c8da95f5a00fc69e (diff) |
Add Ubuntu 22.04 aarch64 platform for RTA
Ubuntu 22.04 arm64 with minimal provision is added for RTA use only:
Git, Java and GCC are installed in 02-apt.sh script. Python 3.10.12
is found already in Ubuntu.
Task-number: QTQAINFRA-6212
Change-Id: Ib9931974179626afacdc7d6c03810a333ed3ae8e
Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
Diffstat (limited to 'coin')
10 files changed, 164 insertions, 0 deletions
diff --git a/coin/platform_configs/tqtc-qt-rta.yaml b/coin/platform_configs/tqtc-qt-rta.yaml index c89d890f..31874ccf 100644 --- a/coin/platform_configs/tqtc-qt-rta.yaml +++ b/coin/platform_configs/tqtc-qt-rta.yaml @@ -12,3 +12,21 @@ Configurations: 'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON' ] +- + Id: 'Ubuntu-22.04-arm64-x11' + Template: 'qtci-linux-Ubuntu-22.04-aarch64-50' + Compiler: 'GCC' + Features: ['UseConfigure', 'DoNotRunTests'] + Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -no-libudev -bundled-xcb-xinput' + Environment variables: [ + 'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY' + ] +- + Id: 'Ubuntu-22.04-arm64-wayland' + Template: 'qtci-linux-Ubuntu-22.04-aarch64-51' + Compiler: 'GCC' + Features: ['UseConfigure', 'DoNotRunTests'] + Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -no-libudev -bundled-xcb-xinput' + Environment variables: [ + 'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY' + ] diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable-notifications.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable-notifications.sh new file mode 100755 index 00000000..1b9ed6c9 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-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-22.04-aarch64/01-disable-ntp.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable-ntp.sh new file mode 100755 index 00000000..1995aa14 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-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-22.04-aarch64/01-disable_auto_suspend.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable_auto_suspend.sh new file mode 100755 index 00000000..8ad69bfa --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable_auto_suspend.sh @@ -0,0 +1,6 @@ +#!/bin/sh +#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 + +sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target + diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-remove-apport.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-remove-apport.sh new file mode 100755 index 00000000..879f3ffb --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-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-22.04-aarch64/01-remove-update_notifier.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-remove-update_notifier.sh new file mode 100755 index 00000000..f4a5119f --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-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-22.04-aarch64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-systemsetup.sh new file mode 100755 index 00000000..98744822 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.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-22.04-aarch64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/02-apt.sh new file mode 100755 index 00000000..b04190ae --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/02-apt.sh @@ -0,0 +1,60 @@ +#!/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" > /dev/null <<-EOC + deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ jammy main restricted universe multiverse + deb [arch=aarch64 http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ jammy-updates main restricted universe multiverse + deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ jammy-backports main restricted universe + deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ jammy-security main restricted universe multiverse +EOC +} + +#repo-clones not set up for aarch64 yet +#(ping -c 3 repo-clones.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories." + +# Make sure needed ca-certificates are available +sudo apt-get install --reinstall ca-certificates + +## Tools +# 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) + +# Packages needed for RTA and Squish +installPackages+=(default-jdk) +installPackages+=(gcc) + +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[@]}" + +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" +# SetEnvVar "PATH" "/usr/lib/nodejs-mozilla/bin:\$PATH" + +OpenSSLVersion="$(openssl version |cut -b 9-14)" +echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt + diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/99-cleanup.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/99-cleanup.sh new file mode 100755 index 00000000..4d6e16ea --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.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-22.04-aarch64/99-version.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/99-version.sh new file mode 100755 index 00000000..31821f6b --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.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" |