aboutsummaryrefslogtreecommitdiffstats
path: root/coin
diff options
context:
space:
mode:
authorKalle Viironen <kalle.viironen@qt.io>2023-10-06 14:36:44 +0300
committerElias Toivola <elias.toivola@qt.io>2024-04-30 08:53:26 +0300
commit715321a47d527f9a9aa29739aec824c8892805df (patch)
treebb4c29bf1c89f18eec35846bde9483fc6108da51 /coin
parentfe87f13d439feebc47f5b643c8da95f5a00fc69e (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')
-rw-r--r--coin/platform_configs/tqtc-qt-rta.yaml18
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable-notifications.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable-ntp.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable_auto_suspend.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-remove-apport.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-remove-update_notifier.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-systemsetup.sh43
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/02-apt.sh60
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/99-cleanup.sh7
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/99-version.sh6
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"