mirror of
git://code.qt.io/qt/qt5.git
synced 2026-09-18 22:59:58 +08:00
Compare commits
166 Commits
v6.12.0-rc1
..
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| d388103e82 | |||
| 2eb362d1c8 | |||
| 61d6a83316 | |||
| 574f06fdcc | |||
| 6e7735f5db | |||
| 85f201f07f | |||
| 14fd3ac200 | |||
| a8cd722ee2 | |||
| 61b2b03b78 | |||
| 8c31c16298 | |||
| 75ce1846a3 | |||
| 9fc2fe4bb5 | |||
| 7e2b6df4a8 | |||
| 897d609dad | |||
| 26a7125a2c | |||
| 653c7cec5b | |||
| ee8728d202 | |||
| f1632a6b40 | |||
| e94bda4040 | |||
| dc29c6d134 | |||
| 6a9e9eb192 | |||
| 31071aed4a | |||
| 6bda9bdef9 | |||
| 779613db43 | |||
| 056ef7a139 | |||
| 58b1334bac | |||
| e0f1c974c3 | |||
| 5ad4448629 | |||
| 81c7c49f23 | |||
| 6683a395e8 | |||
| 6920b96315 | |||
| e96543ec42 | |||
| eaa6423f36 | |||
| 33df950977 | |||
| cb8860d23a | |||
| 6b51154f65 | |||
| b03667a922 | |||
| 7fdc3c2e63 | |||
| 790d69eff5 | |||
| df694084d7 | |||
| 51aab48f53 | |||
| 0e12d8a718 | |||
| 204528c5bd | |||
| 2b92278152 | |||
| 333b23bd43 | |||
| 9ed1386484 | |||
| 1a8bf86bf7 | |||
| 49c5952b0c | |||
| 092792a1f4 | |||
| 295083dd9b | |||
| 8732522eea | |||
| aea8ccd137 | |||
| d4992d4da4 | |||
| e9ce684743 | |||
| c899623a25 | |||
| 3ed07a35b3 | |||
| dd170ab8a4 | |||
| f86d819c55 | |||
| 906b43060f | |||
| 78e1c81b1e | |||
| ab868d79a0 | |||
| 6326e57a40 | |||
| a60717f3fa | |||
| 065d6d06d9 | |||
| fec1887c6e | |||
| cdadd80b87 | |||
| 8804b39aa5 | |||
| 3ea33c05bf | |||
| f0a6bdb87e | |||
| a20ee395b0 | |||
| f408aa690a | |||
| 0979c63ba8 | |||
| 80f542aa53 | |||
| 4d6a473bed | |||
| 4bb35ed3bb | |||
| 65104d023e | |||
| 20c9b61cf6 | |||
| b49f3297b8 | |||
| 81f3a57d3b | |||
| 6f4085c84d | |||
| 14aeaae7de | |||
| b679f634ea | |||
| 9136724f2e | |||
| 44aa931e29 | |||
| dd13fa7b41 | |||
| d4fc6f01a9 | |||
| c425276693 | |||
| 654c9c2b03 | |||
| 8e218fec47 | |||
| 444670374a | |||
| 02df2a107d | |||
| 42370c3e0b | |||
| 34e6afee88 | |||
| eb6aff6f96 | |||
| 5a7814e918 | |||
| 41b759dba7 | |||
| 9969af72b5 | |||
| 4549003489 | |||
| d059dc0446 | |||
| cb7d1367be | |||
| 862c3df5bf | |||
| e37b588b62 | |||
| 28c27e1256 | |||
| 129c6abe37 | |||
| b5af653382 | |||
| ed632de606 | |||
| 8f3e7cd7eb | |||
| e84b449ab5 | |||
| fc6d6d66cc | |||
| 341fe4e602 | |||
| 42039d0819 | |||
| b7a2e3ba1c | |||
| 9b7e7d5852 | |||
| 99c69904b8 | |||
| adcff73e24 | |||
| 609c6903c7 | |||
| 156feaa139 | |||
| f898c700d3 | |||
| 7c5594ea08 | |||
| bb7ae5f3dc | |||
| 75db654544 | |||
| 2882b5615b | |||
| 87c2d0b629 | |||
| adc52dde71 | |||
| 3f495a95ee | |||
| 6282a3fd8a | |||
| 01ed52ad4c | |||
| 5e9c31fe74 | |||
| 6cecda38fa | |||
| 75a537b6d5 | |||
| c0e391423d | |||
| 4f97b4bea8 | |||
| a377574e66 | |||
| 74d1e3a4c8 | |||
| 526a09e46a | |||
| b002b0fde9 | |||
| 640b9c2ea2 | |||
| 3275891741 | |||
| 6a6f4fa55e | |||
| d6315c6f58 | |||
| b684ef99a6 | |||
| ce75c3c977 | |||
| 5d41389310 | |||
| b3e3927f22 | |||
| 50086ff8f3 | |||
| c22a682b4f | |||
| 6ead7af28d | |||
| 2b6e156008 | |||
| 00177db989 | |||
| 23c201ac4e | |||
| 41986ce213 | |||
| 596f204006 | |||
| a10af2c0e8 | |||
| cc750dc924 | |||
| 4826d56e8d | |||
| d6ac43b433 | |||
| 8d4971fd6e | |||
| d43a68e9b4 | |||
| 393b7adc1f | |||
| 38e3864f3e | |||
| 4df5cb5b02 | |||
| f505ed1baf | |||
| ec2e17e25d | |||
| 36efc0bfb0 | |||
| f0ab3c330f | |||
| 9448447668 |
+46
-46
@@ -1,46 +1,46 @@
|
||||
[submodule "qtbase"]
|
||||
path = qtbase
|
||||
url = ../qtbase.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = essential
|
||||
[submodule "qtsvg"]
|
||||
depends = qtbase
|
||||
path = qtsvg
|
||||
url = ../qtsvg.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtdeclarative"]
|
||||
depends = qtbase
|
||||
recommends = qtimageformats qtshadertools qtsvg qtlanguageserver
|
||||
path = qtdeclarative
|
||||
url = ../qtdeclarative.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = essential
|
||||
[submodule "qtactiveqt"]
|
||||
depends = qtbase
|
||||
path = qtactiveqt
|
||||
url = ../qtactiveqt.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtmultimedia"]
|
||||
depends = qtbase qtshadertools
|
||||
recommends = qtdeclarative qtquick3d
|
||||
path = qtmultimedia
|
||||
url = ../qtmultimedia.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qttools"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtactiveqt
|
||||
path = qttools
|
||||
url = ../qttools.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = essential
|
||||
[submodule "qttranslations"]
|
||||
depends = qttools
|
||||
path = qttranslations
|
||||
url = ../qttranslations.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = essential
|
||||
priority = 30
|
||||
[submodule "qtdoc"]
|
||||
@@ -48,7 +48,7 @@
|
||||
recommends = qtmultimedia qtshadertools qttasktree
|
||||
path = qtdoc
|
||||
url = ../qtdoc.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = essential
|
||||
priority = 40
|
||||
[submodule "qtrepotools"]
|
||||
@@ -61,7 +61,7 @@
|
||||
depends = qtbase
|
||||
path = qtqa
|
||||
url = ../qtqa.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = essential
|
||||
priority = 50
|
||||
[submodule "qtlocation"]
|
||||
@@ -69,234 +69,234 @@
|
||||
recommends = qtdeclarative
|
||||
path = qtlocation
|
||||
url = ../qtlocation.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = preview
|
||||
[submodule "qtpositioning"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtserialport
|
||||
path = qtpositioning
|
||||
url = ../qtpositioning.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtsensors"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtsensors
|
||||
url = ../qtsensors.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtconnectivity"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtconnectivity
|
||||
url = ../qtconnectivity.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtwayland"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtwayland
|
||||
url = ../qtwayland.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qt3d"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtshadertools qtmultimedia
|
||||
path = qt3d
|
||||
url = ../qt3d.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = deprecated
|
||||
[submodule "qtimageformats"]
|
||||
depends = qtbase
|
||||
path = qtimageformats
|
||||
url = ../qtimageformats.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtserialbus"]
|
||||
depends = qtbase
|
||||
recommends = qtserialport
|
||||
path = qtserialbus
|
||||
url = ../qtserialbus.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtserialport"]
|
||||
depends = qtbase
|
||||
path = qtserialport
|
||||
url = ../qtserialport.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtwebsockets"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtwebsockets
|
||||
url = ../qtwebsockets.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtwebchannel"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtwebsockets
|
||||
path = qtwebchannel
|
||||
url = ../qtwebchannel.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtwebview"]
|
||||
depends = qtdeclarative
|
||||
path = qtwebview
|
||||
url = ../qtwebview.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtcharts"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtmultimedia
|
||||
path = qtcharts
|
||||
url = ../qtcharts.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = deprecated
|
||||
[submodule "qtdatavis3d"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtmultimedia
|
||||
path = qtdatavis3d
|
||||
url = ../qtdatavis3d.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = deprecated
|
||||
[submodule "qtvirtualkeyboard"]
|
||||
depends = qtbase qtdeclarative qtsvg
|
||||
recommends = qtmultimedia
|
||||
path = qtvirtualkeyboard
|
||||
url = ../qtvirtualkeyboard.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtscxml"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtscxml
|
||||
url = ../qtscxml.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtspeech"]
|
||||
depends = qtbase qtmultimedia
|
||||
recommends = qtdeclarative
|
||||
path = qtspeech
|
||||
url = ../qtspeech.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtnetworkauth"]
|
||||
depends = qtbase
|
||||
path = qtnetworkauth
|
||||
url = ../qtnetworkauth.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtremoteobjects"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtremoteobjects
|
||||
url = ../qtremoteobjects.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtlottie"]
|
||||
depends = qtbase qtdeclarative qtquicktimeline
|
||||
path = qtlottie
|
||||
url = ../qtlottie.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtquicktimeline"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtquicktimeline
|
||||
url = ../qtquicktimeline
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtquick3d"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
recommends = qtquicktimeline
|
||||
path = qtquick3d
|
||||
url = ../qtquick3d.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtshadertools"]
|
||||
depends = qtbase
|
||||
path = qtshadertools
|
||||
url = ../qtshadertools.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qt5compat"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qt5compat
|
||||
url = ../qt5compat.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = deprecated
|
||||
[submodule "qtcoap"]
|
||||
depends = qtbase
|
||||
path = qtcoap
|
||||
url = ../qtcoap.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtmqtt"]
|
||||
depends = qtbase qtdeclarative
|
||||
recommends = qtwebsockets
|
||||
path = qtmqtt
|
||||
url = ../qtmqtt.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtopcua"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtopcua
|
||||
url = ../qtopcua.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtlanguageserver"]
|
||||
depends = qtbase
|
||||
path = qtlanguageserver
|
||||
url = ../qtlanguageserver.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = preview
|
||||
[submodule "qthttpserver"]
|
||||
depends = qtbase
|
||||
recommends = qtwebsockets
|
||||
path = qthttpserver
|
||||
url = ../qthttpserver.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtquick3dphysics"]
|
||||
depends = qtbase qtdeclarative qtquick3d qtshadertools
|
||||
path = qtquick3dphysics
|
||||
url = ../qtquick3dphysics.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtgrpc"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtgrpc
|
||||
url = ../qtgrpc.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtquickeffectmaker"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
recommends = qtquick3d
|
||||
path = qtquickeffectmaker
|
||||
url = ../qtquickeffectmaker.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtgraphs"]
|
||||
depends = qtbase qtdeclarative qtquick3d
|
||||
path = qtgraphs
|
||||
url = ../qtgraphs.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qttasktree"]
|
||||
depends = qtbase
|
||||
path = qttasktree
|
||||
url = ../qttasktree.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = preview
|
||||
[submodule "qtopenapi"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtopenapi
|
||||
url = ../qtopenapi.git
|
||||
branch = 6.12.0
|
||||
branch = dev
|
||||
status = preview
|
||||
[submodule "qtcanvaspainter"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
path = qtcanvaspainter
|
||||
url = ../qtcanvaspainter.git
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
branch = dev
|
||||
status = preview
|
||||
|
||||
@@ -21,7 +21,9 @@ ColumnLimit: 100
|
||||
# Disable reflow of some specific comments
|
||||
# qdoc comments: indentation rules are different.
|
||||
# Translation comments and SPDX license identifiers are also excluded.
|
||||
# REUSE-IgnoreStart
|
||||
CommentPragmas: "^!|^:|^ SPDX-License-Identifier:"
|
||||
# REUSE-IgnoreEnd
|
||||
|
||||
# We want a space between the type and the star for pointer types.
|
||||
PointerBindsToType: false
|
||||
|
||||
@@ -181,6 +181,7 @@ function(qt_ir_clone_one_submodule submodule_name)
|
||||
set(oneValueArgs
|
||||
ALTERNATES
|
||||
BASE_URL
|
||||
DEPTH
|
||||
WORKING_DIRECTORY
|
||||
)
|
||||
set(multiValueArgs "")
|
||||
@@ -263,6 +264,9 @@ function(qt_ir_clone_one_submodule submodule_name)
|
||||
else()
|
||||
list(APPEND clone_args --no-checkout)
|
||||
endif()
|
||||
if(arg_DEPTH)
|
||||
list(APPEND clone_args --depth "${arg_DEPTH}")
|
||||
endif()
|
||||
list(APPEND clone_args ${progress_args})
|
||||
qt_ir_execute_process_and_log_and_handle_error(
|
||||
COMMAND_ARGS git clone ${clone_args} "${mirror_or_original_url}" "${submodule_path}"
|
||||
@@ -1063,6 +1067,7 @@ function(qt_ir_handle_init_submodules prefix)
|
||||
set(oneValueArgs
|
||||
ALTERNATES
|
||||
BASE_URL
|
||||
DEPTH
|
||||
PARENT_REPO_BASE_GIT_PATH
|
||||
WORKING_DIRECTORY
|
||||
)
|
||||
@@ -1123,6 +1128,7 @@ function(qt_ir_handle_init_submodules prefix)
|
||||
qt_ir_clone_one_submodule(${submodule_name}
|
||||
ALTERNATES ${arg_ALTERNATES}
|
||||
BASE_URL ${arg_BASE_URL}
|
||||
DEPTH "${arg_DEPTH}"
|
||||
WORKING_DIRECTORY "${working_directory}"
|
||||
${branch_flag}
|
||||
${fetch_flag}
|
||||
@@ -1163,6 +1169,7 @@ function(qt_ir_handle_init_submodules prefix)
|
||||
SUBMODULES "all"
|
||||
|
||||
BASE_URL "${base_url}"
|
||||
DEPTH "${arg_DEPTH}"
|
||||
PARENT_REPO_BASE_GIT_PATH "${submodule_base_git_path}"
|
||||
WORKING_DIRECTORY "${working_directory}/${submodule_name}"
|
||||
|
||||
|
||||
@@ -122,6 +122,16 @@ Options:
|
||||
|
||||
Note that this negates the disk usage benefits gained from the use
|
||||
of `--alternates'.
|
||||
|
||||
--depth <n>
|
||||
Creates a shallow clone with a history truncated to <n> commits for
|
||||
each submodule that is cloned, by passing `--depth <n>' to `git
|
||||
clone'. This also applies recursively to submodules of submodules
|
||||
(e.g. qtwebengine's third-party dependencies).
|
||||
|
||||
This option only affects submodules that are freshly cloned; it has
|
||||
no effect on already-cloned submodules that are merely updated or
|
||||
fetched.
|
||||
--mirror <url-base>
|
||||
Uses <url-base> as the base URL for submodule git mirrors.
|
||||
|
||||
|
||||
@@ -312,6 +312,7 @@ function(qt_ir_run_after_args_parsed top_level_src_path out_var_exit_reason)
|
||||
# Get some additional options to pass down.
|
||||
qt_ir_get_option_as_existing_absolute_path(alternates alternates)
|
||||
qt_ir_get_option_as_cmake_flag_option(branch "CHECKOUT_BRANCH" checkout_branch_option)
|
||||
qt_ir_get_option_value(depth depth)
|
||||
|
||||
# The prefix for the cmake-style 'dictionary' that will be used by various functions.
|
||||
set(prefix "ir_top")
|
||||
@@ -321,6 +322,7 @@ function(qt_ir_run_after_args_parsed top_level_src_path out_var_exit_reason)
|
||||
ALTERNATES "${alternates}"
|
||||
ALREADY_INITIALIZED_SUBMODULES "${already_initialized_submodules}"
|
||||
BASE_URL "${base_url}"
|
||||
DEPTH "${depth}"
|
||||
PARENT_REPO_BASE_GIT_PATH "${qt5_repo_name}"
|
||||
PROCESS_SUBMODULES_FROM_COMMAND_LINE
|
||||
WORKING_DIRECTORY "${working_directory}"
|
||||
|
||||
@@ -16,6 +16,7 @@ macro(qt_ir_set_known_command_line_options)
|
||||
qt_ir_commandline_option(codereview-username TYPE string)
|
||||
qt_ir_commandline_option(codereview-https TYPE boolean)
|
||||
qt_ir_commandline_option(copy-objects TYPE boolean)
|
||||
qt_ir_commandline_option(depth TYPE string)
|
||||
qt_ir_commandline_option(fetch TYPE boolean DEFAULT_VALUE yes)
|
||||
qt_ir_commandline_option(force SHORT_NAME f TYPE boolean)
|
||||
qt_ir_commandline_option(force-hooks TYPE boolean)
|
||||
|
||||
@@ -30,3 +30,6 @@ enable_if:
|
||||
- condition: property
|
||||
property: target.os
|
||||
equals_value: Linux
|
||||
- condition: property
|
||||
property: target.osVersion
|
||||
not_equals_value: HarmonyOS_ANY
|
||||
|
||||
@@ -105,6 +105,20 @@ Configurations:
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
# Ubuntu 26.04 x64 Wayland
|
||||
-
|
||||
Id: 'ubuntu-26.04-x64-developer-build'
|
||||
Template: 'qtci-linux-Ubuntu-26.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'InsignificantTests', 'VerboseCTestOutput', 'StandaloneExamples']
|
||||
Configure arguments: '-make examples -developer-build -c++std c++20 -linker gold -qtlibinfix TestInfix -qtnamespace TestNamespace'
|
||||
Environment variables: [
|
||||
'COMMON_TEST_CMAKE_ARGS=-DQT_SKIP_DOCKER_COMPOSE=ON',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
# Ubuntu 24.04 x64 Wayland
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-50'
|
||||
@@ -118,6 +132,20 @@ Configurations:
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
# Ubuntu 26.04 x64 Wayland
|
||||
-
|
||||
Id: 'ubuntu-26.04-x64'
|
||||
Template: 'qtci-linux-Ubuntu-26.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'InsignificantTests', 'VerboseCTestOutput', 'GenerateSBOM', 'VerifySBOM', 'DocsGenerationV2']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'COMMON_TEST_CMAKE_ARGS=-DQT_SKIP_DOCKER_COMPOSE=ON',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
# Test on Ubuntu 24.04 x64 X11
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64-developer-build-x11-tests'
|
||||
@@ -358,7 +386,7 @@ Configurations:
|
||||
Id: 'rhel-10.0'
|
||||
Template: 'qtci-linux-RHEL-10.0-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM', 'DoNotAbortTestingOnFirstFailure']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
|
||||
@@ -11,10 +11,10 @@ Configurations:
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'Packaging', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-release -nomake examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT}} -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/sdk/default/openharmony -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw'
|
||||
'QT_HARMONYOS_HVIGOR={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/bin/hvigorw'
|
||||
]
|
||||
-
|
||||
Id: 'harmonyos-23-arm64-on-linux-developer-build'
|
||||
@@ -27,10 +27,42 @@ Configurations:
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-developer-build -debug -make examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT}} -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/sdk/default/openharmony -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw'
|
||||
'QT_HARMONYOS_HVIGOR={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/bin/hvigorw'
|
||||
]
|
||||
-
|
||||
Id: 'harmonyos-26-arm64-on-linux'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-50'
|
||||
Target os: 'HarmonyOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'ubuntu-24.04-x64'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'Packaging', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-release -nomake examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT_NEXT}}/sdk/default/openharmony -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'QT_HARMONYOS_HVIGOR={{.Env.HARMONYOS_SDK_ROOT_NEXT}}/bin/hvigorw'
|
||||
]
|
||||
-
|
||||
Id: 'harmonyos-26-arm64-on-linux-developer-build'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-50'
|
||||
Target os: 'HarmonyOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'ubuntu-24.04-x64-developer-build'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-developer-build -debug -make examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT_NEXT}}/sdk/default/openharmony -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'QT_HARMONYOS_HVIGOR={{.Env.HARMONYOS_SDK_ROOT_NEXT}}/bin/hvigorw'
|
||||
]
|
||||
-
|
||||
Id: 'harmonyos-23-arm64-on-macos'
|
||||
@@ -43,8 +75,8 @@ Configurations:
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-developer-build -debug -make examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT}} -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/sdk/default/openharmony -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw'
|
||||
'QT_HARMONYOS_HVIGOR={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/bin/hvigorw'
|
||||
]
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [yocto.yaml]
|
||||
Configurations: []
|
||||
@@ -0,0 +1,24 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"ios-arm64-simulator"
|
||||
]
|
||||
]
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ios-26-simulator-tests'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Platform dependency: 'ios-arm64-simulator'
|
||||
Features: ['TestOnly', 'Insignificant', 'DoNotAbortTestingOnFirstFailure']
|
||||
Environment variables: [
|
||||
'APPLE_SIMULATOR_DEVICE_TYPE=com.apple.CoreSimulator.SimDeviceType.iPad-Pro-13-inch-M4-8GB',
|
||||
]
|
||||
Overrides:
|
||||
-
|
||||
Id: 'ios-arm64-simulator'
|
||||
-Features: ['DisableTests']
|
||||
+Features: ['DoNotRunTests']
|
||||
@@ -0,0 +1,14 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-24.04-lcov'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'lcov', 'VMSize8', 'DisableTests']
|
||||
Configure arguments: '-developer-build -nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
|
||||
]
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml,
|
||||
address_sanitizer_platforms.yaml
|
||||
]
|
||||
Configurations: []
|
||||
@@ -7,6 +7,7 @@ Include: [
|
||||
"ubuntu-22.04",
|
||||
"ubuntu-22.04-developer-build",
|
||||
"ubuntu-24.04-arm64",
|
||||
"ubuntu-24.04-x64",
|
||||
"opensuse-16.0-developer-build",
|
||||
"sles-15_sp6-static",
|
||||
"windows-10_22h2-msvc2022",
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'ubuntu-22.04',
|
||||
'ubuntu-24.04-x64',
|
||||
'ubuntu-24.04-arm64',
|
||||
'jammy-arm64-debian-pkg-packaging',
|
||||
'jammy-amd64-debian-pkg-packaging'
|
||||
],
|
||||
cmake_platforms_qemu.yaml: [
|
||||
'qemu-arm64-developer-build'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
# Set pch off due to stale pch file causing false positive sccache hit
|
||||
-
|
||||
Id: 'ubuntu-22.04'
|
||||
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON -DQT_DEPLOY_FFMPEG=TRUE']
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON -DQT_DEPLOY_FFMPEG=TRUE -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64'
|
||||
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON']
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'ubuntu-24.04-arm64'
|
||||
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt']
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'jammy-arm64-debian-pkg-packaging'
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'jammy-amd64-debian-pkg-packaging'
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'qemu-arm64-developer-build'
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 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
|
||||
|
||||
# Distribution-specific build settings.
|
||||
# For another distro/version, copy the bundle and change these values first.
|
||||
|
||||
DISTRO_NAME="ubuntu"
|
||||
DISTRO_VERSION="26.04"
|
||||
ISO_PATH="/tmp/ubuntu-26.04-desktop-amd64.iso"
|
||||
# ISO_CHECKSUM_FILE="/tmp/SHA256SUMS"
|
||||
|
||||
# Usually reusable without changes.
|
||||
IMAGE_PREFIX="qtci-linux"
|
||||
ARCH="x86_64"
|
||||
MINIMAL_INDEX="50"
|
||||
CUSTOM_INDEX="51"
|
||||
DISK_SIZE="500G"
|
||||
CPUS="8"
|
||||
MEMORY_MB="16184"
|
||||
SSH_USERNAME="qt"
|
||||
SSH_PASSWORD="$(cat /tmp/PASS)"
|
||||
|
||||
PROJECT_DIR="/tmp/packer-linux"
|
||||
ARTIFACT_DIR="/tmp/output-linux-images"
|
||||
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 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 -euo pipefail
|
||||
|
||||
script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# shellcheck source=build-config.sh
|
||||
source "${script_dir}/build-config.sh"
|
||||
|
||||
image_base_name="${IMAGE_PREFIX}-${DISTRO_NAME}-${DISTRO_VERSION}-${ARCH}"
|
||||
image_50_name="${image_base_name}-${MINIMAL_INDEX}"
|
||||
image_51_name="${image_base_name}-${CUSTOM_INDEX}"
|
||||
image_50="${ARTIFACT_DIR}/${image_50_name}"
|
||||
image_51="${ARTIFACT_DIR}/${image_51_name}"
|
||||
image_51_seed="/tmp/${image_51_name}-seed.qcow2"
|
||||
stage_50_output="/tmp/packer-output-${MINIMAL_INDEX}"
|
||||
stage_51_output="/tmp/packer-output-${CUSTOM_INDEX}"
|
||||
template="linux-image.pkr.hcl"
|
||||
|
||||
# Pass one source of configuration into Packer without duplicating distro and
|
||||
# version literals in HCL or a second variable file.
|
||||
export PKR_VAR_distro_name="$DISTRO_NAME"
|
||||
export PKR_VAR_distro_version="$DISTRO_VERSION"
|
||||
export PKR_VAR_image_prefix="$IMAGE_PREFIX"
|
||||
export PKR_VAR_arch="$ARCH"
|
||||
export PKR_VAR_minimal_index="$MINIMAL_INDEX"
|
||||
export PKR_VAR_custom_index="$CUSTOM_INDEX"
|
||||
export PKR_VAR_iso_path="$ISO_PATH"
|
||||
# export PKR_VAR_iso_checksum_file="$ISO_CHECKSUM_FILE"
|
||||
export PKR_VAR_project_dir="$PROJECT_DIR"
|
||||
export PKR_VAR_artifact_dir="$ARTIFACT_DIR"
|
||||
export PKR_VAR_disk_size="$DISK_SIZE"
|
||||
export PKR_VAR_cpus="$CPUS"
|
||||
export PKR_VAR_memory_mb="$MEMORY_MB"
|
||||
export PKR_VAR_ssh_username="$SSH_USERNAME"
|
||||
export PKR_VAR_ssh_password="$SSH_PASSWORD"
|
||||
|
||||
if [[ "$script_dir" != "$PROJECT_DIR" ]]; then
|
||||
echo "ERROR: Bundle is at '$script_dir', but PROJECT_DIR is '$PROJECT_DIR'." >&2
|
||||
echo "Move/extract it there or update PROJECT_DIR in build-config.sh." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for required_file in $ISO_PATH; do
|
||||
if [[ ! -f "$required_file" ]]; then
|
||||
echo "ERROR: Required file is missing: $required_file" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Stage 51 is always regenerated. Stage 50 is retained
|
||||
rm -rf "$stage_50_output" "$stage_51_output"
|
||||
rm -f "$image_51" "$image_51_seed"
|
||||
rm -f "${image_51}.sha256"
|
||||
|
||||
packer init "$template"
|
||||
packer validate "$template"
|
||||
|
||||
if [[ -f "$image_50" ]]; then
|
||||
echo "Stage ${MINIMAL_INDEX}: existing image found:"
|
||||
echo " $image_50"
|
||||
echo "Validating existing image before skipping the build..."
|
||||
|
||||
if ! qemu-img check "$image_50"; then
|
||||
echo "ERROR: Existing stage-${MINIMAL_INDEX} image failed validation:" >&2
|
||||
echo " $image_50" >&2
|
||||
echo "The image was not deleted or overwritten." >&2
|
||||
echo "Remove it manually" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Stage ${MINIMAL_INDEX}: image is valid, skipping Packer build."
|
||||
sha256sum "$image_50" > "${image_50}.sha256"
|
||||
|
||||
else
|
||||
echo "Stage ${MINIMAL_INDEX}: no existing image found, starting Packer."
|
||||
|
||||
PACKER_LOG=1 \
|
||||
PACKER_LOG_PATH="/tmp/packer-stage-${MINIMAL_INDEX}.log" \
|
||||
packer build -only=stage-50.qemu.stage_50 "$template"
|
||||
|
||||
qemu-img check "$image_50"
|
||||
sha256sum "$image_50" > "${image_50}.sha256"
|
||||
fi
|
||||
|
||||
echo "Creating independent stage-${CUSTOM_INDEX} seed..."
|
||||
qemu-img convert -p -f qcow2 -O qcow2 "$image_50" "$image_51_seed"
|
||||
qemu-img check "$image_51_seed"
|
||||
|
||||
PACKER_LOG=1 \
|
||||
PACKER_LOG_PATH="/tmp/packer-stage-${CUSTOM_INDEX}.log" \
|
||||
packer build -only=stage-51.qemu.stage_51 "$template"
|
||||
|
||||
qemu-img check "$image_51"
|
||||
sha256sum "$image_51" > "${image_51}.sha256"
|
||||
|
||||
(
|
||||
cd "$ARTIFACT_DIR"
|
||||
sha256sum --check "$(basename "${image_50}.sha256")"
|
||||
)
|
||||
|
||||
rm -f "$image_51_seed"
|
||||
|
||||
echo
|
||||
echo "Created independent images:"
|
||||
echo " $image_50"
|
||||
echo " $image_51"
|
||||
echo "Checksums:"
|
||||
echo " ${image_50}.sha256"
|
||||
echo " ${image_51}.sha256"
|
||||
@@ -0,0 +1,2 @@
|
||||
instance-id: qtci-ubuntu26-packer
|
||||
local-hostname: qtci-ubuntu26-x64
|
||||
@@ -0,0 +1,22 @@
|
||||
#cloud-config
|
||||
# This file is installer/distribution-specific. The generic HCL and wrapper can
|
||||
# be reused, but replace this file for a distro that does not use autoinstall.
|
||||
autoinstall:
|
||||
version: 1
|
||||
source:
|
||||
id: ubuntu-desktop-minimal
|
||||
locale: en_US.UTF-8
|
||||
keyboard:
|
||||
layout: us
|
||||
timezone: UTC
|
||||
identity:
|
||||
hostname: qtci-ubuntu26-x64
|
||||
username: qt
|
||||
password: "$6$qtciubuntu2604$FAeHIUtg1iOarKFnnDZim5fWEJ6ZaaYXSc360m68XFTqurIBWNBxsmUDKj.8mGJkVDKlWjFdKZLfrqHYhuBH8/"
|
||||
ssh:
|
||||
install-server: true
|
||||
allow-pw: true
|
||||
storage:
|
||||
layout:
|
||||
name: direct
|
||||
shutdown: reboot
|
||||
@@ -0,0 +1,192 @@
|
||||
packer {
|
||||
required_version = ">= 1.14.0"
|
||||
|
||||
required_plugins {
|
||||
qemu = {
|
||||
version = "~> 1"
|
||||
source = "github.com/hashicorp/qemu"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "distro_name" {
|
||||
type = string
|
||||
}
|
||||
variable "distro_version" {
|
||||
type = string
|
||||
}
|
||||
variable "image_prefix" {
|
||||
type = string
|
||||
}
|
||||
variable "arch" {
|
||||
type = string
|
||||
}
|
||||
variable "minimal_index" {
|
||||
type = string
|
||||
}
|
||||
variable "custom_index" {
|
||||
type = string
|
||||
}
|
||||
variable "iso_path" {
|
||||
type = string
|
||||
}
|
||||
variable "project_dir" {
|
||||
type = string
|
||||
}
|
||||
variable "artifact_dir" {
|
||||
type = string
|
||||
}
|
||||
variable "disk_size" {
|
||||
type = string
|
||||
}
|
||||
variable "cpus" {
|
||||
type = number
|
||||
}
|
||||
variable "memory_mb" {
|
||||
type = number
|
||||
}
|
||||
variable "ssh_username" {
|
||||
type = string
|
||||
}
|
||||
variable "ssh_password" {
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
locals {
|
||||
image_base_name = "${var.image_prefix}-${var.distro_name}-${var.distro_version}-${var.arch}"
|
||||
image_50_name = "${local.image_base_name}-${var.minimal_index}"
|
||||
image_51_name = "${local.image_base_name}-${var.custom_index}"
|
||||
|
||||
image_50_path = "${var.artifact_dir}/${local.image_50_name}"
|
||||
image_51_path = "${var.artifact_dir}/${local.image_51_name}"
|
||||
image_51_seed = "/tmp/${local.image_51_name}-seed.qcow2"
|
||||
|
||||
stage_50_output = "/tmp/packer-output-${var.minimal_index}"
|
||||
stage_51_output = "/tmp/packer-output-${var.custom_index}"
|
||||
}
|
||||
|
||||
source "qemu" "stage_50" {
|
||||
vm_name = local.image_50_name
|
||||
output_directory = local.stage_50_output
|
||||
|
||||
iso_url = var.iso_path
|
||||
iso_checksum = "none"
|
||||
|
||||
accelerator = "kvm"
|
||||
qemu_binary = "qemu-system-x86_64"
|
||||
format = "qcow2"
|
||||
disk_size = var.disk_size
|
||||
disk_interface = "virtio"
|
||||
net_device = "virtio-net"
|
||||
|
||||
cpus = var.cpus
|
||||
memory = var.memory_mb
|
||||
|
||||
communicator = "ssh"
|
||||
ssh_username = var.ssh_username
|
||||
ssh_password = var.ssh_password
|
||||
ssh_timeout = "60m"
|
||||
ssh_handshake_attempts = 100
|
||||
|
||||
http_directory = "${var.project_dir}/http"
|
||||
boot_wait = "10s"
|
||||
|
||||
# This boot sequence is installer-family-specific. Replace it when adapting
|
||||
# the bundle to a distro that does not use Ubuntu/Subiquity autoinstall.
|
||||
boot_command = [
|
||||
"c<wait>",
|
||||
"linux /casper/vmlinuz autoinstall ds=nocloud-net\\;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ ---<enter><wait>",
|
||||
"initrd /casper/initrd<enter><wait>",
|
||||
"boot<enter>"
|
||||
]
|
||||
|
||||
headless = true
|
||||
vnc_bind_address = "127.0.0.1"
|
||||
shutdown_command = "echo '${var.ssh_password}' | sudo -S shutdown -P now"
|
||||
}
|
||||
|
||||
source "qemu" "stage_51" {
|
||||
vm_name = local.image_51_name
|
||||
output_directory = local.stage_51_output
|
||||
|
||||
# build-images.sh creates this independent seed from immutable image -50.
|
||||
iso_url = local.image_51_seed
|
||||
iso_checksum = "none"
|
||||
disk_image = true
|
||||
|
||||
accelerator = "kvm"
|
||||
qemu_binary = "qemu-system-x86_64"
|
||||
format = "qcow2"
|
||||
disk_size = var.disk_size
|
||||
disk_interface = "virtio"
|
||||
net_device = "virtio-net"
|
||||
|
||||
cpus = var.cpus
|
||||
memory = var.memory_mb
|
||||
|
||||
communicator = "ssh"
|
||||
ssh_username = var.ssh_username
|
||||
ssh_password = var.ssh_password
|
||||
ssh_timeout = "30m"
|
||||
ssh_handshake_attempts = 100
|
||||
|
||||
headless = true
|
||||
vnc_bind_address = "127.0.0.1"
|
||||
shutdown_command = "echo '${var.ssh_password}' | sudo -S shutdown -P now"
|
||||
}
|
||||
|
||||
build {
|
||||
name = "stage-50"
|
||||
sources = ["source.qemu.stage_50"]
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "echo '${var.ssh_password}' | {{ .Vars }} sudo -S -E bash '{{ .Path }}'"
|
||||
script = "${var.project_dir}/scripts/01-minimal-50.sh"
|
||||
}
|
||||
|
||||
post-processor "shell-local" {
|
||||
inline = [
|
||||
"mkdir -p '${var.artifact_dir}'",
|
||||
"rm -f '${local.image_50_path}'",
|
||||
"mv '${local.stage_50_output}/${local.image_50_name}' '${local.image_50_path}'",
|
||||
"qemu-img check '${local.image_50_path}'",
|
||||
"qemu-img info '${local.image_50_path}'"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
build {
|
||||
name = "stage-51"
|
||||
sources = ["source.qemu.stage_51"]
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "echo '${var.ssh_password}' | {{ .Vars }} sudo -S -E bash '{{ .Path }}'"
|
||||
script = "${var.project_dir}/scripts/02-coin-configuration-51.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "echo '${var.ssh_password}' | {{ .Vars }} sudo -S -E bash '{{ .Path }}'"
|
||||
script = "${var.project_dir}/scripts/03-gnome-configuration-51.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "echo '${var.ssh_password}' | {{ .Vars }} sudo -S -E bash '{{ .Path }}'"
|
||||
script = "${var.project_dir}/scripts/04-no-overview-extension-51.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "echo '${var.ssh_password}' | {{ .Vars }} sudo -S -E bash '{{ .Path }}'"
|
||||
script = "${var.project_dir}/scripts/05-check-configurations-51.sh"
|
||||
}
|
||||
|
||||
post-processor "shell-local" {
|
||||
inline = [
|
||||
"mkdir -p '${var.artifact_dir}'",
|
||||
"rm -f '${local.image_51_path}'",
|
||||
"mv '${local.stage_51_output}/${local.image_51_name}' '${local.image_51_path}'",
|
||||
"qemu-img check '${local.image_51_path}'",
|
||||
"qemu-img info '${local.image_51_path}'"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 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 -euo pipefail
|
||||
|
||||
# This script is run on the minimal -50 image
|
||||
# Other scripts will be run on the -50 -> -51 cloned image
|
||||
|
||||
readonly CI_USER="${CI_USER:-qt}"
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Debian/Ubuntu implementation. Replace this script with the distro's package
|
||||
# manager commands when reusing the generic wrapper and HCL elsewhere.
|
||||
apt-get update
|
||||
apt-get -y full-upgrade
|
||||
apt-get install -y qemu-guest-agent
|
||||
systemctl enable qemu-guest-agent
|
||||
|
||||
dpkg-query -W -f='${binary:Package}\t${Version}\n' \
|
||||
> /var/tmp/qtci-minimal-image-packages.txt
|
||||
|
||||
apt-get -y autoremove
|
||||
apt-get clean
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
qemu-ga --version
|
||||
+169
@@ -0,0 +1,169 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 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 -euo pipefail
|
||||
|
||||
# Initial Coin configuration for the customized image (-51).
|
||||
|
||||
readonly CI_USER="${CI_USER:-qt}"
|
||||
readonly GRUB_GFXMODE_VALUE="${GRUB_GFXMODE_VALUE:-1280x800}"
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
log() {
|
||||
printf '\n[51-coin-configuration] %s\n' "$*"
|
||||
}
|
||||
|
||||
require_root() {
|
||||
if [[ "${EUID}" -ne 0 ]]; then
|
||||
echo "ERROR: This script must run as root." >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
require_user() {
|
||||
if ! id "$CI_USER" >/dev/null 2>&1; then
|
||||
echo "ERROR: Required CI user does not exist: $CI_USER" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
require_root
|
||||
require_user
|
||||
|
||||
log "Installing required base packages"
|
||||
apt-get update
|
||||
apt-get install -y \
|
||||
openssh-server \
|
||||
ufw
|
||||
|
||||
# Remove GNOME welcome window at boot
|
||||
log "Removing gnome-initial-setup"
|
||||
apt-get purge -y gnome-initial-setup
|
||||
|
||||
# No sudo PW
|
||||
log "Configuring passwordless sudo for ${CI_USER}"
|
||||
cat > "/etc/sudoers.d/${CI_USER}" <<EOF
|
||||
${CI_USER} ALL=(ALL) NOPASSWD: ALL
|
||||
EOF
|
||||
chmod 0440 "/etc/sudoers.d/${CI_USER}"
|
||||
visudo --check
|
||||
|
||||
# UTC
|
||||
log "Setting the system timezone to UTC"
|
||||
timedatectl set-timezone UTC
|
||||
|
||||
# Enable SSH
|
||||
log "Enabling SSH"
|
||||
# Current Ubuntu releases may use socket activation. Enabling both units is
|
||||
# harmless and keeps the image compatible with service- and socket-based SSH.
|
||||
systemctl enable ssh.service
|
||||
systemctl enable ssh.socket 2>/dev/null || true
|
||||
|
||||
# Enable QEMU GA
|
||||
log "Enabling QEMU guest agent"
|
||||
systemctl enable qemu-guest-agent
|
||||
|
||||
# Disable firewall
|
||||
log "Disabling UFW"
|
||||
ufw --force disable
|
||||
systemctl disable ufw.service 2>/dev/null || true
|
||||
|
||||
# Set resolution
|
||||
log "Configuring GRUB graphics mode: ${GRUB_GFXMODE_VALUE}"
|
||||
if grep -qE '^GRUB_GFXMODE=' /etc/default/grub; then
|
||||
sed -i "s/^GRUB_GFXMODE=.*/GRUB_GFXMODE=${GRUB_GFXMODE_VALUE}/" /etc/default/grub
|
||||
else
|
||||
printf '\nGRUB_GFXMODE=%s\n' "$GRUB_GFXMODE_VALUE" >> /etc/default/grub
|
||||
fi
|
||||
update-grub
|
||||
|
||||
# Disable auto upgrade/update
|
||||
log "Disabling periodic APT update checks"
|
||||
cat > /etc/apt/apt.conf.d/99-qtci-no-periodic-updates << EOF
|
||||
APT::Periodic "0";
|
||||
APT::Periodic::Update-Package-Lists "0";
|
||||
APT::Periodic::Download-Upgradeable-Packages "0";
|
||||
APT::Periodic::AutocleanInterval "0";
|
||||
APT::Periodic::Unattended-Upgrade "0";
|
||||
EOF
|
||||
|
||||
sudo systemctl disable --now \
|
||||
apt-daily.timer \
|
||||
apt-daily-upgrade.timer
|
||||
|
||||
sudo systemctl mask \
|
||||
apt-daily.service \
|
||||
apt-daily-upgrade.service \
|
||||
apt-daily.timer \
|
||||
apt-daily-upgrade.timer
|
||||
|
||||
log "Disabling release-upgrade notifications"
|
||||
if [[ -f /etc/update-manager/release-upgrades ]]; then
|
||||
if grep -qE '^Prompt=' /etc/update-manager/release-upgrades; then
|
||||
sed -i 's/^Prompt=.*/Prompt=never/' \
|
||||
/etc/update-manager/release-upgrades
|
||||
else
|
||||
printf '\nPrompt=never\n' >> /etc/update-manager/release-upgrades
|
||||
fi
|
||||
fi
|
||||
|
||||
# GDM Auto login
|
||||
log "Configuring GDM for ${CI_USER}"
|
||||
if [[ -d /etc/gdm3 ]]; then
|
||||
gdm_config="/etc/gdm3/custom.conf"
|
||||
touch "$gdm_config"
|
||||
|
||||
if ! grep -qE '^\[daemon\]' "$gdm_config"; then
|
||||
printf '\n[daemon]\n' >> "$gdm_config"
|
||||
fi
|
||||
sed -i \
|
||||
'/^AutomaticLoginEnable=/d; /^AutomaticLogin=/d; /^InitialSetupEnable=/d' \
|
||||
"$gdm_config"
|
||||
sed -i \
|
||||
"/^\[daemon\]/a InitialSetupEnable=False\nAutomaticLogin=${CI_USER}\nAutomaticLoginEnable=True" \
|
||||
"$gdm_config"
|
||||
else
|
||||
log "GDM is not installed; skipping GDM configuration"
|
||||
fi
|
||||
|
||||
# Run Coin-setup
|
||||
log "Downloading and running coin-setup"
|
||||
|
||||
coin_setup_url="https://ci-files01-hki.ci.qt.io/input/linux/coin-setup-linux-amd64.zip"
|
||||
coin_setup_zip="/tmp/coin-setup-linux-amd64.zip"
|
||||
coin_setup_dir="/tmp/coin-setup-linux-amd64"
|
||||
coin_setup_binary="${coin_setup_dir}/coin-setup"
|
||||
|
||||
rm -rf "$coin_setup_dir"
|
||||
rm -f "$coin_setup_zip"
|
||||
mkdir -p "$coin_setup_dir"
|
||||
|
||||
wget --quiet --output-document="$coin_setup_zip" "$coin_setup_url"
|
||||
|
||||
unzip -q "$coin_setup_zip" -d "$coin_setup_dir"
|
||||
|
||||
if [[ ! -f "$coin_setup_binary" ]]; then
|
||||
echo "ERROR: coin-setup binary was not found at ${coin_setup_binary}" >&2
|
||||
echo "Archive contents:" >&2
|
||||
unzip -l "$coin_setup_zip" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
chmod 0755 "$coin_setup_binary"
|
||||
|
||||
sudo -H -u "$CI_USER" "$coin_setup_binary"
|
||||
|
||||
rm -rf "$coin_setup_dir"
|
||||
rm -f "$coin_setup_zip"
|
||||
|
||||
log "coin-setup completed successfully"
|
||||
|
||||
# Clean apt
|
||||
log "Cleaning APT metadata"
|
||||
apt-get clean
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
log "Configuration completed successfully"
|
||||
echo "A reboot is required for all GRUB and login-manager changes to take effect."
|
||||
+150
@@ -0,0 +1,150 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 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 -euo pipefail
|
||||
|
||||
readonly CI_USER="${CI_USER:-qt}"
|
||||
|
||||
log() {
|
||||
printf '\n[gnome-configuration] %s\n' "$*"
|
||||
}
|
||||
|
||||
if [[ "$EUID" -ne 0 ]]; then
|
||||
echo "ERROR: This script must run as root." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! id "$CI_USER" >/dev/null 2>&1; then
|
||||
echo "ERROR: User does not exist: $CI_USER" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ci_home="$(getent passwd "$CI_USER" | cut -d: -f6)"
|
||||
|
||||
if [[ -z "$ci_home" || ! -d "$ci_home" ]]; then
|
||||
echo "ERROR: Cannot determine home directory for $CI_USER" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "Applying GNOME preferences for ${CI_USER}"
|
||||
|
||||
# GNOME preferences are stored per user in the dconf database. Packer runs this
|
||||
# provisioner as root over SSH, without a graphical login or user D-Bus session.
|
||||
# Run gsettings as the CI user inside a temporary D-Bus session so the values
|
||||
# are written to the CI user's dconf database rather than root's configuration.
|
||||
|
||||
sudo -H -u "$CI_USER" HOME="$ci_home" dbus-run-session -- bash <<'GNOME_SETTINGS'
|
||||
set -euo pipefail
|
||||
|
||||
schema_exists() {
|
||||
local schema="$1"
|
||||
|
||||
gsettings list-schemas |
|
||||
grep -Fx "$schema" >/dev/null
|
||||
}
|
||||
|
||||
key_exists() {
|
||||
local schema="$1"
|
||||
local key="$2"
|
||||
|
||||
gsettings list-keys "$schema" |
|
||||
grep -Fx "$key" >/dev/null
|
||||
}
|
||||
|
||||
set_setting() {
|
||||
local schema="$1"
|
||||
local key="$2"
|
||||
local value="$3"
|
||||
|
||||
if ! schema_exists "$schema"; then
|
||||
echo "ERROR: Missing GSettings schema: $schema" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! key_exists "$schema" "$key"; then
|
||||
echo "ERROR: Missing GSettings key: $schema $key" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Setting: $schema $key = $value"
|
||||
gsettings set "$schema" "$key" "$value"
|
||||
|
||||
actual="$(gsettings get "$schema" "$key")"
|
||||
echo "Result: $schema $key = $actual"
|
||||
}
|
||||
|
||||
set_setting \
|
||||
org.gnome.desktop.notifications \
|
||||
show-banners \
|
||||
false
|
||||
|
||||
set_setting \
|
||||
org.gnome.desktop.notifications \
|
||||
show-in-lock-screen \
|
||||
false
|
||||
|
||||
set_setting \
|
||||
org.gnome.desktop.screensaver \
|
||||
lock-enabled \
|
||||
false
|
||||
|
||||
if key_exists \
|
||||
org.gnome.desktop.screensaver \
|
||||
ubuntu-lock-on-suspend; then
|
||||
|
||||
set_setting \
|
||||
org.gnome.desktop.screensaver \
|
||||
ubuntu-lock-on-suspend \
|
||||
false
|
||||
fi
|
||||
|
||||
set_setting \
|
||||
org.gnome.desktop.privacy \
|
||||
remember-recent-files \
|
||||
false
|
||||
|
||||
rm -f "${XDG_DATA_HOME:-$HOME/.local/share}/recently-used.xbel"
|
||||
|
||||
set_setting \
|
||||
org.gnome.desktop.session \
|
||||
idle-delay \
|
||||
'uint32 0'
|
||||
|
||||
set_setting \
|
||||
org.gnome.settings-daemon.plugins.power \
|
||||
sleep-inactive-ac-type \
|
||||
"'nothing'"
|
||||
|
||||
set_setting \
|
||||
org.gnome.settings-daemon.plugins.power \
|
||||
sleep-inactive-battery-type \
|
||||
"'nothing'"
|
||||
|
||||
set_setting \
|
||||
org.gnome.settings-daemon.plugins.power \
|
||||
sleep-inactive-ac-timeout \
|
||||
0
|
||||
|
||||
set_setting \
|
||||
org.gnome.settings-daemon.plugins.power \
|
||||
sleep-inactive-battery-timeout \
|
||||
0
|
||||
|
||||
set_setting \
|
||||
org.gnome.shell.extensions.dash-to-dock \
|
||||
dock-fixed \
|
||||
true
|
||||
|
||||
set_setting \
|
||||
org.gnome.shell.extensions.dash-to-dock \
|
||||
autohide \
|
||||
false
|
||||
|
||||
set_setting \
|
||||
org.gnome.shell.extensions.dash-to-dock \
|
||||
intellihide \
|
||||
false
|
||||
GNOME_SETTINGS
|
||||
|
||||
log "GNOME preferences applied successfully"
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 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 -euo pipefail
|
||||
|
||||
# Install no-overview gnome extension to prevent desktop overview at boot (QTBUG-132070)
|
||||
|
||||
readonly CI_USER="${CI_USER:-qt}"
|
||||
readonly EXTENSION_UUID="no-overview@fthx"
|
||||
readonly EXTENSION_URL="https://ci-files01-hki.ci.qt.io/input/linux/no-overviewfthx.v23.shell-extension.zip" # GNOME <50
|
||||
readonly EXTENSION_ZIP="/tmp/${EXTENSION_UUID}.zip"
|
||||
readonly EXTENSION_DIR="/usr/share/gnome-shell/extensions/${EXTENSION_UUID}"
|
||||
|
||||
if [[ "$EUID" -ne 0 ]]; then
|
||||
echo "ERROR: This script must run as root." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! id "$CI_USER" >/dev/null 2>&1; then
|
||||
echo "ERROR: User does not exist: $CI_USER" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ci_home="$(getent passwd "$CI_USER" | cut -d: -f6)"
|
||||
|
||||
echo "Installing No Overview GNOME extension"
|
||||
|
||||
wget --quiet --output-document="$EXTENSION_ZIP" "$EXTENSION_URL"
|
||||
|
||||
install -d -o root -g root -m 0755 "$EXTENSION_DIR"
|
||||
|
||||
unzip -q "$EXTENSION_ZIP" -d "$EXTENSION_DIR"
|
||||
|
||||
chown -R root:root "$EXTENSION_DIR"
|
||||
find "$EXTENSION_DIR" -type d -exec chmod 0755 {} +
|
||||
find "$EXTENSION_DIR" -type f -exec chmod 0644 {} +
|
||||
|
||||
# gnome-extensions writes the enabled state to the CI user's dconf database.
|
||||
# Packer runs over SSH without a user session, so provide a temporary D-Bus.
|
||||
sudo -H -u "$CI_USER" HOME="$ci_home" dbus-run-session -- gnome-extensions enable "$EXTENSION_UUID"
|
||||
|
||||
rm -f "$EXTENSION_ZIP"
|
||||
|
||||
echo "Installed and enabled: $EXTENSION_UUID"
|
||||
echo "After a reboot, check with: gnome-extensions list --enabled"
|
||||
+138
@@ -0,0 +1,138 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 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 -euo pipefail
|
||||
|
||||
failures=0
|
||||
|
||||
pass() {
|
||||
printf 'PASS: %s\n' "$1"
|
||||
}
|
||||
|
||||
fail() {
|
||||
printf 'FAIL: %s\n' "$1"
|
||||
failures=$((failures + 1))
|
||||
}
|
||||
|
||||
echo "=== Image -51 verification ==="
|
||||
|
||||
# No PW prompt
|
||||
if sudo -n true 2>/dev/null; then
|
||||
pass "passwordless sudo"
|
||||
else
|
||||
fail "passwordless sudo"
|
||||
fi
|
||||
|
||||
if sudo visudo --check >/dev/null 2>&1; then
|
||||
pass "sudoers syntax"
|
||||
else
|
||||
fail "sudoers syntax"
|
||||
fi
|
||||
|
||||
# Timezone
|
||||
timezone="$(timedatectl show --property=Timezone --value)"
|
||||
|
||||
if [[ "$timezone" == "UTC" || "$timezone" == "Etc/UTC" ]]; then
|
||||
pass "timezone is UTC"
|
||||
else
|
||||
fail "timezone is '$timezone', expected UTC"
|
||||
fi
|
||||
|
||||
# SSH
|
||||
if dpkg-query -W -f='${db:Status-Abbrev}' openssh-server 2>/dev/null | grep -q '^ii'; then
|
||||
pass "openssh-server installed"
|
||||
else
|
||||
fail "openssh-server installed"
|
||||
fi
|
||||
|
||||
if systemctl is-active --quiet ssh.socket || systemctl is-active --quiet ssh.service; then
|
||||
pass "SSH listener active"
|
||||
else
|
||||
fail "SSH listener active"
|
||||
fi
|
||||
|
||||
if sudo ss -ltn |
|
||||
grep -qE 'LISTEN.+:22[[:space:]]'; then
|
||||
pass "TCP port 22 listening"
|
||||
else
|
||||
fail "TCP port 22 listening"
|
||||
fi
|
||||
|
||||
# QEMU GA
|
||||
if dpkg-query -W -f='${db:Status-Abbrev}' qemu-guest-agent 2>/dev/null | grep -q '^ii'; then
|
||||
pass "qemu-guest-agent installed"
|
||||
else
|
||||
fail "qemu-guest-agent installed"
|
||||
fi
|
||||
|
||||
if systemctl is-enabled --quiet qemu-guest-agent; then
|
||||
pass "qemu-guest-agent enabled"
|
||||
else
|
||||
fail "qemu-guest-agent enabled"
|
||||
fi
|
||||
|
||||
# UFW
|
||||
if sudo ufw status | grep -Fxq 'Status: inactive'; then
|
||||
pass "UFW inactive"
|
||||
else
|
||||
fail "UFW inactive"
|
||||
fi
|
||||
|
||||
# Resolution
|
||||
if grep -Fxq 'GRUB_GFXMODE=1280x800' /etc/default/grub; then
|
||||
pass "GRUB graphics mode"
|
||||
else
|
||||
fail "GRUB graphics mode"
|
||||
fi
|
||||
|
||||
# Auto update/upgrade disabled
|
||||
if apt-config dump | grep -i 'APT::Periodic \"0\";'; then
|
||||
pass "APT periodic processing disabled"
|
||||
else
|
||||
apt-config dump | grep -i APT::Periodic
|
||||
fail "APT periodic processing enabled"
|
||||
fi
|
||||
|
||||
if apt-config dump | grep -i 'APT::Periodic::Unattended-Upgrade \"0\";'; then
|
||||
pass "APT unattended upgrades disabled"
|
||||
else
|
||||
apt-config dump | grep -i APT::Periodic
|
||||
fail "APT unattended upgrades enabled"
|
||||
fi
|
||||
|
||||
if grep -Fxq 'Prompt=never' /etc/update-manager/release-upgrades; then
|
||||
pass "release-upgrade notifications disabled"
|
||||
else
|
||||
fail "release-upgrade notifications enabled"
|
||||
fi
|
||||
|
||||
# Auto login
|
||||
if sudo grep -Fxq 'AutomaticLoginEnable=True' /etc/gdm3/custom.conf && sudo grep -Fxq 'AutomaticLogin=qt' /etc/gdm3/custom.conf; then
|
||||
pass "GDM automatic login configured"
|
||||
else
|
||||
fail "GDM automatic login configured"
|
||||
fi
|
||||
|
||||
# Broken packages
|
||||
if [[ -z "$(sudo dpkg --audit)" ]]; then
|
||||
pass "dpkg audit"
|
||||
else
|
||||
fail "dpkg audit"
|
||||
fi
|
||||
|
||||
# GNOME initial setup executable removed
|
||||
if [[ ! -x /usr/libexec/gnome-initial-setup ]]; then
|
||||
pass "GNOME initial setup executable is absent"
|
||||
else
|
||||
fail "/usr/libexec/gnome-initial-setup exists. There might be a welcome window popup"
|
||||
fi
|
||||
|
||||
# Summary
|
||||
echo
|
||||
if (( failures == 0 )); then
|
||||
echo "All conf checks passed."
|
||||
else
|
||||
echo "${failures} check(s) failed."
|
||||
# exit 1
|
||||
fi
|
||||
@@ -25,8 +25,8 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
|
||||
toolsVersion="19.0"
|
||||
toolsFile="commandlinetools-linux-13114758_latest.zip"
|
||||
toolsBackupUrl="https://dl.google.com/android/repository/$toolsFile"
|
||||
sdkBuildToolsVersion="37.0.0"
|
||||
sdkApiLevel="android-37.0"
|
||||
sdkBuildToolsVersion="36.0.0"
|
||||
sdkApiLevel="android-36"
|
||||
toolsSha1="5fdcc763663eefb86a5b8879697aa6088b041e70"
|
||||
|
||||
ndkVersionLatest="r27c"
|
||||
@@ -161,12 +161,13 @@ cd "$sdkTargetFolder/cmdline-tools/tools/bin"
|
||||
./sdkmanager --install "emulator" --sdk_root="$sdkTargetFolder" \
|
||||
| eval "$sdkmanager_no_progress_bar_cmd"
|
||||
|
||||
echo "Download and unzip Android Emulator version 35.2.10"
|
||||
emulatorFileName="emulator-linux_x64-12414864.zip"
|
||||
echo "Download and unzip Android Emulator version 36.6.11"
|
||||
# See https://developer.android.com/studio/emulator_archive
|
||||
emulatorFileName="emulator-linux_x64-15507667.zip"
|
||||
emulatorCiUrl="https://ci-files01-hki.ci.qt.io/input/android/$emulatorFileName"
|
||||
emulatorUrl="http://dl.google.com/android/repository/$emulatorFileName"
|
||||
emulatorTargetFile="$sdkTargetFolder/$emulatorFileName"
|
||||
emulatorSha1="41dd213d120f727d8c3840347d234b135793ba10"
|
||||
emulatorSha1="f8d8b83cf21a04966326eb1378bacda255f63b93"
|
||||
DownloadURL "$emulatorCiUrl" "$emulatorUrl" "$emulatorSha1" "$emulatorTargetFile"
|
||||
echo "Unzipping the Android Emulator to '$sdkTargetFolder'"
|
||||
sudo unzip -o -q "$emulatorTargetFile" -d "$sdkTargetFolder"
|
||||
@@ -202,21 +203,21 @@ echo "Unzipping the Android 16 to $maxVersionDestination"
|
||||
sudo unzip -o -q "$maxVersionFilePath" -d "$maxVersionDestination"
|
||||
rm "$maxVersionFilePath"
|
||||
|
||||
echo "Download and unzip Android 17 Beta 3 16KB System Image"
|
||||
insignificantMaxVersionFileName="x86_64-ps16k-37.0_r03.zip"
|
||||
echo "Download and unzip Android 17 (16KB Page Size) System Image"
|
||||
insignificantMaxVersionFileName="x86_64-ps16k-37.1_r07.zip"
|
||||
insignificantMaxVersionDestination="$sdkTargetFolder/system-images/android-37/google_apis_ps16k/"
|
||||
insignificantMaxVersionFilePath="$insignificantMaxVersionDestination/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionCiUrl="$basePath/system_images/google_apis/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$insignificantMaxVersionFileName"
|
||||
insignificantMaxVersionSha1="b89a6686f9a9e9942d596bed45d422cbccb70c98"
|
||||
insignificantMaxVersionSha1="88e208a83a5f0b18958275b7c1a047e931395f3f"
|
||||
|
||||
mkdir -p "$insignificantMaxVersionDestination"
|
||||
DownloadURL "$insignificantMaxVersionCiUrl" "$insignificantMaxVersionUrl" "$insignificantMaxVersionSha1" "$insignificantMaxVersionFilePath"
|
||||
|
||||
echo "Unzipping the Android 17 Beta3 16KB to $insignificantMaxVersionDestination"
|
||||
echo "Unzipping the Android 17 (16KB Page Size) to $insignificantMaxVersionDestination"
|
||||
sudo unzip -o -q "$insignificantMaxVersionFilePath" -d "$insignificantMaxVersionDestination"
|
||||
# Hack to avoid SDK version bug in source.properties file, the usage of ".0" messes things for avdmanager. TODO: undo when official comes
|
||||
sudo sed -i 's/AndroidVersion.ApiLevel=37.0/AndroidVersion.ApiLevel=37/g' "$insignificantMaxVersionDestination/x86_64/source.properties"
|
||||
sudo sed -i 's/AndroidVersion.ApiLevel=37.1/AndroidVersion.ApiLevel=37/g' "$insignificantMaxVersionDestination/x86_64/source.properties"
|
||||
rm "$insignificantMaxVersionFilePath"
|
||||
|
||||
echo "Checking the contents of Android SDK again..."
|
||||
@@ -229,7 +230,7 @@ echo "no" | ./avdmanager create avd -n emulator_x86_64_api_36 -c 2048M -f \
|
||||
-k "system-images;android-36;google_apis;x86_64"
|
||||
|
||||
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_37 -c 2048M -f \
|
||||
-k "system-images;android-37;google_apis,page_size_16kb,ai_glasses_compatible;x86_64"
|
||||
-k "system-images;android-37;google_apis,page_size_16kb;x86_64"
|
||||
|
||||
echo "Install maximum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMax"
|
||||
DownloadURL "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxSha" \
|
||||
|
||||
@@ -11,8 +11,12 @@ PROVISIONING_DIR="$(dirname "$0")/../.."
|
||||
# shellcheck source=../unix/common.sourced.sh
|
||||
source "$PROVISIONING_DIR/common/unix/common.sourced.sh"
|
||||
|
||||
if [ -f /usr/lib/sysctl.d/55-ptrace.conf ]; then
|
||||
f="/usr/lib/sysctl.d/55-ptrace.conf" # New location in Ubuntu 26.04
|
||||
else
|
||||
f="/etc/sysctl.d/10-ptrace.conf"
|
||||
fi
|
||||
|
||||
f="/etc/sysctl.d/10-ptrace.conf"
|
||||
if [ -f $f ]
|
||||
then
|
||||
echo "Modifying $f ..."
|
||||
|
||||
@@ -16,52 +16,42 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
targetFolder="/opt/harmonyos"
|
||||
sdkTargetFolder="$targetFolder/command-line-tools"
|
||||
|
||||
sudo mkdir -p "$sdkTargetFolder"
|
||||
|
||||
basePath="http://ci-files01-hki.ci.qt.io/input/harmonyos"
|
||||
|
||||
toolsVersion="6.1.0.850"
|
||||
toolsFile="commandline-tools-linux-x64-6.1.0.850.zip"
|
||||
toolsSha1="6fdf7dbe0faddeb6a36cc76752faaf03d2abd462"
|
||||
function InstallCommandLineTools() {
|
||||
|
||||
toolsTargetFile="/tmp/$toolsFile"
|
||||
toolsSourceFile="$basePath/$toolsFile"
|
||||
cltVersion=$1
|
||||
cltSha1=$2
|
||||
|
||||
echo "Download and unzip HarmonyOS SDK"
|
||||
DownloadURL "$toolsSourceFile" "$toolsSourceFile" "$toolsSha1" "$toolsTargetFile"
|
||||
echo "Unzipping HarmonyOS Tools to '$targetFolder'"
|
||||
sudo unzip -q "$toolsTargetFile" -d "$targetFolder"
|
||||
rm "$toolsTargetFile"
|
||||
cltFile="commandline-tools-linux-x64-$cltVersion.zip"
|
||||
cltTargetFile="/tmp/$cltFile"
|
||||
cltSourceFile="$basePath/$cltFile"
|
||||
|
||||
patchFile="harmonyos_sdk_patches.zip"
|
||||
patchSha1="7f912104a5600bc176891bc6e9d97732f4266ad6"
|
||||
cltTargetDir="$targetFolder/$cltVersion"
|
||||
sudo mkdir -p "$cltTargetDir"
|
||||
|
||||
patchTargetFile="/tmp/$patchFile"
|
||||
patchSourceFile="$basePath/$patchFile"
|
||||
patchTargetFolder="$targetFolder/harmonyos_sdk_patches"
|
||||
DownloadURL "$cltSourceFile" "$cltSourceFile" "$cltSha1" "$cltTargetFile"
|
||||
echo "Unzipping HarmonyOS Command Line Tools to '$cltTargetDir'"
|
||||
# Get the package base directory name as string
|
||||
zipBase=$(sudo zipinfo -1 "$cltTargetFile" 2>/dev/null | awk '!seen {sub("/.*",""); print; seen=1}')
|
||||
sudo unzip -q "$cltTargetFile" -d "$cltTargetDir"
|
||||
rm "$cltTargetFile"
|
||||
harmonycltRoot="${cltTargetDir}/${zipBase}"
|
||||
|
||||
echo "Download and unzip HarmonyOS SDK patches"
|
||||
DownloadURL "$patchSourceFile" "$patchSourceFile" "$patchSha1" "$patchTargetFile"
|
||||
echo "Unzipping HarmonyOS SDK patches to '$targetFolder'"
|
||||
sudo unzip -q "$patchTargetFile" -d "$targetFolder"
|
||||
rm "$patchTargetFile"
|
||||
echo "Changing ownership of HarmonyOS files."
|
||||
sudo chown -R qt:users "$harmonycltRoot"
|
||||
}
|
||||
|
||||
echo "Changing ownership of HarmonyOS files."
|
||||
if uname -a |grep -q "el7"; then
|
||||
sudo chown -R qt:wheel "$sdkTargetFolder"
|
||||
sudo chown -R qt:wheel "$patchTargetFolder"
|
||||
else
|
||||
sudo chown -R qt:users "$sdkTargetFolder"
|
||||
sudo chown -R qt:users "$patchTargetFolder"
|
||||
fi
|
||||
cltVersionCurrent="6.1.0.850"
|
||||
cltSha1Current="6fdf7dbe0faddeb6a36cc76752faaf03d2abd462"
|
||||
InstallCommandLineTools $cltVersionCurrent $cltSha1Current
|
||||
SetEnvVar "HARMONYOS_SDK_ROOT_CURRENT" "$harmonycltRoot"
|
||||
sudo ln -s "$harmonycltRoot" "$sdkTargetFolder"
|
||||
SetEnvVar "HARMONYOS_SDK_ROOT" "$sdkTargetFolder"
|
||||
|
||||
echo "Patching HarmonyOS SDK"
|
||||
|
||||
sdkRootFolder="$sdkTargetFolder/sdk/default/openharmony"
|
||||
echo "Checking the contents of HarmonyOS SDK..."
|
||||
ls -l "$sdkRootFolder"
|
||||
|
||||
SetEnvVar "HARMONYOS_SDK_ROOT" "$sdkRootFolder"
|
||||
export HARMONYOS_SDK_ROOT="$sdkRootFolder"
|
||||
cltVersionNext="26.0.0.821"
|
||||
cltSha1Next="d89fc1a09ceb5b25a350695068fe9918912785d2"
|
||||
InstallCommandLineTools $cltVersionNext $cltSha1Next
|
||||
SetEnvVar "HARMONYOS_SDK_ROOT_NEXT" "$harmonycltRoot"
|
||||
|
||||
echo "HarmonyOS SDK setup finished"
|
||||
|
||||
@@ -14,7 +14,7 @@ cp -R x86_64-android-qt-tmp/* "$VCPKG_ROOT/installed/"
|
||||
|
||||
cmake "-DVCPKG_EXECUTABLE=$VCPKG_ROOT/vcpkg"\
|
||||
"-DVCPKG_INSTALL_ROOT=$PWD/x86-android-qt-tmp"\
|
||||
"-DOUTPUT=~/versions.txt"\
|
||||
"-DOUTPUT=$HOME/versions.txt"\
|
||||
-P\
|
||||
"${BASH_SOURCE%/*}/../shared/vcpkg_parse_packages.cmake"
|
||||
|
||||
|
||||
@@ -43,9 +43,9 @@ if [ ! -d "$targetFolder" ]; then
|
||||
fi
|
||||
|
||||
# QNX SDP
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20260422.tar.xz"
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20260828.tar.xz"
|
||||
targetFile="qnx710.tar.xz"
|
||||
sha1="98b24df7e8c53a104aee76e769011396fa4bdafd"
|
||||
sha1="c37e6f3a49a259d450b601843a9af2818b6feb96"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
|
||||
|
||||
# IANA timezone database overlay. Packaged separately from the SDP so it can be
|
||||
|
||||
@@ -43,9 +43,9 @@ if [ ! -d "$targetFolder" ]; then
|
||||
fi
|
||||
|
||||
# QNX SDP
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20260410.tar.xz"
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20260828.tar.xz"
|
||||
targetFile="qnx800.tar.xz"
|
||||
sha1="a3fdcd98e12bc5054d00f18e4088af26288fd020"
|
||||
sha1="f44b66d91625ab33e367cfb62a2950a041607caa"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
|
||||
|
||||
# IANA timezone database overlay. Packaged separately from the SDP so it can be
|
||||
@@ -60,14 +60,17 @@ sudo cp "$aarch64le_toolchain" "$targetPath"
|
||||
sudo cp "$armv7le_toolchain" "$targetPath"
|
||||
sudo cp "$x8664_toolchain" "$targetPath"
|
||||
cp -R "$QNX_qemu_bld_files_dir" "$qemuTargetPath"
|
||||
# fc-match tool is missing from QNX SDP and tst_qfont requires it to work corretly
|
||||
# Download code-only package from https://www.iana.org/time-zones and follow README
|
||||
# to build tools for QNX x86_64. If need to build new tool create new qnx_qemu_utils
|
||||
# package which contains it and update required info below
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx_qemu_utils_20211208.tar.xz"
|
||||
# The SDP ships fc-cache but not fc-match, which tst_qfont needs. Build it from
|
||||
# fontconfig's fc-match/fc-match.c at the release matching the SDP's fontconfig
|
||||
# (FC_MINOR/FC_REVISION in fontconfig.h), once per arch:
|
||||
# qcc -Vgcc_ntox86_64 -O2 -o fc-match fc-match.c \
|
||||
# -DHAVE_GETOPT_LONG=1 -DHAVE_UNISTD_H=1 -lfontconfig
|
||||
# Pack as <arch>/fc-match into a new dated archive, then update below. 7.1 keeps
|
||||
# its own archive.
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx_qemu_utils_800_20260825.tar.xz"
|
||||
targetFile="qnx_qemu_utils.tar.xz"
|
||||
targetFolder="$qemuTargetPath/local/misc_files"
|
||||
sha1="7653f5d50f61f1591d7785c3ec261228ecc9dd22"
|
||||
sha1="965b957c76d4bc59c010bb0908d1fea8975179c1"
|
||||
|
||||
mkdir -p "$targetFolder"
|
||||
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ var/etc/fontconfig/fonts.conf=etc/fonts/fonts.conf
|
||||
var/share/fonts=usr/share/fonts
|
||||
|
||||
var/etc/hosts=local/misc_files/etc/hosts
|
||||
var/etc/resolv.conf=local/misc_files/etc/resolv.conf
|
||||
var/dhcpcd/resolv.conf=local/misc_files/etc/resolv.conf
|
||||
var/etc/nsswitch.conf=etc/nsswitch.conf
|
||||
|
||||
[uid=0 gid=0 dperms=755 type=dir] var/etc/ssl/certs
|
||||
|
||||
+3
-2
@@ -28,6 +28,8 @@ lib/liblzma.so.5=usr/lib/liblzma.so.5
|
||||
lib/libdbus-1.so=usr/lib//libdbus-1.so
|
||||
lib/libdbus-1.so.22=usr/lib//libdbus-1.so.22
|
||||
lib/libbacktrace.so.1=lib/libbacktrace.so.1
|
||||
lib/libunwind-nto.so.0=usr/lib/libunwind-nto.so.0
|
||||
lib/libunwind-x86_64.so.8=usr/lib/libunwind-x86_64.so.8
|
||||
lib/libm.so.3=lib/libm.so.3
|
||||
|
||||
#############################################
|
||||
@@ -61,10 +63,9 @@ lib/libasound.so.5=lib/libasound.so.5
|
||||
# for fontconfig
|
||||
lib/libfontconfig.so.17=usr/lib/libfontconfig.so.17
|
||||
xbin/fc-cache=bin/fc-cache
|
||||
xbin/fc-match=local/misc_files/fc-match
|
||||
xbin/fc-match=local/misc_files/x86_64/fc-match
|
||||
|
||||
# network
|
||||
lib/libssl.so=usr/lib/libssl.so
|
||||
xbin/nslookup=usr/bin/nslookup
|
||||
xbin/unbound=sbin/unbound
|
||||
xbin/curl=usr/bin/curl
|
||||
|
||||
@@ -77,7 +77,12 @@ targetFolder="/opt/itl_generic_skylake_VSB/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
|
||||
# Enable ipv4 routing from vxWorks to Qt DNS
|
||||
sudo sed -i s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g /etc/sysctl.conf
|
||||
if [ -f /etc/sysctl.conf ]; then
|
||||
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
|
||||
else
|
||||
# There's no /etc/sysctl.conf in Ubuntu 26.04, use sysctl.d instead
|
||||
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-vxworks.conf
|
||||
fi
|
||||
sudo iptables -I FORWARD 1 -j ACCEPT
|
||||
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
|
||||
toolsVersion="19.0"
|
||||
toolsFile="commandlinetools-mac-13114758_latest.zip"
|
||||
toolsBackupUrl="https://dl.google.com/android/repository/$toolsFile"
|
||||
sdkBuildToolsVersion="37.0.0"
|
||||
sdkApiLevel="android-37.0"
|
||||
sdkBuildToolsVersion="35.0.1"
|
||||
sdkApiLevel="android-35"
|
||||
toolsSha1="c3e06a1959762e89167d1cbaa988605f6f7c1d24"
|
||||
|
||||
ndkVersionLatest="r27c"
|
||||
@@ -43,6 +43,9 @@ ndkVersionNightly1=$ndkVersionLatest # Set as same version as latest = skip NDK
|
||||
ndkSha1Nightly1=$ndkSha1Latest
|
||||
ndkVersionNightly2=$ndkVersionLatest
|
||||
ndkSha1Nightly2=$ndkSha1Latest
|
||||
sdkBuildToolsVersion="36.0.0"
|
||||
# this is compile sdk version
|
||||
sdkApiLevel="android-36"
|
||||
|
||||
toolsTargetFile="/tmp/$toolsFile"
|
||||
toolsSourceFile="$basePath/$toolsFile"
|
||||
|
||||
@@ -61,4 +61,8 @@ ls -l "$sdkRootFolder"
|
||||
SetEnvVar "HARMONYOS_SDK_ROOT" "$sdkRootFolder"
|
||||
export HARMONYOS_SDK_ROOT="$sdkRootFolder"
|
||||
|
||||
# Same meaning as on Linux: the command-line-tools root, which holds hvigorw.
|
||||
SetEnvVar "HARMONYOS_SDK_ROOT_CURRENT" "$sdkTargetFolder"
|
||||
export HARMONYOS_SDK_ROOT_CURRENT="$sdkTargetFolder"
|
||||
|
||||
echo "HarmonyOS SDK setup finished"
|
||||
|
||||
@@ -58,7 +58,12 @@ function InstallXCode() {
|
||||
# Xcode 26 ships a more minimal base install
|
||||
if ((majorVersion >= 26)); then
|
||||
xcodebuild -downloadComponent MetalToolchain
|
||||
xcodebuild -downloadPlatform iOS
|
||||
if ((majorVersion >= 27)); then
|
||||
# No more universal iOS simulator in Xcode 27
|
||||
xcodebuild -downloadPlatform iOS
|
||||
else
|
||||
xcodebuild -downloadPlatform iOS -architectureVariant universal
|
||||
fi
|
||||
if [[ $(uname -m) == "arm64" ]]; then
|
||||
xcodebuild -downloadPlatform visionOS
|
||||
fi
|
||||
|
||||
@@ -4,8 +4,7 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace = 'org.qtproject.qt.gradlecache.app'
|
||||
compileSdk = 37
|
||||
compileSdkMinor = 0
|
||||
compileSdk = 36
|
||||
|
||||
defaultConfig {
|
||||
applicationId 'org.qtproject.qt.gradlecache.app'
|
||||
|
||||
@@ -4,8 +4,7 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace = 'org.qtproject.qt.gradlecache.feature'
|
||||
compileSdk = 37
|
||||
compileSdkMinor = 0
|
||||
compileSdk = 36
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 28
|
||||
|
||||
@@ -4,8 +4,7 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace = 'org.qtproject.qt.gradlecache.lib'
|
||||
compileSdk = 37
|
||||
compileSdkMinor = 0
|
||||
compileSdk = 36
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 28
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"default-registry": {
|
||||
"kind": "git",
|
||||
"repository": "https://git.qt.io/qtbuildsystem/vcpkg",
|
||||
"baseline": "93580fc29654eec8d22804a01d7191284d65f28e"
|
||||
"baseline": "a3e9002baa5eb8ac3bd12ef85818ffe5c0c7322d"
|
||||
},
|
||||
"overlay-triplets": [ "./../triplets" ]
|
||||
}
|
||||
|
||||
@@ -2,14 +2,19 @@
|
||||
"overrides": [
|
||||
{
|
||||
"name": "openssl",
|
||||
"version": "3.0.7",
|
||||
"port-version": 2
|
||||
"version": "3.5.4",
|
||||
"port-version": 0
|
||||
}
|
||||
],
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "openssl",
|
||||
"platform": "!ohos"
|
||||
"platform": "!ohos & !android",
|
||||
"features": [ "tools" ]
|
||||
},
|
||||
{
|
||||
"name": "openssl",
|
||||
"platform": "android"
|
||||
},
|
||||
{
|
||||
"name": "protobuf",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
vcpkg_tool_release_tag=2026-05-27
|
||||
windows_x64_checksum=da75e3312ff6881c89f6171363eedb92933b0f79456cd6ee636316edef860ff7
|
||||
windows_arm64_checksum=371cf5285cc94932b97c8c0774066c90efdb50dfe606113f1686e6e99f928b08
|
||||
unix_checksum=9167b2348ae58bfb707cf5e18f055f51d9cdedc2cc251a475d5c2ca3d901e8ae
|
||||
vcpkg_tool_release_tag=2026-07-27
|
||||
windows_x64_checksum=13b8175e99a884c5ad34249218754b45541a1a63f216e92603aee57a285ac741
|
||||
windows_arm64_checksum=5e8d7acd0f3049411ad1eacd3af2a946014ed430c27010e384ee1289a8e98cbc
|
||||
unix_checksum=cb2ac34ab85008876004b0817c0a82c96f773ce3aaedb9c35e8ebb523ef1754b
|
||||
|
||||
@@ -1 +1 @@
|
||||
vcpkg_version=2026.06.01-qt
|
||||
vcpkg_version=2026.07.29-qt
|
||||
|
||||
@@ -112,7 +112,7 @@ do
|
||||
echo "Starting emulator ${AVD_NAME}, try ${counter}/${EMULATOR_MAX_RETRIES}" \
|
||||
| tee "${EMULATOR_RUN_LOG_PATH}"
|
||||
$EMULATOR_EXEC -avd "$AVD_NAME" \
|
||||
-gpu swiftshader_indirect -no-audio $WINDOW_ARG -no-boot-anim \
|
||||
-gpu swiftshader -no-audio $WINDOW_ARG -no-boot-anim \
|
||||
-cores 4 -memory 16000 -partition-size 4096 \
|
||||
-detect-image-hang -restart-when-stalled -no-snapshot-save \
|
||||
-no-nested-warnings -logcat '*:v' -logcat-output "${LOGCAT_PATH}" \
|
||||
|
||||
@@ -8,13 +8,22 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
echo "Installing vcpkg OHOS ports"
|
||||
|
||||
# The vcpkg OHOS toolchain expects OHOS_SDK_ROOT; CI sets HARMONYOS_SDK_ROOT.
|
||||
export OHOS_SDK_ROOT="${OHOS_SDK_ROOT:-$HARMONYOS_SDK_ROOT}"
|
||||
ohosSdkRoot="${OHOS_SDK_ROOT:-$HARMONYOS_SDK_ROOT}"
|
||||
|
||||
if [ -z "$OHOS_SDK_ROOT" ]; then
|
||||
if [ -z "$ohosSdkRoot" ]; then
|
||||
echo "ERROR: Neither OHOS_SDK_ROOT nor HARMONYOS_SDK_ROOT is set." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# On Linux, HARMONYOS_SDK_ROOT points at the command-line-tools root; the vcpkg
|
||||
# toolchain needs the openharmony native SDK inside it. On macOS it already
|
||||
# points there, so only descend when the nested SDK exists.
|
||||
if [ -d "$ohosSdkRoot/sdk/default/openharmony/native" ]; then
|
||||
ohosSdkRoot="$ohosSdkRoot/sdk/default/openharmony"
|
||||
fi
|
||||
|
||||
export OHOS_SDK_ROOT="$ohosSdkRoot"
|
||||
|
||||
# Coin sets TARGET=hdb in the environment. GNU Make imports env vars as make
|
||||
# variables, which breaks ICU's Makefile (it defines its own TARGET variable
|
||||
# for the library path). Unset it before invoking vcpkg.
|
||||
|
||||
@@ -11,6 +11,15 @@ source "${BASH_SOURCE%/*}/SourceEnvVars.sh"
|
||||
|
||||
# This script will install Google's Protocal Buffers
|
||||
|
||||
# On Intel macOS /usr/local is user-owned by homebrew; using sudo there would
|
||||
# change ownership to root and break later brew installations. On Apple Silicon
|
||||
# homebrew uses /opt/homebrew instead, and /usr/local stays root-owned, so sudo
|
||||
# is still required.
|
||||
SUDO="sudo"
|
||||
if uname -a | grep -q Darwin && [ "$(uname -m)" = "x86_64" ]; then
|
||||
SUDO=""
|
||||
fi
|
||||
|
||||
version="21.9"
|
||||
sha1="3226a0e49d048759b702ae524da79387c59f05cc"
|
||||
internalUrl="http://ci-files01-hki.ci.qt.io/input/automotive_suite/protobuf-all-$version.zip"
|
||||
@@ -20,7 +29,7 @@ targetDir="$HOME/protobuf-$version"
|
||||
targetFile="$targetDir.zip"
|
||||
DownloadURL "$internalUrl" "$externalUrl" "$sha1" "$targetFile"
|
||||
unzip "$targetFile" -d "$HOME"
|
||||
sudo rm "$targetFile"
|
||||
$SUDO rm "$targetFile"
|
||||
|
||||
cd $targetDir
|
||||
|
||||
@@ -81,7 +90,7 @@ cmake "$targetDir" -G"Ninja Multi-Config" \
|
||||
-DCMAKE_CROSS_CONFIGS=all \
|
||||
-DCMAKE_DEFAULT_CONFIGS=all
|
||||
ninja all:all
|
||||
sudo env "PATH=$PATH" ninja install:all
|
||||
$SUDO env "PATH=$PATH" ninja install:all
|
||||
|
||||
SetEnvVar "protobuf_ROOT" "$installPrefix"
|
||||
|
||||
@@ -90,5 +99,5 @@ if uname -a |grep -qv "Darwin"; then
|
||||
sudo ldconfig
|
||||
fi
|
||||
|
||||
sudo rm -r "$targetDir"
|
||||
sudo rm -r "$buildDir"
|
||||
$SUDO rm -r "$targetDir"
|
||||
$SUDO rm -r "$buildDir"
|
||||
|
||||
@@ -38,10 +38,10 @@ zip="/tmp/libclang.7z"
|
||||
destination="/usr/local/libclang-dynlibs-$version"
|
||||
|
||||
DownloadURL "$url_cached" "$url" "$sha1" "$zip"
|
||||
if command -v 7zr &> /dev/null; then
|
||||
sudo 7zr x $zip -o/usr/local/
|
||||
else
|
||||
if command -v 7z &> /dev/null; then
|
||||
sudo 7z x $zswitch $zip -o/usr/local/
|
||||
else
|
||||
sudo 7zr x $zip -o/usr/local/
|
||||
fi
|
||||
sudo mv /usr/local/libclang "$destination"
|
||||
rm -rf $zip
|
||||
|
||||
@@ -59,10 +59,10 @@ zip="/tmp/libclang.7z"
|
||||
destination="/usr/local/libclang-$version"
|
||||
|
||||
DownloadURL $url_cached $url $sha1 $zip
|
||||
if command -v 7zr &> /dev/null; then
|
||||
sudo 7zr x $zip -o/usr/local/
|
||||
else
|
||||
if command -v 7z &> /dev/null; then
|
||||
sudo 7z x $zswitch $zip -o/usr/local/
|
||||
else
|
||||
sudo 7zr x $zip -o/usr/local/
|
||||
fi
|
||||
sudo mv /usr/local/libclang "$destination"
|
||||
rm -rf $zip
|
||||
|
||||
@@ -41,8 +41,8 @@ $ndkOfficialUrlNightly2 = "https://dl.google.com/android/repository/android-ndk-
|
||||
$toolsVersion = "19.0"
|
||||
$toolsFile = "commandlinetools-win-13114758_latest.zip"
|
||||
$sdkApi = "ANDROID_API_VERSION"
|
||||
$sdkApiLevel = "android-37.0"
|
||||
$sdkBuildToolsVersion = "37.0.0"
|
||||
$sdkApiLevel = "android-36"
|
||||
$sdkBuildToolsVersion = "36.0.0"
|
||||
$toolsCachedUrl= "\\ci-files01-hki.ci.qt.io\provisioning\android\$toolsFile"
|
||||
$toolsOfficialUrl = "https://dl.google.com/android/repository/$toolsFile"
|
||||
$toolsChecksum = "54a582f3bf73e04253602f2d1c80bd5868aac115"
|
||||
|
||||
@@ -20,11 +20,22 @@ function Verify-Checksum
|
||||
}
|
||||
}
|
||||
|
||||
function Run-Executable-With-Timeout
|
||||
{
|
||||
Param (
|
||||
[int]$TimeoutSeconds=$(throw("You must specify a timeout.")),
|
||||
[string]$Executable=$(throw("You must specify a program to run.")),
|
||||
[string[]]$Arguments
|
||||
)
|
||||
Run-Executable -Executable $Executable -Arguments $Arguments -TimeoutSeconds $TimeoutSeconds
|
||||
}
|
||||
|
||||
function Run-Executable
|
||||
{
|
||||
Param (
|
||||
[string]$Executable=$(throw("You must specify a program to run.")),
|
||||
[string[]]$Arguments
|
||||
[string[]]$Arguments,
|
||||
[int]$TimeoutSeconds = 0
|
||||
)
|
||||
|
||||
$stdoutFile = [System.IO.Path]::GetTempFileName()
|
||||
@@ -32,13 +43,32 @@ function Run-Executable
|
||||
|
||||
if ([string]::IsNullOrEmpty($Arguments)) {
|
||||
Write-Host "Running `"$Executable`""
|
||||
$p = Start-Process -FilePath "$Executable" -Wait -PassThru `
|
||||
-RedirectStandardOutput $stdoutFile -RedirectStandardError $stderrFile
|
||||
} else {
|
||||
Write-Host "Running `"$Executable`" with arguments `"$Arguments`""
|
||||
$p = Start-Process -FilePath "$Executable" -ArgumentList $Arguments -PassThru `
|
||||
-RedirectStandardOutput $stdoutFile -RedirectStandardError $stderrFile
|
||||
Wait-Process -InputObject $p
|
||||
}
|
||||
|
||||
$startArgs = @{
|
||||
FilePath = $Executable
|
||||
PassThru = $true
|
||||
RedirectStandardOutput = $stdoutFile
|
||||
RedirectStandardError = $stderrFile
|
||||
}
|
||||
if (-not [string]::IsNullOrEmpty($Arguments)) {
|
||||
$startArgs.ArgumentList = $Arguments
|
||||
}
|
||||
$p = Start-Process @startArgs
|
||||
# Force PowerShell to cache the process handle. Without this, $p.ExitCode
|
||||
# can read back as $null after the process exits.
|
||||
# See https://github.com/PowerShell/PowerShell/issues/5421
|
||||
$null = $p.Handle
|
||||
|
||||
if ($TimeoutSeconds -gt 0) {
|
||||
if (-not $p.WaitForExit($TimeoutSeconds * 1000)) {
|
||||
$p.Kill()
|
||||
throw "Process $($Executable) timed out after $TimeoutSeconds seconds"
|
||||
}
|
||||
} else {
|
||||
$p.WaitForExit()
|
||||
}
|
||||
|
||||
$stdoutContent = [System.IO.File]::ReadAllText($stdoutFile)
|
||||
|
||||
@@ -36,7 +36,7 @@ $nppPackage = "C:\Windows\Temp\npp-$version.exe"
|
||||
|
||||
Download $url_official $url_cache $nppPackage
|
||||
Verify-Checksum $nppPackage $sha1
|
||||
Run-Executable "$nppPackage" "/S"
|
||||
Run-Executable-With-Timeout 1800 "$nppPackage" "/S"
|
||||
|
||||
Write-Host "Cleaning $nppPackage.."
|
||||
Remove "$nppPackage"
|
||||
|
||||
@@ -28,10 +28,10 @@ $folderName = "qnx710"
|
||||
$targetPath = "$targetFolder$folderName"
|
||||
|
||||
# QNX SDP
|
||||
$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\qnx\qnx710-windows-linux-20260422.tar.xz"
|
||||
$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20260422.tar.xz"
|
||||
$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\qnx\qnx710-windows-linux-20260828.tar.xz"
|
||||
$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20260828.tar.xz"
|
||||
$targetFile = "qnx710.tar.xz"
|
||||
$sha1 = "98b24df7e8c53a104aee76e769011396fa4bdafd"
|
||||
$sha1 = "c37e6f3a49a259d450b601843a9af2818b6feb96"
|
||||
DownloadAndExtract $sourceFile $sha1 $targetFile $targetFolder $cachedUrl
|
||||
|
||||
Copy-Item $aarch64le_toolchain $targetPath
|
||||
|
||||
@@ -28,10 +28,10 @@ $folderName = "qnx800"
|
||||
$targetPath = "$targetFolder$folderName"
|
||||
|
||||
# QNX SDP
|
||||
$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\qnx\qnx800-windows-linux-20260410.tar.xz"
|
||||
$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20260410.tar.xz"
|
||||
$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\qnx\qnx800-windows-linux-20260828.tar.xz"
|
||||
$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20260828.tar.xz"
|
||||
$targetFile = "qnx800.tar.xz"
|
||||
$sha1 = "a3fdcd98e12bc5054d00f18e4088af26288fd020"
|
||||
$sha1 = "f44b66d91625ab33e367cfb62a2950a041607caa"
|
||||
DownloadAndExtract $sourceFile $sha1 $targetFile $targetFolder $cachedUrl
|
||||
|
||||
# IANA timezone database overlay. Packaged separately from the SDP so it can be
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Copyright (C) 2026 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
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
$version = "9.2.0984"
|
||||
$versioned_dir = "vim92"
|
||||
|
||||
$cpu_arch = Get-CpuArchitecture
|
||||
Write-Host "Installing vim for architecture $cpu_arch"
|
||||
switch ($cpu_arch) {
|
||||
arm64 {
|
||||
$arch = "arm64"
|
||||
$sha1 = "7df12598d95edfc283015e19c430ecf6d75d28a3"
|
||||
Break
|
||||
}
|
||||
x64 {
|
||||
$arch = "x64"
|
||||
$sha1 = "decbdd2b7ad7afb18576fee51ac027f4a9610710"
|
||||
}
|
||||
default {
|
||||
throw "Unknown architecture $cpu_arch"
|
||||
}
|
||||
}
|
||||
|
||||
$filename = "gvim_" + $version + "_" + $arch + "_signed.zip"
|
||||
|
||||
$officialurl = "https://github.com/vim/vim-win32-installer/releases/download/v$version/$filename"
|
||||
$cachedurl = "https://ci-files01-hki.ci.qt.io/input/windows/vim/$filename"
|
||||
|
||||
Download $officialurl $cachedurl $filename
|
||||
Verify-Checksum $filename $sha1
|
||||
Extract-7Zip $filename C:\Utils
|
||||
|
||||
$vim_dir = "C:\Utils\vim\$versioned_dir\"
|
||||
Prepend-Path $vim_dir
|
||||
|
||||
if (-not (Test-Path "$vim_dir\vim.exe")) {
|
||||
throw "vim.exe not found"
|
||||
}
|
||||
@@ -5,11 +5,7 @@ source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||
|
||||
set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
# p7zip has a pathing bug in rhel-10, install 7zip-standalone-all instead
|
||||
sudo dnf install -y 7zip-standalone-all
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
sudo ln -s /usr/bin/7zz /usr/bin/7z
|
||||
|
||||
@@ -9,9 +9,6 @@ set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo dnf -y install "$name" "$name-plugins"
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -7,9 +7,6 @@ set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo dnf -y install "$name" "$name-plugins"
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -7,9 +7,6 @@ set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo dnf -y install "$name" "$name-plugins"
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -9,9 +9,6 @@ set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo dnf -y install "$name" "$name-plugins"
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -9,9 +9,6 @@ set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo dnf -y install "$name" "$name-plugins"
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -5,11 +5,7 @@ source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||
|
||||
set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
sudo dnf install -y 7zip-standalone-all
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo ln -s /usr/bin/7zz /usr/bin/7z
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -5,11 +5,7 @@ source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||
|
||||
set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
sudo dnf install -y 7zip-standalone-all
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo ln -s /usr/bin/7zz /usr/bin/7z
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -5,11 +5,7 @@ source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||
|
||||
set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
sudo dnf install -y 7zip-standalone-all
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo ln -s /usr/bin/7zz /usr/bin/7z
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -5,11 +5,7 @@ source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||
|
||||
set -ex
|
||||
|
||||
name="p7zip"
|
||||
version="7-11"
|
||||
sudo yum -y install "$name"
|
||||
sudo dnf install -y 7zip-standalone-all
|
||||
|
||||
# Link 7za to 7z so we can use existing installation scripts
|
||||
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||
sudo ln -s /usr/bin/7zz /usr/bin/7z
|
||||
|
||||
echo "$name = $version" >> ~/versions.txt
|
||||
|
||||
@@ -29,6 +29,11 @@ EOC
|
||||
|
||||
(ping -c 3 repo-clones-apt.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories."
|
||||
|
||||
# Disable proposed repos because it causes Py mismatches
|
||||
# python3.10 3.10.12-1~22.04.17 (proposed)
|
||||
# python3.10-venv 3.10.12-1~22.04.16 (mirror)
|
||||
sudo mv /etc/apt/sources.list.d/proposed.list /etc/apt/sources.list.d/proposed.list.disabled
|
||||
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
|
||||
@@ -44,7 +49,7 @@ installPackages+=(p7zip-full)
|
||||
installPackages+=(openjdk-21-jdk)
|
||||
installPackages+=(gcc)
|
||||
installPackages+=(curl)
|
||||
installPackages+=(libicu-dev)
|
||||
# installPackages+=(libicu-dev)
|
||||
installPackages+=(python3-dev)
|
||||
installPackages+=(python3-pip)
|
||||
installPackages+=(python3-venv)
|
||||
@@ -64,6 +69,10 @@ echo "Installing packages"
|
||||
waitLoop
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y -o DPkg::Lock::Timeout=300 install "${installPackages[@]}"
|
||||
|
||||
# libicu70 (libicu-dev) has 70.1-2ubuntu1 vs 70.1-2 apt sync issues
|
||||
# Allow 70.1-2ubuntu1 -> 70.1-2 downgrade
|
||||
sudo apt install -y --allow-downgrades libicu70=70.1-2 libicu-dev
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
|
||||
# SetEnvVar "PATH" "/usr/lib/nodejs-mozilla/bin:\$PATH"
|
||||
|
||||
|
||||
@@ -16,6 +16,11 @@ target=swiftly.tar.gz
|
||||
DownloadURL $url_cached $url $checksum $target
|
||||
|
||||
tar zxf swiftly.tar.gz
|
||||
./swiftly init --quiet-shell-followup -y
|
||||
./swiftly init --quiet-shell-followup -y --skip-install
|
||||
# Swift 6.4.0 is not found for Ubuntu 24.04
|
||||
# Pin to a toolchain that is published for Ubuntu 24.04.
|
||||
swift_version="6.3.3"
|
||||
source "${HOME}/.local/share/swiftly/env.sh"
|
||||
swiftly install "$swift_version" --use --assume-yes
|
||||
# The installer leaves out line feed when modifying .profile
|
||||
echo " " >> /home/qt/.profile
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
# 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
|
||||
|
||||
# Install lcov 2.0 from 24.04/noble numbat
|
||||
# Install lcov 2.4 from 26.04/resolute raccoon
|
||||
|
||||
echo "Installing lcov"
|
||||
wget https://ci-files01-hki.ci.qt.io/input/lcov/lcov_2.0-4ubuntu1_all.deb
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y -o DPkg::Lock::Timeout=300 install -f ./lcov_2.0-4ubuntu1_all.deb
|
||||
wget https://ci-files01-hki.ci.qt.io/input/lcov/lcov_2.4-3_all.deb
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y -o DPkg::Lock::Timeout=300 install -f ./lcov_2.4-3_all.deb
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/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
|
||||
|
||||
set -ex
|
||||
|
||||
# Disalbe updates
|
||||
echo "Disabling auto-upgrades"
|
||||
sudo sed -i 's/"1"/"0"/g' /etc/apt/apt.conf.d/20auto-upgrades
|
||||
@@ -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
|
||||
|
||||
echo "ethtool -K \${DEVICE_IFACE} tso off" | sudo tee -a /etc/NetworkManager/dispatcher.d/pre-up.d/net_tso_off
|
||||
sudo chmod +x /etc/NetworkManager/dispatcher.d/pre-up.d/net_tso_off
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/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
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/set_ulimit.sh"
|
||||
@@ -0,0 +1,51 @@
|
||||
#!/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
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
# shellcheck source=../common/unix/check_and_set_proxy.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh"
|
||||
# shellcheck source=../common/linux/distro_version_check.sh
|
||||
source "$BASEDIR/../common/linux/distro_version_check.sh"
|
||||
|
||||
# Get distro version to later check if version has changed at the end of the provisioning
|
||||
record_os_version
|
||||
|
||||
NTS_IP=10.212.2.216
|
||||
|
||||
echo "Set timezone to UTC."
|
||||
sudo timedatectl set-timezone Etc/UTC
|
||||
|
||||
"$BASEDIR/../common/linux/configure-gnome-shell.sh"
|
||||
|
||||
echo "Disable windows key from showing the GNOME Shell Activities overlay"
|
||||
gsettings set org.gnome.mutter overlay-key ""
|
||||
|
||||
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
|
||||
@@ -0,0 +1,300 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2025 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
|
||||
|
||||
set_internal_repo() {
|
||||
|
||||
# Stop fetching the dep-11 metadata, since our mirrors do not handle them well
|
||||
if [ -f /etc/apt/apt.conf.d/50appstream ]; then
|
||||
sudo mv /etc/apt/apt.conf.d/50appstream /etc/apt/apt.conf.d/50appstream.disabled
|
||||
fi
|
||||
|
||||
# Disable external APT sources
|
||||
for source_file in \
|
||||
/etc/apt/sources.list \
|
||||
/etc/apt/sources.list.d/ubuntu.sources
|
||||
do
|
||||
if [ -f "$source_file" ]; then
|
||||
sudo mv "$source_file" "$source_file.disabled"
|
||||
fi
|
||||
done
|
||||
|
||||
sudo tee "/etc/apt/sources.list.d/ubuntu.list" > /dev/null <<-EOC
|
||||
deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 resolute-amd64 main restricted universe multiverse
|
||||
deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 resolute-updates-amd64 main restricted universe multiverse
|
||||
deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 resolute-backports-amd64 main restricted universe
|
||||
deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 resolute-security-amd64 main restricted universe multiverse
|
||||
EOC
|
||||
}
|
||||
|
||||
(ping -c 3 repo-clones-apt.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
|
||||
|
||||
# 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 for qioring
|
||||
installPackages+=(liburing-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+=(rustc)
|
||||
installPackages+=(bindgen)
|
||||
installPackages+=(clang)
|
||||
installPackages+=(libclang-dev)
|
||||
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)
|
||||
# Install libraries needed for QtMultimedia to be able to support all plugins
|
||||
installPackages+=(libasound2-dev)
|
||||
installPackages+=(libgstreamer1.0-dev)
|
||||
installPackages+=(libgstreamer-plugins-extra1.0-dev)
|
||||
installPackages+=(libgstreamer-plugins-base1.0-dev)
|
||||
installPackages+=(libgstreamer-plugins-bad1.0-dev)
|
||||
installPackages+=(libgstreamer-gl1.0-0)
|
||||
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+=(gir1.2-gst-plugins-base-1.0)
|
||||
installPackages+=(gir1.2-gst-plugins-bad-1.0)
|
||||
installPackages+=(libpipewire-0.3-dev)
|
||||
installPackages+=(libspa-0.2-dev)
|
||||
installPackages+=(yasm)
|
||||
installPackages+=(libva-dev)
|
||||
# for QtMultimedia streaming tests
|
||||
installPackages+=(vlc-bin)
|
||||
installPackages+=(vlc-plugin-base)
|
||||
# Required FFmpeg packages
|
||||
required_ffmpeg_packages=()
|
||||
while IFS= read -r line; do required_ffmpeg_packages+=("$line"); done < "${BASH_SOURCE%/*}/../common/linux/ffmpeg_required_ubuntu_packages.txt"
|
||||
installPackages+=("${required_ffmpeg_packages[@]}")
|
||||
# for tst_qfloat16format, see also QTQAINFRA-6390
|
||||
installPackages+=(locales-all)
|
||||
|
||||
# Support for cross-building to x86 (needed by WebEngine boot2qt builds)
|
||||
installPackages+=(g++-multilib)
|
||||
# python3 development package
|
||||
installPackages+=(python3-dev)
|
||||
installPackages+=(python3-pip)
|
||||
installPackages+=(python3-venv)
|
||||
installPackages+=(virtualenv)
|
||||
installPackages+=(python3-wheel)
|
||||
installPackages+=(python-is-python3)
|
||||
# TODO: Ubuntu 24.04 Removal - not available
|
||||
# python2 development package
|
||||
#installPackages+=(python2-dev)
|
||||
|
||||
# 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)
|
||||
# 32-bit zlib is needed for for qemu-armv7 toolchain + WebEngine
|
||||
installPackages+=(lib32z1-dev)
|
||||
#Java 21 for Android
|
||||
installPackages+=(openjdk-21-jdk)
|
||||
installPackages+=(libgtk-3-dev)
|
||||
installPackages+=(ninja-build)
|
||||
installPackages+=(libssl-dev)
|
||||
installPackages+=(libxcursor-dev)
|
||||
installPackages+=(libxcomposite-dev)
|
||||
installPackages+=(libxdamage-dev)
|
||||
installPackages+=(libxrandr-dev)
|
||||
installPackages+=(libfontconfig1-dev)
|
||||
installPackages+=(libsrtp2-dev)
|
||||
installPackages+=(libwebp-dev)
|
||||
installPackages+=(libjsoncpp-dev)
|
||||
installPackages+=(libopus-dev)
|
||||
installPackages+=(libminizip-dev)
|
||||
installPackages+=(libavutil-dev)
|
||||
installPackages+=(libavformat-dev)
|
||||
installPackages+=(libavcodec-dev)
|
||||
installPackages+=(libevent-dev)
|
||||
installPackages+=(bison)
|
||||
installPackages+=(flex)
|
||||
installPackages+=(gperf)
|
||||
installPackages+=(libasound2-dev)
|
||||
installPackages+=(libpulse-dev)
|
||||
installPackages+=(libxtst-dev)
|
||||
installPackages+=(libnspr4-dev)
|
||||
installPackages+=(libnss3-dev)
|
||||
installPackages+=(libnss3)
|
||||
installPackages+=(libopenal-dev)
|
||||
installPackages+=(libbluetooth-dev)
|
||||
#VirtualBox for RTA
|
||||
installPackages+=(virtualbox)
|
||||
installPackages+=(dkms)
|
||||
# Needed for qtspeech
|
||||
installPackages+=(libspeechd-dev)
|
||||
installPackages+=(flite1-dev)
|
||||
#Pypdf for PDF reading in RTA tests
|
||||
installPackages+=(python3-pypdf)
|
||||
# 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+=(libzstd-dev)
|
||||
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)
|
||||
# For swiftly
|
||||
installPackages+=(gnupg2)
|
||||
installPackages+=(pkg-config)
|
||||
# For Qt bridges swift
|
||||
installPackages+=(swiftlang)
|
||||
# Keep zoneinfo up-to-date (COIN-1282)
|
||||
installPackages+=(tzdata)
|
||||
# Autotools needed by vcpkg ports (gperf, icu, fontconfig)
|
||||
installPackages+=(autoconf autoconf-archive automake libtool)
|
||||
# For RTA: QTQAINFRA-7368
|
||||
installPackages+=(xclip)
|
||||
# Extra utils to include newgrp
|
||||
installPackages+=(util-linux-extra)
|
||||
# Install gold linker for faster developer builds
|
||||
installPackages+=(binutils-gold)
|
||||
|
||||
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/requirements.txt" --break-system-packages
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
|
||||
# SetEnvVar "PATH" "/usr/lib/nodejs-mozilla/bin:\$PATH"
|
||||
|
||||
# Provisioning during installation says:
|
||||
# 'The script sbom2doc is installed in '/home/qt/.local/bin' which is not on PATH.'
|
||||
# hence the explicit assignment to SBOM_PYTHON_APPS_PATH.
|
||||
SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin"
|
||||
|
||||
# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements
|
||||
SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3"
|
||||
|
||||
gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
|
||||
echo "GCC = $gccVersion" >> versions.txt
|
||||
|
||||
glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
|
||||
echo "glibc = $glibcVersion" >> versions.txt
|
||||
|
||||
OpenSSLVersion="$(openssl version |cut -b 9-14)"
|
||||
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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-bitbake-apparmor.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/fix-bitbake-apparmor.sh"
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/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
|
||||
|
||||
sudo sed -i -e '/nfs4/s/permissions/skip/' /etc/xattr.conf
|
||||
@@ -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"
|
||||
@@ -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/install-nodejs.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/install-nodejs.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/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
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/limit-avahi-interfaces.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/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
|
||||
|
||||
set -ex
|
||||
|
||||
# shellcheck source=../common/linux/mount-vcpkg-cache-drive.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/mount-vcpkg-cache-drive.sh"
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2021 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
|
||||
|
||||
# shellcheck source=../common/unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
|
||||
|
||||
# First test using QFont fails if fonts-noto-cjk is installed. This happens because
|
||||
# running fontcache for that font takes > 5 mins when run on QEMU. Running fc-cache
|
||||
# doesn't help since host version creates cache for a wrong architecture and running
|
||||
# armv7 fc-cache segfaults on QEMU.
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -y remove fonts-noto-cjk
|
||||
|
||||
# Disable QtWayland window decorations, as they cause flakiness when used inside qemu (QTBUG-66173)
|
||||
qemu_env="QT_WAYLAND_DISABLE_WINDOWDECORATION=1"
|
||||
|
||||
SetEnvVar "QEMU_SET_ENV" "\"${qemu_env}\""
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2026 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/unix/libclang-dyn.sh" "-snld20"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2026 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/unix/libclang.sh" "-snld20"
|
||||
@@ -0,0 +1,124 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2025 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 installs the Yocto toolchain
|
||||
|
||||
set -ex
|
||||
|
||||
# shellcheck source=../common/unix/DownloadURL.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||
# shellcheck source=../common/unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
|
||||
|
||||
primaryBaseUrlPath="http://ci-files01-hki.ci.qt.io/input/boot2qt/scarthgap"
|
||||
altBaseUrlPath="http://download.qt.io/development_releases/prebuilt/boot2qt/scarthgap"
|
||||
|
||||
echo "Installing Yocto toolchain for 32-bit b2qt ARMV7..."
|
||||
|
||||
versionARM="5.0"
|
||||
package="b2qt-x86_64-meta-toolchain-b2qt-ci-sdk-qemuarm-126db6b9.sh"
|
||||
PrimaryUrl="$primaryBaseUrlPath/$package"
|
||||
AltUrl="$altBaseUrlPath/$package"
|
||||
SHA1="4ee043f851440c231a1faba3003c251cbdee9947"
|
||||
yoctoInstaller="/tmp/yocto-toolchain-ARMv7.sh"
|
||||
yoctoLocationARMv7="/opt/b2qt/$versionARM"
|
||||
sysrootARMv7="cortexa15t2hf-neon-poky-linux-gnueabi"
|
||||
crosscompileARMv7="sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-"
|
||||
envSetupARMv7="environment-setup-$sysrootARMv7"
|
||||
toolchainFileARMv7="sysroots/x86_64-pokysdk-linux/usr/share/cmake/OEToolchainConfig.cmake"
|
||||
|
||||
DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$yoctoInstaller"
|
||||
chmod +x "$yoctoInstaller"
|
||||
|
||||
/bin/bash "$yoctoInstaller" -y -d "$yoctoLocationARMv7"
|
||||
rm -rf "$yoctoInstaller"
|
||||
|
||||
echo "Installing Yocto toolchain for 64-bit b2qt ARM64..."
|
||||
|
||||
versionARM64="5.0"
|
||||
package="b2qt-x86_64-meta-toolchain-b2qt-ci-sdk-qemuarm64-126db6b9.sh"
|
||||
PrimaryUrl="$primaryBaseUrlPath/$package"
|
||||
AltUrl="$altBaseUrlPath/$package"
|
||||
SHA1="c7f8838e724f3802f68a9c9154eec8690748e8b0"
|
||||
yoctoInstaller="/tmp/yocto-toolchain-ARM64.sh"
|
||||
yoctoLocationARM64="/opt/b2qt/$versionARM64"
|
||||
sysrootARM64="cortexa57-poky-linux"
|
||||
crosscompileARM64="sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-"
|
||||
envSetupARM64="environment-setup-$sysrootARM64"
|
||||
toolchainFileARM64="sysroots/x86_64-pokysdk-linux/usr/share/cmake/OEToolchainConfig.cmake"
|
||||
|
||||
DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$yoctoInstaller"
|
||||
chmod +x "$yoctoInstaller"
|
||||
|
||||
/bin/bash "$yoctoInstaller" -y -d "$yoctoLocationARM64"
|
||||
rm -rf "$yoctoInstaller"
|
||||
|
||||
echo "Installing Yocto toolchain for 64-bit b2qt MIPS64..."
|
||||
|
||||
versionMIPS64="5.0"
|
||||
package="b2qt-x86_64-meta-toolchain-b2qt-ci-sdk-qemumips64-126db6b9.sh"
|
||||
PrimaryUrl="$primaryBaseUrlPath/$package"
|
||||
AltUrl="$altBaseUrlPath/$package"
|
||||
SHA1="aa95da9a61910baa7f1700ce91fd9ee3cea027be"
|
||||
yoctoInstaller="/tmp/yocto-toolchain-mips64.sh"
|
||||
yoctoLocationMIPS64="/opt/b2qt/$versionMIPS64"
|
||||
sysrootMIPS64="mips64r2-poky-linux"
|
||||
crosscompileMIPS64="sysroots/x86_64-pokysdk-linux/usr/bin/mips64-poky-linux/mips64-poky-linux-"
|
||||
envSetupMIPS64="environment-setup-$sysrootMIPS64"
|
||||
toolchainFileMIPS64="sysroots/x86_64-pokysdk-linux/usr/share/cmake/OEToolchainConfig.cmake"
|
||||
|
||||
DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$yoctoInstaller"
|
||||
chmod +x "$yoctoInstaller"
|
||||
|
||||
/bin/bash "$yoctoInstaller" -y -d "$yoctoLocationMIPS64"
|
||||
rm -rf "$yoctoInstaller"
|
||||
|
||||
if [ -e "$yoctoLocationARMv7/sysroots/$sysrootARMv7" ] && [ -e "$yoctoLocationARMv7/${crosscompileARMv7}g++" ] && \
|
||||
[ -e "$yoctoLocationARMv7/$envSetupARMv7" ] && [ -e "$yoctoLocationARMv7/$toolchainFileARMv7" ] && \
|
||||
[ -e "$yoctoLocationARM64/sysroots/$sysrootARM64" ] && [ -e "$yoctoLocationARM64/${crosscompileARM64}g++" ] && \
|
||||
[ -e "$yoctoLocationARM64/$envSetupARM64" ] && [ -e "$yoctoLocationARM64/$toolchainFileARM64" ] && \
|
||||
[ -e "$yoctoLocationMIPS64/sysroots/$sysrootMIPS64" ] && [ -e "$yoctoLocationMIPS64/${crosscompileMIPS64}g++" ] && \
|
||||
[ -e "$yoctoLocationMIPS64/$envSetupMIPS64" ] && [ -e "$yoctoLocationMIPS64/$toolchainFileMIPS64" ]; then
|
||||
SetEnvVar "QEMUARMV7_TOOLCHAIN_SYSROOT" "$yoctoLocationARMv7/sysroots/$sysrootARMv7"
|
||||
SetEnvVar "QEMUARMV7_TOOLCHAIN_CROSS_COMPILE" "$yoctoLocationARMv7/$crosscompileARMv7"
|
||||
SetEnvVar "QEMUARMV7_TOOLCHAIN_ENVSETUP" "$yoctoLocationARMv7/$envSetupARMv7"
|
||||
SetEnvVar "QEMUARMV7_TOOLCHAIN_FILE" "$yoctoLocationARMv7/$toolchainFileARMv7"
|
||||
SetEnvVar "QEMUARM64_TOOLCHAIN_SYSROOT" "$yoctoLocationARM64/sysroots/$sysrootARM64"
|
||||
SetEnvVar "QEMUARM64_TOOLCHAIN_CROSS_COMPILE" "$yoctoLocationARM64/$crosscompileARM64"
|
||||
SetEnvVar "QEMUARM64_TOOLCHAIN_ENVSETUP" "$yoctoLocationARM64/$envSetupARM64"
|
||||
SetEnvVar "QEMUARM64_TOOLCHAIN_FILE" "$yoctoLocationARM64/$toolchainFileARM64"
|
||||
SetEnvVar "QEMUMIPS64_TOOLCHAIN_SYSROOT" "$yoctoLocationMIPS64/sysroots/$sysrootMIPS64"
|
||||
SetEnvVar "QEMUMIPS64_TOOLCHAIN_CROSS_COMPILE" "$yoctoLocationMIPS64/$crosscompileMIPS64"
|
||||
SetEnvVar "QEMUMIPS64_TOOLCHAIN_ENVSETUP" "$yoctoLocationMIPS64/$envSetupMIPS64"
|
||||
SetEnvVar "QEMUMIPS64_TOOLCHAIN_FILE" "$yoctoLocationMIPS64/$toolchainFileMIPS64"
|
||||
else
|
||||
echo "Error! Couldn't find installation paths for Yocto toolchain. Aborting provisioning." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat << EOB >> ~/versions.txt
|
||||
Yocto ARMv7 toolchain = $versionARM
|
||||
Yocto ARM64 toolchain = $versionARM64
|
||||
Yocto MIPS64 toolchain = $versionMIPS64
|
||||
EOB
|
||||
|
||||
# List qt user in qemu toolchain sysroots
|
||||
sudo sh -c "grep ^qt /etc/passwd >> $yoctoLocationARMv7/sysroots/$sysrootARMv7/etc/passwd"
|
||||
sudo sh -c "grep ^qt /etc/group >> $yoctoLocationARMv7/sysroots/$sysrootARMv7/etc/group"
|
||||
sudo sh -c "grep ^qt /etc/passwd >> $yoctoLocationARM64/sysroots/$sysrootARM64/etc/passwd"
|
||||
sudo sh -c "grep ^qt /etc/group >> $yoctoLocationARM64/sysroots/$sysrootARM64/etc/group"
|
||||
|
||||
# Fix mdns to support both docker and network tests
|
||||
# See also https://bugreports.qt.io/browse/QTBUG-106013
|
||||
sudo sed -i '/^hosts:/s/.*/hosts: files myhostname mdns_minimal [NOTFOUND=return] mdns4 dns/' \
|
||||
$yoctoLocationARMv7/sysroots/$sysrootARMv7/etc/nsswitch.conf \
|
||||
$yoctoLocationARM64/sysroots/$sysrootARM64/etc/nsswitch.conf
|
||||
|
||||
# Install qemu binfmt for 32bit and 64bit arm architectures
|
||||
sudo update-binfmts --package qemu-arm --install arm $yoctoLocationARMv7/sysroots/x86_64-pokysdk-linux/usr/bin/qemu-arm \
|
||||
--magic "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \
|
||||
--mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"
|
||||
sudo update-binfmts --package qemu-aarch64 --install aarch64 $yoctoLocationARM64/sysroots/x86_64-pokysdk-linux/usr/bin/qemu-aarch64 \
|
||||
--magic "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00" \
|
||||
--mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/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
|
||||
|
||||
set -ex
|
||||
|
||||
# shellcheck source=../common/linux/integrity.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/integrity.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2026 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
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/syft.sh"
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/linux/sccache.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2018 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
|
||||
|
||||
# shellcheck source=../common/unix/mqtt_broker.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/mqtt_broker.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/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
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/fbx_linux.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/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
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/unix/install-conan.sh" "linux" "--break-system-packages"
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/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/unix/DownloadURL.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||
|
||||
set -ex
|
||||
|
||||
# This script will install ICU
|
||||
|
||||
icuVersion="73.2"
|
||||
icuLocationLib="/usr/local/lib"
|
||||
icuLocationInclude="/usr/local/include"
|
||||
sha1="5699987afcceb0390e52fb860bb3b4ab8b39cabe"
|
||||
baseBinaryPackageURL="http://ci-files01-hki.ci.qt.io/input/icu/$icuVersion/icu-linux-g++-Ubuntu22.04-x64.7z"
|
||||
baseBinaryPackageExternalURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Ubuntu22.04-x64.7z"
|
||||
|
||||
sha1Dev="6b9da2fa5fd88db88e9957ee5e3cf9dbcd08fe6b"
|
||||
develPackageURL="http://ci-files01-hki.ci.qt.io/input/icu/$icuVersion/icu-linux-g++-Ubuntu22.04-x64-devel.7z"
|
||||
develPackageExternalURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Ubuntu22.04-x64-devel.7z"
|
||||
|
||||
echo "Installing custom ICU $icuVersion $sha1 packages on Ubuntu to $icuLocationLib"
|
||||
|
||||
targetFile=$(mktemp)
|
||||
sudo mkdir -p "$icuLocationLib"
|
||||
sudo mkdir -p "$icuLocationInclude"
|
||||
DownloadURL "$baseBinaryPackageURL" "$baseBinaryPackageExternalURL" "$sha1" "$targetFile"
|
||||
sudo 7z x -snld20 -y -o$icuLocationLib "$targetFile"
|
||||
sudo rm "$targetFile"
|
||||
|
||||
echo "Installing custom ICU devel packages on Ubuntu"
|
||||
|
||||
tempDir=$(mktemp -d)
|
||||
|
||||
targetFile=$(mktemp)
|
||||
DownloadURL "$develPackageURL" "$develPackageExternalURL" "$sha1Dev" "$targetFile"
|
||||
7z x -snld20 -y -o"$tempDir" "$targetFile"
|
||||
|
||||
sudo cp -a "$tempDir"/lib/* "$icuLocationLib"
|
||||
sudo cp -a "$tempDir"/include/* "$icuLocationInclude"
|
||||
|
||||
|
||||
sudo rm "$targetFile"
|
||||
sudo rm -fr "$tempDir"
|
||||
|
||||
sudo /sbin/ldconfig
|
||||
|
||||
echo "ICU = $icuVersion" >> ~/versions.txt
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/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
|
||||
|
||||
set -ex
|
||||
|
||||
# shellcheck source=../common/unix/install-breakpad.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-breakpad.sh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2025 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
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-maven.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/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
|
||||
|
||||
set -ex
|
||||
|
||||
# shellcheck source=../common/linux/android_linux.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/android_linux.sh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Copyright (C) 2025 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
|
||||
|
||||
# shellcheck source=../common/linux/harmonyos_linux.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/harmonyos_linux.sh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/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/cmake_linux.sh"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user