diff options
author | Ville-Pekka Karhu <ville-pekka.karhu@qt.io> | 2022-08-12 13:11:08 +0300 |
---|---|---|
committer | Heikki Halmet <heikki.halmet@qt.io> | 2022-11-18 19:01:19 +0000 |
commit | a0c057c160b6d9cb7636aba0dbad76885bca3d28 (patch) | |
tree | ec4c804d79332c044691557b7237182a1c593705 | |
parent | 4772efbe4822b2486a39907bf0b8f0faf1cb8d4d (diff) |
Add provisioning for ARM macOS 13 beta
Task-number: QTQAINFRA-5066
Change-Id: I0ff36bea066b51e086b10b817769ca3f22190201
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit c310e9709706b14c408f5184cb8184faad72dd65)
46 files changed, 1157 insertions, 1 deletions
diff --git a/coin/provisioning/common/macos/install_xcode.sh b/coin/provisioning/common/macos/install_xcode.sh index f5124568..ef4e7dfc 100755 --- a/coin/provisioning/common/macos/install_xcode.sh +++ b/coin/provisioning/common/macos/install_xcode.sh @@ -74,7 +74,7 @@ function InstallXCode() { echo "Versioning application bundle" majorVersion=$(echo $version | cut -d '.' -f 1) versionedAppBundle="/Applications/Xcode${majorVersion}.app" - sudo mv /Applications/Xcode.app ${versionedAppBundle} + sudo mv /Applications/Xcode*.app ${versionedAppBundle} echo "Selecting Xcode" sudo xcode-select --switch ${versionedAppBundle} diff --git a/coin/provisioning/qtci-macos-13-arm/01-disable-net-lso.sh b/coin/provisioning/qtci-macos-13-arm/01-disable-net-lso.sh new file mode 100644 index 00000000..659ebe96 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/01-disable-net-lso.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +"$(dirname "$0")"/../common/macos/disable_net_lso.sh diff --git a/coin/provisioning/qtci-macos-13-arm/01-disable-notifications_and_warnings.sh b/coin/provisioning/qtci-macos-13-arm/01-disable-notifications_and_warnings.sh new file mode 100755 index 00000000..27efbb62 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/01-disable-notifications_and_warnings.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +"$(dirname "$0")"/../common/macos/disable-notifications_and_warnings.sh diff --git a/coin/provisioning/qtci-macos-13-arm/01-disable-updates.sh b/coin/provisioning/qtci-macos-13-arm/01-disable-updates.sh new file mode 100755 index 00000000..10efb43e --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/01-disable-updates.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/macos/system_updates.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/01-increase_limits.sh b/coin/provisioning/qtci-macos-13-arm/01-increase_limits.sh new file mode 100755 index 00000000..08669e52 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/01-increase_limits.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +"$(dirname "$0")"/../common/macos/increase_limits.sh diff --git a/coin/provisioning/qtci-macos-13-arm/01-sha1sum-compatibility.sh b/coin/provisioning/qtci-macos-13-arm/01-sha1sum-compatibility.sh new file mode 100755 index 00000000..cf0611cd --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/01-sha1sum-compatibility.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2020 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +#!/usr/bin/env bash + +set -ex + +# shellcheck source=../common/macos/sha1sum-compatibility.sh +source "${BASH_SOURCE%/*}/../common/macos/sha1sum-compatibility.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/03-bashprofile.sh b/coin/provisioning/qtci-macos-13-arm/03-bashprofile.sh new file mode 100755 index 00000000..2c3e45f3 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/03-bashprofile.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +set -ex + +# Read .bashrc if exist +printf -- "# Get the aliases and functions\nif [ -f ~/.bashrc ]; then\n . ~/.bashrc\nfi\n" >> ~/.bash_profile + diff --git a/coin/provisioning/qtci-macos-13-arm/05-systemsetup.sh b/coin/provisioning/qtci-macos-13-arm/05-systemsetup.sh new file mode 100755 index 00000000..29624282 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/05-systemsetup.sh @@ -0,0 +1,117 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2021 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +set -ex + +# This script modified system settings for automated use + +targetFile="$HOME/vncpw.txt" + +# Fetch password +curl --retry 5 --retry-delay 10 --retry-max-time 60 "http://ci-files01-hki.intra.qt.io/input/semisecure/vncpw.txt" -o "$targetFile" +shasum "$targetFile" |grep "a795fccaa8f277e62ec08e6056c544b8b63924a0" + +{ VNCPassword=$(cat "$targetFile"); } 2> /dev/null +NTS_IP=10.212.2.216 + +echo "Disable Screensaver" +# For current session +defaults -currentHost write com.apple.screensaver idleTime 0 + +echo "Disable sleep" +sudo pmset sleep 0 displaysleep 0 + +# For session after a reboot +mkdir -p "$HOME/Library/LaunchAgents" +sudo tee -a "$HOME/Library/LaunchAgents/no-screensaver.plist" <<EOT +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + +<plist version="1.0"> + <dict> + <key>Label</key> + <string>org.qt.io.screensaver_disable</string> + <key>ProgramArguments</key> + <array> + <string>defaults</string> + <string>-currentHost</string> + <string>write</string> + <string>com.apple.screensaver</string> + <string>idleTime</string> + <string>0</string> + </array> + <key>RunAtLoad</key> + <true/> + <key>KeepAlive</key> + <false/> + </dict> +</plist> +EOT + +defaults write com.apple.screensaver askForPassword -int 0 + +echo "Set keyboard type rates and delays" +# normal minimum is 15 (225 ms) +defaults write -g InitialKeyRepeat -int 15 +# normal minimum is 2 (30 ms) +defaults write -g KeyRepeat -int 2 + +set +x +echo "Enable remote desktop sharing" +sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setvnclegacy -vnclegacy yes -clientopts -setvncpw -vncpw $VNCPassword -restart -agent -privs -all +set -x + +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 + +sudo systemsetup settimezone GMT +sudo systemsetup setusingnetworktime on +sudo rm -f "$targetFile" + +# Enable automount for nfs shares +sudo sed -i'.orig' -e 's:^#/net:/net:' -e 's:hidefromfinder,nosuid:hidefromfinder,nosuid,locallocks,nocallback:' /etc/auto_master || sudo curl -o /etc/auto_master http://ci-files01-hki.intra.qt.io/input/mac/arm/auto_master +sudo automount -cv + +# Disable multicast advertisements +sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool true + +# Enable Use keyboard navigation to move focus between controls +defaults write -g AppleKeyboardUIMode -int 2 diff --git a/coin/provisioning/qtci-macos-13-arm/06-crashreporter.sh b/coin/provisioning/qtci-macos-13-arm/06-crashreporter.sh new file mode 100755 index 00000000..8461c656 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/06-crashreporter.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +set -ex + +defaults write com.apple.CrashReporter DialogType server diff --git a/coin/provisioning/qtci-macos-13-arm/06-disable_spotlight.sh b/coin/provisioning/qtci-macos-13-arm/06-disable_spotlight.sh new file mode 100755 index 00000000..67e2c1f6 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/06-disable_spotlight.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -ex + +# shellcheck source=../common/macos/disable_spotlight.sh +source "${BASH_SOURCE%/*}/../common/macos/disable_spotlight.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/06-disable_update_downloads.sh b/coin/provisioning/qtci-macos-13-arm/06-disable_update_downloads.sh new file mode 100755 index 00000000..3c11214d --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/06-disable_update_downloads.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -ex +BASEDIR=$(dirname "$0") +"$BASEDIR"/../common/macos/disable_update_downloads.sh diff --git a/coin/provisioning/qtci-macos-13-arm/07-SSL_keychain.sh b/coin/provisioning/qtci-macos-13-arm/07-SSL_keychain.sh new file mode 100755 index 00000000..6e7c796a --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/07-SSL_keychain.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env sh + +set -ex + +# shellcheck source=../common/unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" + +# Enables the usage of temporary keychains for SSL autotests +SetEnvVar "QT_SSL_USE_TEMPORARY_KEYCHAIN" "1" diff --git a/coin/provisioning/qtci-macos-13-arm/15-xz.sh b/coin/provisioning/qtci-macos-13-arm/15-xz.sh new file mode 100755 index 00000000..9b70c54e --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/15-xz.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2021 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script installs XZ-Utils + +# XZ-Utils are needed for uncompressing xz-compressed files + +# pkg was self builded. +# wget https://downloads.sourceforge.net/project/lzmautils/xz-5.2.5.tar.gz +# tar -xzf xz-5.2.5.tar.gz -C /tmp +# cd /tmp/xz-5.2.5 +# ./configure +# make +# ./configure prefix=/tmp/destination_root +# make install +# cd /tmp +# pkgbuild --root destination_root --identifier io.qt.xz.pkg xz-arm64.pkg + +set -ex + +# shellcheck source=../common/macos/InstallPKGFromURL.sh +source "${BASH_SOURCE%/*}/../common/macos/InstallPKGFromURL.sh" +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/macos_11.0_big_sur_arm/xz-arm64.pkg" +# SourceUrl="https://tukaani.org/xz/xz-5.2.5.tar.gz" + +SHA1="1afc327965d4af33399ae28f22c4b8e5a9e98dc2" +DestDir="/" + +InstallPKGFromURL "$PrimaryUrl" "$PrimaryUrl" "$SHA1" "$DestDir" + +echo "XZ = 5.2.5" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-13-arm/20-java.sh b/coin/provisioning/qtci-macos-13-arm/20-java.sh new file mode 100755 index 00000000..a6f3330c --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/20-java.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/macos/java_arm.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/20-xcode.sh b/coin/provisioning/qtci-macos-13-arm/20-xcode.sh new file mode 100755 index 00000000..498cb0fb --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/20-xcode.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2021 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script installs Xcode +# Prerequisites: Have Xcode prefetched to local cache as xz compressed. +# This can be achieved by fetching Xcode_9.xip from Apple Store. +# Uncompress it with 'xar -xf Xcode_9.xip' +# Then get https://gist.githubusercontent.com/pudquick/ff412bcb29c9c1fa4b8d/raw/24b25538ea8df8d0634a2a6189aa581ccc6a5b4b/parse_pbzx2.py +# with which you can run 'python parse_pbzx2.py Content'. +# This will give you five files called "Content.part<00..05>.cpio.xz". +# Extract those that have the extension .xz with xz. +# "cat" together all the content files "cat file1, file2, file3, file4, file5 >file_new" +# Compress the new file with xz back to something like Xcode_9.xz +# Upload the file to temporary storage for this script to use. + +set -ex + +# shellcheck source=../common/macos/install_xcode.sh +source "${BASH_SOURCE%/*}/../common/macos/install_xcode.sh" + +InstallXCode /net/ci-files01-hki.intra.qt.io/hdd/www/input/mac/Xcode_14_beta_5.xip 14_beta_5 diff --git a/coin/provisioning/qtci-macos-13-arm/21-install-commandlinetools.sh b/coin/provisioning/qtci-macos-13-arm/21-install-commandlinetools.sh new file mode 100755 index 00000000..d308b69b --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/21-install-commandlinetools.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2021 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +set -ex + +# shellcheck source=../common/macos/install-commandlinetools.sh +source "${BASH_SOURCE%/*}/../common/macos/install-commandlinetools.sh" +version="14_beta_5" +packageName="Command_Line_Tools_for_Xcode_$version.dmg" +url="http://ci-files01-hki.intra.qt.io/input/mac/$packageName" +sha1="e709a707e5c5faef1620eb23f2e3c71eae38ad11" + +InstallCommandLineTools $url $url $sha1 $packageName $version diff --git a/coin/provisioning/qtci-macos-13-arm/24-sccache.sh b/coin/provisioning/qtci-macos-13-arm/24-sccache.sh new file mode 100755 index 00000000..358b23fb --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/24-sccache.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +source "${BASH_SOURCE%/*}/../common/macos/sccache.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/25-cmake.sh b/coin/provisioning/qtci-macos-13-arm/25-cmake.sh new file mode 100755 index 00000000..4f4d405e --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/25-cmake.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/macos/cmake.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/25-homebrew.sh b/coin/provisioning/qtci-macos-13-arm/25-homebrew.sh new file mode 100755 index 00000000..c29c76f6 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/25-homebrew.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2021 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# Will install homebrew package manager for macOS. +# WARNING: Requires commandlinetools + + +set -e + +. "$(dirname "$0")"/../common/unix/DownloadURL.sh +. "$(dirname "$0")"/../common/unix/SetEnvVar.sh + + +DownloadURL \ + http://ci-files01-hki.intra.qt.io/input/mac/homebrew/a822f0d0f1838c07e86b356fcd2bf93c7a11c2aa/install.sh \ + https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \ + 3210da71e12a699ab3bba43910a6d5fc64b92000 \ + /tmp/homebrew_install.sh + +DownloadURL "http://ci-files01-hki.intra.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.intra.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw" +{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null +sudo chmod 755 /tmp/homebrew_install.sh +{ (echo $pw | /tmp/homebrew_install.sh); } 2> /dev/null +rm -f "/Users/qt/pw" + +# No need to manually do `brew update`, the homebrew installer script does it. +### brew update + +SetEnvVar "PATH" "\$PATH:/opt/homebrew/bin" diff --git a/coin/provisioning/qtci-macos-13-arm/25-mysql.sh b/coin/provisioning/qtci-macos-13-arm/25-mysql.sh new file mode 100755 index 00000000..d113c4cb --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/25-mysql.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2020 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script installs MySQL + +# MySQL is needed for Qt to be able to support MySQL + +set -ex + +# shellcheck source=../common/macos/InstallAppFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/macos/InstallAppFromCompressedFileFromURL.sh" +# shellcheck source=../common/unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" + +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/macos_10.12_sierra/mysql-5.7.15-osx10.11-x86_64.tar.gz" +AltUrl="https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.15-osx10.11-x86_64.tar.gz" +SHA1="07949bd42f350b0504a1536b8830b809b4a34fca" +appPrefix="" +targetDir="/opt/mysql57/" + +sudo mkdir -p "/opt" + +InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" "$targetDir" + +SetEnvVar "MYSQLBINPATH" "/opt/mysql57/bin" +echo "MySQL = 5.7.15" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-13-arm/25-pip.sh b/coin/provisioning/qtci-macos-13-arm/25-pip.sh new file mode 100755 index 00000000..86db3e27 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/25-pip.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/macos/pip.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/25-postgresql.sh b/coin/provisioning/qtci-macos-13-arm/25-postgresql.sh new file mode 100755 index 00000000..db1f5236 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/25-postgresql.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/macos/postgresql.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/25-python.sh b/coin/provisioning/qtci-macos-13-arm/25-python.sh new file mode 100755 index 00000000..f21f3c5e --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/25-python.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2021 The Qt Company Ltd. +## Copyright (C) 2017 Pelagicore AG +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script installs python3 + +# shellcheck source=../unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" + +brew install ${BASH_SOURCE%/*}/pyenv.rb + +pyenv install 3.9.7 + +/Users/qt/.pyenv/versions/3.9.7/bin/pip3 install --user install virtualenv wheel html5lib + +SetEnvVar "PYTHON3_PATH" "/Users/qt/.pyenv/versions/3.9.7/bin/" +SetEnvVar "PIP3_PATH" "/Users/qt/.pyenv/versions/3.9.7/bin/" +# Use 3.9 as a default python +SetEnvVar "PATH" "\$PYTHON3_PATH:\$PATH" + +# Install all needed packages in a special wheel cache directory +/Users/qt/.pyenv/versions/3.9.7/bin/pip3 wheel --wheel-dir $HOME/python3-wheels -r ${BASH_SOURCE%/*}/../common/shared/requirements.txt +SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels" + +# QtWebengine still requires python2 +pyenv install 2.7.18 +SetEnvVar "PYTHON2_PATH" "/Users/qt/.pyenv/versions/2.7.18/bin/" + +echo "python3 = 3.9.7" >> ~/versions.txt +echo "python2 = 2.7.18" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-13-arm/26-freetype.sh b/coin/provisioning/qtci-macos-13-arm/26-freetype.sh new file mode 100755 index 00000000..0faec4b4 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/26-freetype.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -ex + +brew install freetype diff --git a/coin/provisioning/qtci-macos-13-arm/26-ninja.sh b/coin/provisioning/qtci-macos-13-arm/26-ninja.sh new file mode 100755 index 00000000..08428b2f --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/26-ninja.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -ex + +# shellcheck source=../common/macos/ninja.sh +source "${BASH_SOURCE%/*}/../common/macos/ninja.sh" + + diff --git a/coin/provisioning/qtci-macos-13-arm/26-odbc.sh b/coin/provisioning/qtci-macos-13-arm/26-odbc.sh new file mode 100755 index 00000000..821c859f --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/26-odbc.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# Install libiodbc + +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/macos/libiodbc.sh" --with-universal diff --git a/coin/provisioning/qtci-macos-13-arm/26-p7zip.sh b/coin/provisioning/qtci-macos-13-arm/26-p7zip.sh new file mode 100755 index 00000000..15511332 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/26-p7zip.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# Install 7z to be used from command line + +set -ex + +brew update +brew install p7zip diff --git a/coin/provisioning/qtci-macos-13-arm/26-pcre2.sh b/coin/provisioning/qtci-macos-13-arm/26-pcre2.sh new file mode 100755 index 00000000..f8af516b --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/26-pcre2.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -ex + +brew install pcre2 diff --git a/coin/provisioning/qtci-macos-13-arm/27-libclang.sh b/coin/provisioning/qtci-macos-13-arm/27-libclang.sh new file mode 100755 index 00000000..aad628cb --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/27-libclang.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +# There is only one mac package and common script uses it as a default +"$BASEDIR/../common/unix/libclang.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/28-libclang-v100-dyn.sh b/coin/provisioning/qtci-macos-13-arm/28-libclang-v100-dyn.sh new file mode 100755 index 00000000..c9d6e93d --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/28-libclang-v100-dyn.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/unix/libclang-v100-dyn.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/30-android.sh b/coin/provisioning/qtci-macos-13-arm/30-android.sh new file mode 100755 index 00000000..6ddbf928 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/30-android.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2020 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script install Android sdk and ndk. + +# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version + +set -ex + +# shellcheck source=../common/unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" + +targetFolder="/opt/android" +sdkTargetFolder="$targetFolder/sdk" + +basePath="/net/ci-files01-hki.intra.qt.io/hdd/www/input/android" + +toolsVersion="2.1" +# toolsFile dertermines tools version +toolsFile="commandlinetools-mac-6609375_latest.zip" + +ndkVersion="r23b" +ndkFile="android-ndk-$ndkVersion-darwin.zip" +sdkBuildToolsVersion="28.0.3" +# this is compile sdk version +sdkApiLevel="android-28" + +toolsSourceFile="$basePath/$toolsFile" +ndkSourceFile="$basePath/$ndkFile" + +echo "Unzipping Android NDK to '$targetFolder'" +sudo unzip -q "$ndkSourceFile" -d "$targetFolder" +echo "Unzipping Android Tools to '$sdkTargetFolder'" +sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder" + +echo "Changing ownership of Android files." +sudo chown -R qt:wheel "$targetFolder" + +# Run the following command under `eval` or `sh -c` so that the shell properly splits it +sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'" + +sudo mkdir "$sdkTargetFolder/cmdline-tools" +sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools" + +echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion." +(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \ + "platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \ + | eval $sdkmanager_no_progress_bar_cmd + +echo "Checking the contents of Android SDK..." +ls -l "$sdkTargetFolder" + +SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder" +SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion" +SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64" +SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel" + +echo "Android SDK tools = $toolsVersion" >> ~/versions.txt +echo "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/versions.txt +echo "Android SDK API level = $sdkApiLevel" >> ~/versions.txt +echo "Android NDK = $ndkVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-13-arm/30-fbx.sh b/coin/provisioning/qtci-macos-13-arm/30-fbx.sh new file mode 100755 index 00000000..34eefeb6 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/30-fbx.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/macos/fbx_macos.sh" + diff --git a/coin/provisioning/qtci-macos-13-arm/30-install-conan.sh b/coin/provisioning/qtci-macos-13-arm/30-install-conan.sh new file mode 100755 index 00000000..ec54fa54 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/30-install-conan.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/unix/install-conan.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/30-nodejs.sh b/coin/provisioning/qtci-macos-13-arm/30-nodejs.sh new file mode 100755 index 00000000..ab992405 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/30-nodejs.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +brew install nodejs + diff --git a/coin/provisioning/qtci-macos-13-arm/35-install-breakpad.sh b/coin/provisioning/qtci-macos-13-arm/35-install-breakpad.sh new file mode 100755 index 00000000..74dd1579 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/35-install-breakpad.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +# shellcheck source=../common/unix/install-breakpad.sh +source "${BASH_SOURCE%/*}/../common/unix/install-breakpad.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/35-install_protobuff.sh b/coin/provisioning/qtci-macos-13-arm/35-install_protobuff.sh new file mode 100755 index 00000000..08c955e9 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/35-install_protobuff.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2020 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +set -ex + +# shellcheck source=../common/unix/install_protobuff.sh +source "${BASH_SOURCE%/*}/../common/unix/install_protobuff.sh" + diff --git a/coin/provisioning/qtci-macos-13-arm/35-openssl.sh b/coin/provisioning/qtci-macos-13-arm/35-openssl.sh new file mode 100755 index 00000000..57a86c47 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/35-openssl.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -ex + +# shellcheck source=../common/macos/install_openssl.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "macos" + diff --git a/coin/provisioning/qtci-macos-13-arm/36-emsdk.sh b/coin/provisioning/qtci-macos-13-arm/36-emsdk.sh new file mode 100755 index 00000000..7396d336 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/36-emsdk.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +# shellcheck source=../common/unix/emsdk.sh +source "${BASH_SOURCE%/*}/../common/unix/emsdk.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/40-qnx700.sh b/coin/provisioning/qtci-macos-13-arm/40-qnx700.sh new file mode 100755 index 00000000..712e72c9 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/40-qnx700.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +############################################################################# +## +## Copyright (C) 2020 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script installs QNX 7. + +targetFolder="/opt/" +sourceFile="/net/ci-files01-hki.intra.qt.io/hdd/www/input/qnx/qnx700-20190325-2-macos.tar.xz" +folderName="qnx700" + +sudo mkdir -p "$targetFolder" + +echo "Extracting QNX 7" +sudo tar -C "$targetFolder" -Jxf $sourceFile + +sudo chown -R qt:wheel "$targetFolder"/"$folderName" + +# Verify that we have last file in zip +if [ ! -f $targetFolder/$folderName/qnxsdp-env.sh ]; then + exit 1 +fi + +# Set env variables +echo "export QNX_700=$targetFolder/$folderName" >> ~/.bashrc +echo "QNX SDP = 7.0.0" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-13-arm/55-signtools.sh b/coin/provisioning/qtci-macos-13-arm/55-signtools.sh new file mode 100755 index 00000000..c543b8ac --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/55-signtools.sh @@ -0,0 +1,144 @@ +#!/usr/bin/env sh + +############################################################################# +## +## Copyright (C) 2020 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## 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 https://www.qt.io/terms-conditions. For further +## information use the contact form at https://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 3 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL3 included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 3 requirements +## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 2.0 or (at your option) the GNU General +## Public license version 3 or any later version approved by the KDE Free +## Qt Foundation. The licenses are as published by the Free Software +## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-2.0.html and +## https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# Install tools for singing packages +# This script assume that OS is vanilla. Target machine dosen't have any signing certificates installed. + +set -ex + +cache="http://ci-files01-hki.intra.qt.io/input" +cacheSigningTools="$cache/mac/sign_tools" +targetFolder="/Users/qt" +keychains="$targetFolder/Library/Keychains" + +Install() { + + url=$1 + targetFile=$2 + expectedSha1=$3 + + echo "Fetching $targetFile from $url..." + curl --retry 5 --retry-delay 10 --retry-max-time 60 "$url" -o "$targetFile" + shasum "$targetFile" |grep "$expectedSha1" + +} + +# qt-license +sha1QtLicense="9d59241d16f68d914f1c7aa1dc23e05faa169e8d" +Install "$cache/semisecure/.qt-license" "$targetFolder/.qt-license" $sha1QtLicense + +# Login keychain +sha1LoginKeychainPassword="aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" +Install "$cacheSigningTools/login_keychain_password.txt" "$targetFolder/login_keychain_password.txt" "$sha1LoginKeychainPassword" +{ loginKeychainPassword=$(cat "$targetFolder/login_keychain_password.txt"); } 2> /dev/null +loginKeychain=$keychains/login.keychain + +echo "Setting login.keychain as default keychain.." +security default-keychain -s $loginKeychain* +echo "Unlocking Login keychain with password.." +{ security unlock-keychain -p "$loginKeychainPassword" $loginKeychain*; } 2> /dev/null + +echo "remove the "Lock after X minutes of inactivity" from login.keychain" +security set-keychain-settings $loginKeychain + +# Apple Worldwide Developer Relations Certification Authority -> https://developer.apple.com/certificationauthority/AppleWWDRCA.cer +sha1AppleWWDRCA="ff6797793a3cd798dc5b2abef56f73edc9f83a64" +Install "$cacheSigningTools/AppleWWDRCA.cer" "$targetFolder/AppleWWDRCA.cer" $sha1AppleWWDRCA +sudo security add-certificates -k $loginKeychain* "$targetFolder/AppleWWDRCA.cer" + +# Developer ID Certification Authority -> https://www.apple.com/certificateauthority/DeveloperIDCA.cer +sha1DeveloperIDCA="3b166c3b7dc4b751c9fe2afab9135641e388e186" +Install "$cacheSigningTools/DeveloperIDCA.cer" "$targetFolder/DeveloperIDCA.cer" $sha1DeveloperIDCA +sudo security add-certificates -k $loginKeychain* "$targetFolder/DeveloperIDCA.cer" + +# Create script to unlock keychain 'security unlock-keychain -p 'password' Developer_ID_TheQtCompany.keychain' +sha1UnLockKeychain="4398870e3f558ad28c80566b5f70e24dc29ea724" +unlockKeychain=$targetFolder/unlock-keychain.sh +{ Install "$cacheSigningTools/unlock-keychain.sh" "$unlockKeychain" $sha1UnLockKeychain; } 2> /dev/null +sudo chmod 755 "$unlockKeychain" + +# Codesigning requirements file. The bundle identifier in the requirements file should match the identifier of the application that is signed. +shaCsreq="2c3f00b1845a0f475673fd6934ba25ea51d1f910" +csreq=$targetFolder/csreq_qt_company.txt +Install "$cacheSigningTools/csreq_qt_company.txt" "$csreq" $shaCsreq +chmod 755 "$csreq" + +# iOS signing tools +devIDKeychain="Developer_ID_TheQtCompany.keychain-db" +shaDevIdKeychain="972cca1879cdaeeb6042f9879756c748a8d1eddc" +Install "$cacheSigningTools/$devIDKeychain" "$keychains/$devIDKeychain" $shaDevIdKeychain +echo "Opening $devIDKeychain.." +open "$keychains/$devIDKeychain" + +sha1DeveloperIDTheQtCompanyKeychainPassword="d758e067736bbda7a91ffaec66cd38afdaf68ea6" +Install "$cacheSigningTools/Developer_ID_TheQtCompany_keychain_password.txt" "$targetFolder/Developer_ID_TheQtCompany_keychain_password.txt" "$sha1DeveloperIDTheQtCompanyKeychainPassword" +{ DeveloperIDTheQtCompanyKeychainPassword=$(cat "$targetFolder/Developer_ID_TheQtCompany_keychain_password.txt"); } 2> /dev/null + +echo "Unlocking $devIDKeychain with password.." +{ security unlock-keychain -p "$DeveloperIDTheQtCompanyKeychainPassword" $keychains/Developer_ID_TheQtCompany.keychain; } 2> /dev/null +security set-keychain-settings $keychains/Developer_ID_TheQtCompany.keychain + +sha1Ios="aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" +{ Install "$cacheSigningTools/ios_password.txt" "$targetFolder/ios_password.txt" $sha1Ios; } 2> /dev/null +{ iosPassword=$(cat "$targetFolder/ios_password.txt"); } 2> /dev/null + +iPhoneDeveloper="iPhoneDeveloperCiTeam2020.p12" +shaIPhoneDeveloper="73136e44fed850f398e85908e4a73f20a6bdd8a2" +Install "$cacheSigningTools/latest_ios_cert_2020/$iPhoneDeveloper" "$targetFolder/$iPhoneDeveloper" $shaIPhoneDeveloper +echo "Importing $iPhoneDeveloper.." +{ security import $targetFolder/$iPhoneDeveloper -k $loginKeychain* -P "$iosPassword" -T /usr/bin/codesign; } 2> /dev/null + +iPhoneDistribution="iPhoneDistributionCiTeam2020.p12" +shaIPhoneDistribution="36215c3cbc6bfee48e86aafbd53c56282fe36d8d" +Install "$cacheSigningTools/latest_ios_cert_2020/$iPhoneDistribution" "$targetFolder/$iPhoneDistribution" $shaIPhoneDistribution +echo "Importing $iPhoneDistribution.." +{ security import "$targetFolder/$iPhoneDistribution" -k $loginKeychain* -P "$iosPassword" -T /usr/bin/codesign; } 2> /dev/null + +# Mobileprovision +echo "Creating directory $targetFolder/Library/MobileDevice/Provisioning Profiles.." +mkdir "$targetFolder/Library/MobileDevice" +mkdir "$targetFolder/Library/MobileDevice/Provisioning Profiles" +shaMobileprovision="ec9697276253ca7bf4401912236f0e6fde4214da" +Install "$cacheSigningTools/latest_ios_cert_2020/iOS_Dev_2020_citeam.mobileprovision" "$targetFolder/Library/MobileDevice/Provisioning Profiles/iOS_Dev_2020_citeam.mobileprovision" $shaMobileprovision + +# Removing password files +rm -fr "$targetFolder/login_keychain_password.txt" + diff --git a/coin/provisioning/qtci-macos-13-arm/80-screenresolution.sh b/coin/provisioning/qtci-macos-13-arm/80-screenresolution.sh new file mode 100755 index 00000000..920c579c --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/80-screenresolution.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +"$(dirname "$0")"/../common/macos/screenresolution.sh + diff --git a/coin/provisioning/qtci-macos-13-arm/81-bluetooth.sh b/coin/provisioning/qtci-macos-13-arm/81-bluetooth.sh new file mode 100755 index 00000000..e08aca4e --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/81-bluetooth.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -ex + +brew install blueutil + +#Disable Bluetooth +blueutil -p 0 diff --git a/coin/provisioning/qtci-macos-13-arm/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-13-arm/90-install-ffmpeg.sh new file mode 100755 index 00000000..a8333b36 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/90-install-ffmpeg.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -ex + +source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" diff --git a/coin/provisioning/qtci-macos-13-arm/97-set-locale.sh b/coin/provisioning/qtci-macos-13-arm/97-set-locale.sh new file mode 100755 index 00000000..e34b7381 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/97-set-locale.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/macos/set-locale.sh diff --git a/coin/provisioning/qtci-macos-13-arm/99-mac-version.sh b/coin/provisioning/qtci-macos-13-arm/99-mac-version.sh new file mode 100755 index 00000000..99d94150 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/99-mac-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/macos/macos-version.sh diff --git a/coin/provisioning/qtci-macos-13-arm/pyenv.rb b/coin/provisioning/qtci-macos-13-arm/pyenv.rb new file mode 100644 index 00000000..8e981111 --- /dev/null +++ b/coin/provisioning/qtci-macos-13-arm/pyenv.rb @@ -0,0 +1,82 @@ +class Pyenv < Formula + desc "Python version management" + homepage "https://github.com/pyenv/pyenv" + url "https://github.com/pyenv/pyenv/archive/v2.2.0.tar.gz" + sha256 "ef62a5d0a0d582b38497ae8d24a2a417d4a21c42811123c08082541a7092825d" + license "MIT" + version_scheme 1 + head "https://github.com/pyenv/pyenv.git", branch: "master" + + livecheck do + url :stable + strategy :github_latest + end + + bottle do + sha256 cellar: :any, arm64_monterey: "1d326dcae6327e1a62a8026e80665a0d995eec0d26c27f417ef34a9b75a2e2a7" + sha256 cellar: :any, arm64_big_sur: "38f17626731a50f95ce1ad71495de2d260706a1420a19f2f29e7c935525c8c01" + sha256 cellar: :any, monterey: "b02075ca6820755aee0956795c7decbfac56562ba66fec06bea193116cef5de6" + sha256 cellar: :any, big_sur: "880bf4a355cc3da07562b82bac1bf7d0f4bcde6c613f5ea691f50d4e013b1bf8" + sha256 cellar: :any, catalina: "5f7f283d3029f6293a52fc5449cf6aae8be5976f605318c9afa300be3e7d88f8" + sha256 cellar: :any_skip_relocation, x86_64_linux: "fb8949a118e2b8012383fe822148778944d24fe7eab36655fad6e1f1d506e2ad" + end + + depends_on "autoconf" + depends_on "openssl@1.1" + depends_on "pkg-config" + depends_on "readline" + + uses_from_macos "bzip2" + uses_from_macos "libffi" + uses_from_macos "ncurses" + uses_from_macos "xz" + uses_from_macos "zlib" + + on_linux do + depends_on "python@3.10" => :test + end + + def install + inreplace "libexec/pyenv", "/usr/local", HOMEBREW_PREFIX + inreplace "libexec/pyenv-rehash", "$(command -v pyenv)", opt_bin/"pyenv" + inreplace "pyenv.d/rehash/source.bash", "$(command -v pyenv)", opt_bin/"pyenv" + + system "src/configure" + system "make", "-C", "src" + + prefix.install Dir["*"] + %w[pyenv-install pyenv-uninstall python-build].each do |cmd| + bin.install_symlink "#{prefix}/plugins/python-build/bin/#{cmd}" + end + + share.install prefix/"man" + + # Do not manually install shell completions. See: + # - https://github.com/pyenv/pyenv/issues/1056#issuecomment-356818337 + # - https://github.com/Homebrew/homebrew-core/pull/22727 + end + + test do + # Create a fake python version and executable. + pyenv_root = Pathname(shell_output("pyenv root").strip) + python_bin = pyenv_root/"versions/1.2.3/bin" + foo_script = python_bin/"foo" + foo_script.write "echo hello" + chmod "+x", foo_script + + # Test versions. + versions = shell_output("eval \"$(#{bin}/pyenv init --path)\" " \ + "&& eval \"$(#{bin}/pyenv init -)\" " \ + "&& pyenv versions").split("\n") + assert_equal 2, versions.length + assert_match(/\* system/, versions[0]) + assert_equal(" 1.2.3", versions[1]) + + # Test rehash. + system "pyenv", "rehash" + refute_match "Cellar", (pyenv_root/"shims/foo").read + assert_equal "hello", shell_output("eval \"$(#{bin}/pyenv init --path)\" " \ + "&& eval \"$(#{bin}/pyenv init -)\" " \ + "&& PYENV_VERSION='1.2.3' foo").chomp + end +end |