mirror of
git://code.qt.io/qt/qt5.git
synced 2026-10-09 00:27:21 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
20d43de824 | ||
|
|
5a30e209bf | ||
|
|
38543c7d08 | ||
|
|
5ad8a50502 | ||
|
|
924e26cc1a | ||
|
|
569a071969 | ||
|
|
5e77a0af5c | ||
|
|
da1126957f | ||
|
|
c63b5fb4e5 | ||
|
|
7776c20e0d | ||
|
|
07ed4b4d3c | ||
|
|
d44d627511 | ||
|
|
eb4c6930cc | ||
|
|
bfd13f4e40 | ||
|
|
7dfe909998 | ||
|
|
869a284623 | ||
|
|
58f92aa5fc | ||
|
|
0f51285e8f | ||
|
|
9052403463 | ||
|
|
0f1efe98c7 | ||
|
|
53c0ff7b21 | ||
|
|
d1e924d592 | ||
|
|
06aca27abd | ||
|
|
7b6457f76e | ||
|
|
75400695b5 | ||
|
|
eb5b9a0dbc | ||
|
|
397258285c | ||
|
|
e7fafe9211 | ||
|
|
4d792f7bb9 | ||
|
|
cbbd7e2d22 | ||
|
|
5671be2454 | ||
|
|
bb6a722532 | ||
|
|
3208f5c95a | ||
|
|
5b4b15e12b | ||
|
|
60525c8de8 | ||
|
|
1880c78815 | ||
|
|
1eb5f09e3d | ||
|
|
1e99891027 | ||
|
|
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 |
@@ -3,6 +3,5 @@
|
||||
.gitattributes export-ignore
|
||||
.commit-template export-ignore eol=lf
|
||||
init-repository export-ignore
|
||||
README.git export-ignore
|
||||
*.bat text eol=crlf
|
||||
*.bat.in text eol=crlf
|
||||
|
||||
+1
-10
@@ -45,7 +45,7 @@
|
||||
priority = 30
|
||||
[submodule "qtdoc"]
|
||||
depends = qtdeclarative qttools
|
||||
recommends = qtmultimedia qtshadertools qttasktree qtwebengine
|
||||
recommends = qtmultimedia qtshadertools qttasktree
|
||||
path = qtdoc
|
||||
url = ../qtdoc.git
|
||||
branch = dev
|
||||
@@ -139,17 +139,8 @@
|
||||
url = ../qtwebchannel.git
|
||||
branch = dev
|
||||
status = addon
|
||||
[submodule "qtwebengine"]
|
||||
depends = qtdeclarative
|
||||
recommends = qtwebchannel qttools qtpositioning
|
||||
path = qtwebengine
|
||||
url = ../qtwebengine.git
|
||||
branch = dev
|
||||
status = addon
|
||||
priority = 10
|
||||
[submodule "qtwebview"]
|
||||
depends = qtdeclarative
|
||||
recommends = qtwebengine
|
||||
path = qtwebview
|
||||
url = ../qtwebview.git
|
||||
branch = dev
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# Changelog
|
||||
|
||||
This repository does not keep a changelog of its own. Qt is released as a set
|
||||
of modules, and the change information for a release is published with that
|
||||
release rather than tracked here.
|
||||
|
||||
## Where to look
|
||||
|
||||
**Cumulative release notes** are published in
|
||||
[qt/qtreleasenotes](https://code.qt.io/cgit/qt/qtreleasenotes.git/tree/qt).
|
||||
|
||||
**What changed in a Qt version.** Each minor release has a "What's New" page in
|
||||
the Qt documentation. It lists new modules, new and deprecated APIs, and the
|
||||
notable changes per module.
|
||||
See [What's New in Qt 6](https://doc.qt.io/qt-6/whatsnewqt6.html).
|
||||
|
||||
**Release phases and schedule.** Each release has a wiki page with the
|
||||
release plan. See [Qt Releasing Wiki](https://wiki.qt.io/QtReleasing).
|
||||
|
||||
**Moving between major versions.** The
|
||||
[Porting to Qt 6](https://doc.qt.io/qt-6/portingguide.html) guide covers the
|
||||
changes that affect existing code.
|
||||
|
||||
## Qt 4 and Qt 5 changelogs
|
||||
|
||||
Most module repositories feature a `dist` directory holding `changes-*` files.
|
||||
These are no longer maintained. They stop at `changes-6.0.0` and are kept only
|
||||
as a historical record of Qt 4 and Qt 5 releases. Do not add to them, and do
|
||||
not treat them as a current source of change information for Qt 6. Use the
|
||||
sources above instead.
|
||||
@@ -0,0 +1,23 @@
|
||||
# Code of conduct
|
||||
|
||||
The Qt Community Code of Conduct applies to everyone who takes part in the Qt
|
||||
Project. It covers any forum, mailing list, wiki, website, IRC channel, public
|
||||
meeting, or private correspondence in the context of the project and its
|
||||
services.
|
||||
|
||||
[QUIP 12](https://contribute.qt-project.org/quips/12) is the Code of Conduct
|
||||
itself and is the authoritative text. It asks participants to be considerate,
|
||||
respectful, collaborative, pragmatic, and supportive of one another, and it
|
||||
explains what each of those means in practice.
|
||||
|
||||
## If something goes wrong
|
||||
|
||||
QUIP 12 describes how the community handles problems. In short: offer personal
|
||||
support to anyone who is being attacked, and remind those involved of the Code
|
||||
of Conduct. Moderators of a mailing list, channel, or forum can suspend access
|
||||
for anyone who persistently breaks it, so raise the matter with them when it
|
||||
needs to go further. Where a disagreement is technical, ask the community for
|
||||
advice or request mediation rather than escalating it into a public dispute.
|
||||
|
||||
Read [QUIP 12](https://contribute.qt-project.org/quips/12) in full for the
|
||||
complete guidance.
|
||||
@@ -0,0 +1,29 @@
|
||||
# Governance
|
||||
|
||||
The Qt Project is a meritocratic, consensus-based community. Anyone with an
|
||||
interest in Qt can join it, take part in its decision-making, and contribute to
|
||||
Qt's development.
|
||||
|
||||
[QUIP 2](https://contribute.qt-project.org/quips/2) is the Qt Governance Model
|
||||
and is the authoritative text. It describes five levels of involvement and how
|
||||
people move between them:
|
||||
|
||||
* **Users** — community members who use Qt. They report bugs, help other
|
||||
users, and advocate for the project.
|
||||
* **Contributors** — community members who provide input to the project, by
|
||||
proposing changes in Gerrit, reviewing, writing documentation, or testing.
|
||||
There is no selection process.
|
||||
* **Approvers** — contributors who have shown a sustained commitment to the
|
||||
project and who can approve changes for inclusion.
|
||||
* **Maintainers** — approvers responsible for a specific area of Qt, who
|
||||
decide what happens in the code they maintain.
|
||||
* **Chief Maintainer** — leads the maintainer group, sets the overall
|
||||
direction of the project, and has the final say when the project fails to
|
||||
reach consensus.
|
||||
|
||||
The current maintainers are listed at
|
||||
[wiki.qt.io/Maintainers](https://wiki.qt.io/Maintainers).
|
||||
|
||||
For the processes that sit alongside this model — the branch policy, the
|
||||
security policy, the code of conduct, and the rest — see
|
||||
[contribute.qt-project.org](https://contribute.qt-project.org/).
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
Qt licensing
|
||||
============
|
||||
|
||||
Qt is not distributed under a single license, and this file is not a license
|
||||
text. Qt is available under commercial terms and under several open source
|
||||
licenses, and which terms apply depends on the module and the file.
|
||||
|
||||
The open source licenses in use across the Qt repositories include LGPL-3.0,
|
||||
GPL-2.0, and GPL-3.0 for module implementations, GFDL-1.3 for documentation,
|
||||
and BSD-3-Clause for build system files, examples, and tooling. Third-party
|
||||
code bundled inside a module carries its own terms.
|
||||
|
||||
|
||||
How licensing is declared
|
||||
-------------------------
|
||||
|
||||
Licensing is declared per file, following the
|
||||
[REUSE version 3.3 specification](https://reuse.software/spec-3.3/). Every file
|
||||
carries an SPDX-License-Identifier header, or is covered by an adjacent
|
||||
REUSE.toml file where an inline header is not possible. The full text of every
|
||||
license referenced this way is in the LICENSES directory of the repository it
|
||||
applies to.
|
||||
|
||||
Those SPDX headers and the LICENSES directory are the authoritative,
|
||||
machine-readable record for the Qt sources. They are what the REUSE tool and
|
||||
Qt's software bill of materials pipeline read when generating the SBOM for the
|
||||
sources; they do not describe the licensing of Qt binaries.
|
||||
|
||||
|
||||
Finding the terms for a module
|
||||
------------------------------
|
||||
|
||||
Each Qt module carries its own licensing, and the terms are stated in the
|
||||
"Licenses and Attributions" section of that module's documentation overview
|
||||
page. For example, see:
|
||||
|
||||
https://doc.qt.io/qt-6/qtcore-index.html
|
||||
|
||||
That section also lists the third-party code the module includes and the
|
||||
license of each such component.
|
||||
|
||||
License of built modules and tools
|
||||
----------------------------------
|
||||
|
||||
When building Qt, you can build SBOM documents alongside (`-sbom` argument for
|
||||
`configure`). You can use the generated SBOM artifacts to query copyrights and
|
||||
licenses for built modules, and tools. For more details, see
|
||||
[Software Bill of Materials](https://doc.qt.io/qt-6/sbom.html}.
|
||||
|
||||
Further information
|
||||
-------------------
|
||||
|
||||
Qt licensing overview
|
||||
https://doc.qt.io/qt-6/licensing.html
|
||||
|
||||
Licenses used in Qt
|
||||
https://doc.qt.io/qt-6/licenses-used-in-qt.html
|
||||
|
||||
All Qt modules
|
||||
https://doc.qt.io/qt-6/qtmodules.html
|
||||
|
||||
Commercial licensing
|
||||
https://www.qt.io/licensing/
|
||||
|
||||
Open source licensing and its obligations
|
||||
https://www.qt.io/download-open-source
|
||||
|
||||
Qt educational license
|
||||
https://www.qt.io/qt-educational-license
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
OBTAINING QT 6 FROM GIT
|
||||
=======================
|
||||
|
||||
Synopsis
|
||||
========
|
||||
|
||||
For a more in-depth description on how to build Qt 6 from git,
|
||||
please see: http://wiki.qt.io/Building_Qt_6_from_Git
|
||||
|
||||
Note that, although the git module is called qt5.git, the dev and 6.x branches
|
||||
do contain Qt 6!
|
||||
|
||||
Get The Submodules
|
||||
==================
|
||||
|
||||
Cloning qt5.git does not automatically clone all submodules.
|
||||
To get the submodules, it is recommended to use the `init-repository' script.
|
||||
|
||||
./init-repository
|
||||
|
||||
See `./init-repository -help' for full documentation on the many supported
|
||||
options.
|
||||
|
||||
|
||||
Update The Submodules (optional)
|
||||
================================
|
||||
|
||||
After a plain `git clone' and `init-repository', you will have each submodule
|
||||
checked out to a particular SHA1. This combination of SHA1s is guaranteed to
|
||||
have passed some basic acceptance testing.
|
||||
|
||||
If (and only if!) you need newer versions of some submodules, you can manually
|
||||
fetch and/or pull and/or reset any modules you like, or use the qt5_tool to
|
||||
pull all modules:
|
||||
|
||||
./qtrepotools/bin/qt5_tool -p
|
||||
|
||||
NOTE! As soon as you change the SHA1 of any submodule, you are using a
|
||||
combination of modules which is potentially untested and broken! If you want
|
||||
something which is more likely to compile, stick to the module SHA1s provided
|
||||
in this repository.
|
||||
|
||||
|
||||
Install The Git Grafts (optional)
|
||||
=================================
|
||||
|
||||
If you want to be able to connect the Qt5 and Qt4 development history, you
|
||||
may set up git grafts with the following command:
|
||||
|
||||
git submodule foreach '../qtrepotools/bin/git-qt-grafts <path_to_history>'
|
||||
|
||||
|
||||
Developing and Contributing to Qt
|
||||
=================================
|
||||
|
||||
For more information on how to develop and contribute to Qt, please see:
|
||||
http://wiki.qt.io/Category:Developing_Qt
|
||||
@@ -1,127 +1,80 @@
|
||||
HOW TO BUILD Qt 6
|
||||
=================
|
||||
# Qt 6
|
||||
|
||||
This repository, `qt5.git`, is the Qt super-repository. It records a git
|
||||
submodule pointer to each Qt module repository, such as `qtbase` and
|
||||
`qtdeclarative`, along with the build system, the `configure` scripts, and the
|
||||
continuous integration configuration that build those modules as a single tree.
|
||||
|
||||
Synopsis
|
||||
========
|
||||
Each submodule points at a specific revision. The combination of revisions that
|
||||
a branch records is a snapshot that has passed Qt's continuous integration.
|
||||
Clone this repository first and let it select the module revisions for you. If
|
||||
you move a submodule to a different revision, you are building a combination
|
||||
that nobody has tested.
|
||||
|
||||
System requirements
|
||||
-------------------
|
||||
> Despite the name `qt5.git`, the `dev` and `6.x` branches contain Qt 6.
|
||||
|
||||
* C++ compiler supporting the C++17 standard
|
||||
* CMake
|
||||
* Ninja
|
||||
* Python 3
|
||||
To use Qt rather than build it from sources, see
|
||||
[Get and Install Qt](https://doc.qt.io/qt-6/get-and-install-qt.html).
|
||||
|
||||
For more details, see also https://doc.qt.io/qt-6/build-sources.html
|
||||
## Repository layout
|
||||
|
||||
Linux, Mac:
|
||||
-----------
|
||||
Each Qt module lives in its own directory, such as `qtbase` or
|
||||
`qtdeclarative`. Those directories are git submodules.
|
||||
|
||||
```
|
||||
cd <path>/<source_package>
|
||||
./configure -prefix $PWD/qtbase
|
||||
cmake --build .
|
||||
```
|
||||
The other top-level entries are:
|
||||
|
||||
Windows:
|
||||
--------
|
||||
| Entry | Purpose |
|
||||
| ----- | ------- |
|
||||
|`.gitmodules`| Lists modules for the current branch.|
|
||||
| `CMakeLists.txt` | Entry point for the top-level build of all modules. |
|
||||
| `configure`, `configure.bat` | Wrappers that configure that build. |
|
||||
| `init-repository` | Checks out the submodules. Git clones only. |
|
||||
| `cmake/` | CMake modules shared by the top-level build. |
|
||||
| `coin/` | Continuous integration configuration and provisioning. |
|
||||
| `LICENSES/`, `REUSE.toml` | License texts and per-file licensing metadata. |
|
||||
|
||||
1. Open a command prompt.
|
||||
2. Ensure that the following tools can be found in the path:
|
||||
* Supported compiler (Visual Studio 2022 or later, or MinGW-builds gcc 13.1 or later)
|
||||
* Python 3 ([https://www.python.org/downloads/windows/] or from Microsoft Store)
|
||||
## Get the sources
|
||||
|
||||
```
|
||||
cd <path>\<source_package>
|
||||
configure -prefix %CD%\qtbase
|
||||
cmake --build .
|
||||
```
|
||||
For instructions, see [Getting Qt Sources from the Git repository](https://doc.qt.io/qt-6/getting-sources-from-git.html).
|
||||
|
||||
More details follow.
|
||||
## Build Qt
|
||||
|
||||
For instructions, see [Build from sources](https://doc.qt.io/qt-6/build-sources.html).
|
||||
|
||||
Build!
|
||||
======
|
||||
## Documentation
|
||||
|
||||
Qt is built with CMake, and a typical
|
||||
`configure && cmake --build .` build process is used.
|
||||
The [Qt 6 documentation](https://doc.qt.io/qt-6/index.html) covers the
|
||||
framework itself.
|
||||
|
||||
If Ninja is installed, it is automatically chosen as CMake generator.
|
||||
## Report an issue
|
||||
|
||||
Some relevant configure options (see configure -help):
|
||||
Report bugs at [bugreports.qt.io](https://bugreports.qt.io/), following
|
||||
[these steps](https://doc.qt.io/qt-6/bughowto.html).
|
||||
|
||||
* `-release` Compile and link Qt with debugging turned off.
|
||||
* `-debug` Compile and link Qt with debugging turned on.
|
||||
## Security
|
||||
|
||||
Example for a release build:
|
||||
To report a security vulnerability in Qt, and to read what the Qt Project
|
||||
commits to in response, see [SECURITY.md](SECURITY.md).
|
||||
|
||||
```
|
||||
./configure -prefix $PWD/qtbase
|
||||
cmake --build .
|
||||
```
|
||||
## Contribute to Qt
|
||||
|
||||
Example for a developer build:
|
||||
(enables more autotests, builds debug version of libraries, ...)
|
||||
The Qt Project does not accept pull requests on GitHub. Every contribution goes
|
||||
through [Gerrit](https://codereview.qt-project.org), so read
|
||||
[how to contribute](CONTRIBUTING.md) before you push a change. All
|
||||
participation in the project is subject to our
|
||||
[code of conduct](CODE_OF_CONDUCT.md). To learn who decides what, and how
|
||||
someone becomes an approver or a maintainer, see
|
||||
[how the project is governed](GOVERNANCE.md).
|
||||
Development discussions happens in the open on the
|
||||
[Qt Project mailing lists](https://lists.qt-project.org/).
|
||||
|
||||
```
|
||||
./configure -developer-build
|
||||
cmake --build .
|
||||
```
|
||||
## License
|
||||
|
||||
See output of `./configure -help` for documentation on various options to
|
||||
configure.
|
||||
Qt is available under both commercial and open source licenses, and the terms
|
||||
depend on the module you use. [LICENSE](LICENSE) explains how licensing is
|
||||
declared across the Qt repositories and where to find the terms that apply to
|
||||
a given module.
|
||||
|
||||
The above examples will build whatever Qt modules have been enabled
|
||||
by default in the build system.
|
||||
|
||||
It is possible to build selected repositories with their dependencies by doing
|
||||
a `ninja <repo-name>/all`. For example, to build only qtdeclarative,
|
||||
and the modules it depends on:
|
||||
|
||||
```
|
||||
./configure
|
||||
ninja qtdeclarative/all
|
||||
```
|
||||
|
||||
This can save a lot of time if you are only interested in a subset of Qt.
|
||||
|
||||
|
||||
Hints
|
||||
=====
|
||||
|
||||
The submodule repository `qtrepotools` contains useful scripts for
|
||||
developers and release engineers. Consider adding qtrepotools/bin
|
||||
to your `PATH` environment variable to access them.
|
||||
|
||||
|
||||
Building Qt from git
|
||||
====================
|
||||
|
||||
See http://wiki.qt.io/Building_Qt_6_from_Git and [README.git](README.git)
|
||||
for more information.
|
||||
See http://wiki.qt.io/Qt_6 for the reference platforms.
|
||||
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
After configuring and compiling Qt, building the documentation is possible by running
|
||||
|
||||
```
|
||||
cmake --build . --target docs
|
||||
```
|
||||
|
||||
After having built the documentation, you need to install it with the following
|
||||
command:
|
||||
|
||||
```
|
||||
cmake --build . --target install_docs
|
||||
```
|
||||
|
||||
The documentation is installed in the path specified with the
|
||||
configure argument `-docdir`.
|
||||
|
||||
Information about Qt's documentation is located in qtbase/doc/README
|
||||
|
||||
Note: Building the documentation is only tested on desktop platforms.
|
||||
For the full picture, see the
|
||||
[Qt licensing overview](https://doc.qt.io/qt-6/licensing.html) and
|
||||
[qt.io/licensing](https://www.qt.io/licensing/).
|
||||
|
||||
+3
-3
@@ -34,6 +34,6 @@ We welcome contributions to Qt! If you'd like to contribute, read the
|
||||
Qt is available under various licenses. For details, check out the
|
||||
[license documentation](https://doc.qt.io/qt-6/licensing.html).
|
||||
|
||||
*Note that this README.md.template serves as a guideline for README.md files,
|
||||
and that further sections can be added to individual README.md files if
|
||||
necessary.*
|
||||
*Note that this README.md.template serves as a guideline for the README.md
|
||||
files of Qt module repositories, and that further sections can be added to
|
||||
individual README.md files if necessary.*
|
||||
|
||||
+3
-1
@@ -26,7 +26,9 @@ SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
|
||||
SPDX-License-Identifier = "BSD-3-Clause"
|
||||
|
||||
[[annotations]]
|
||||
path = ["**README*", "CONTRIBUTING.md", ".commit-template", ".github/pull_request_template.md"]
|
||||
path = ["**README*", "CONTRIBUTING.md", "CODE_OF_CONDUCT.md", "GOVERNANCE.md",
|
||||
"SECURITY.md", "CHANGELOG.md", "LICENSE",
|
||||
".commit-template", ".github/pull_request_template.md"]
|
||||
comment = "documentation"
|
||||
precedence = "closest"
|
||||
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
# Security policy
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
Report suspected security vulnerabilities in Qt by email to
|
||||
<security@qt-project.org>. Do not report them in the public bug tracker at
|
||||
bugreports.qt.io.
|
||||
|
||||
If you hold a commercial license, you can instead report the issue to the Qt
|
||||
Company support team through the support portal, using the "Security Issues"
|
||||
category.
|
||||
|
||||
## The policy
|
||||
|
||||
[QUIP 15](https://contribute.qt-project.org/quips/15) is the Qt Project
|
||||
Security Policy. It is the authoritative source for how the project handles
|
||||
security issues, and it covers:
|
||||
|
||||
* How reports are received, acknowledged, and triaged, and in what time frame.
|
||||
* Who is responsible for addressing an issue, and how it is escalated.
|
||||
* How issues are disclosed, including CVE handling and notification of
|
||||
packagers.
|
||||
* Which versions of Qt fixes are guaranteed for.
|
||||
|
||||
Security announcements are published to the
|
||||
[announce mailing list](https://lists.qt-project.org/listinfo/announce).
|
||||
|
||||
Qt customers with a commercial license now have the opportunity to subscribe to
|
||||
the Qt Early Warning List in the [Customer Portal](https://account.qt.io/). The
|
||||
EWL subscription requires an active
|
||||
[Commercial Qt license](https://www.qt.io/development/qt-framework/commercial-qt).
|
||||
|
||||
## Related material
|
||||
|
||||
* [Security in Qt](https://doc.qt.io/qt-6/security.html) — what Qt does and
|
||||
does not protect against, and how to use Qt securely.
|
||||
* [QUIP 23](https://contribute.qt-project.org/quips/23) — the `Qt-Security`
|
||||
header that marks how security-relevant a source file is.
|
||||
* [QUIP 16](https://contribute.qt-project.org/quips/16) — the branch policy,
|
||||
which governs which branches accept which changes.
|
||||
* [Coordinated Vulnerability Disclosure Policy](https://www.qt.io/terms-conditions/coordinated-vulnerability-disclosure-policy) -
|
||||
Terms and Conditions of Coordinated Vulnerability Disclosure Policy at Qt Group.
|
||||
@@ -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}"
|
||||
@@ -324,7 +328,7 @@ function(qt_ir_get_already_initialized_submodules prefix
|
||||
)
|
||||
|
||||
qt_ir_parse_git_config_file_contents("${prefix}"
|
||||
READ_GIT_CONFIG
|
||||
READ_GIT_CONFIG_LOCAL
|
||||
PARENT_REPO_BASE_GIT_PATH "${parent_repo_base_git_path}"
|
||||
WORKING_DIRECTORY "${working_directory}"
|
||||
)
|
||||
@@ -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.
|
||||
|
||||
|
||||
+14
-35
@@ -128,7 +128,6 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
||||
|
||||
set(filtered_args ${unknown_args})
|
||||
set(extra_configure_args "")
|
||||
set(extra_cmake_args "")
|
||||
|
||||
# Collect modules to skip. These may come from:
|
||||
# 1. The -skip option (consumed by init-repository's option parser)
|
||||
@@ -142,20 +141,17 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
||||
qt_ir_get_top_level_submodules(include_submodules exclude_submodules)
|
||||
if(NOT include_submodules AND arg_ALREADY_INITIALIZED)
|
||||
string(REPLACE "," ";" include_submodules "${submodules}")
|
||||
list(FILTER include_submodules EXCLUDE REGEX "^$")
|
||||
endif()
|
||||
|
||||
# qtrepotools is always implicitly cloned, but it doesn't actually
|
||||
# have a CMakeLists.txt, so remove it.
|
||||
list(REMOVE_ITEM include_submodules "qtrepotools")
|
||||
|
||||
# Make sure to explicitly pass -DBUILD_<module>=ON, in case they were
|
||||
# skipped before, otherwise configure might fail.
|
||||
if(include_submodules)
|
||||
set(explicit_build_submodules "${include_submodules}")
|
||||
list(TRANSFORM explicit_build_submodules PREPEND "-DBUILD_")
|
||||
list(TRANSFORM explicit_build_submodules APPEND "=ON")
|
||||
list(APPEND extra_cmake_args ${explicit_build_submodules})
|
||||
endif()
|
||||
# Note: the submodules are turned on explicitly with -DBUILD_<module>=ON by configure's
|
||||
# own handling of -submodules. Adding those arguments here as well would record them in
|
||||
# config.opt, which is supposed to reflect the command line as it was given.
|
||||
# See QTBUG-134948.
|
||||
|
||||
list(JOIN include_submodules "," include_submodules)
|
||||
|
||||
@@ -178,33 +174,14 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
||||
list(APPEND extra_configure_args "-skip" "${skip_csv}")
|
||||
endif()
|
||||
|
||||
# Insert the extra arguments into the proper positions before and after '--'.
|
||||
list(FIND filtered_args "--" cmake_args_index)
|
||||
|
||||
# -- is not found
|
||||
if(cmake_args_index EQUAL -1)
|
||||
# Append extra configure args if present
|
||||
if(extra_configure_args)
|
||||
list(APPEND filtered_args ${extra_configure_args})
|
||||
endif()
|
||||
# Append extra cmake args if present, but make sure to add -- first at the end
|
||||
if(extra_cmake_args)
|
||||
list(APPEND filtered_args "--")
|
||||
list(APPEND filtered_args ${extra_cmake_args})
|
||||
endif()
|
||||
else()
|
||||
# -- is found, that means we probably have cmake args
|
||||
# Insert extra configure args if present, before the -- index.
|
||||
if(extra_configure_args)
|
||||
list(INSERT filtered_args "${cmake_args_index}" ${extra_configure_args})
|
||||
endif()
|
||||
# Find the -- index again, because it might have moved
|
||||
# Insert the extra arguments, which are all configure arguments, so they have to go before
|
||||
# a '--' if there is one.
|
||||
if(extra_configure_args)
|
||||
list(FIND filtered_args "--" cmake_args_index)
|
||||
# Compute the index of the argument after the --.
|
||||
math(EXPR cmake_args_index "${cmake_args_index} + 1")
|
||||
# Insert extra cmake args if present, after the -- index.
|
||||
if(extra_cmake_args)
|
||||
list(INSERT filtered_args "${cmake_args_index}" ${extra_cmake_args})
|
||||
if(cmake_args_index EQUAL -1)
|
||||
list(APPEND filtered_args ${extra_configure_args})
|
||||
else()
|
||||
list(INSERT filtered_args "${cmake_args_index}" ${extra_configure_args})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -311,6 +288,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")
|
||||
@@ -320,6 +298,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)
|
||||
|
||||
@@ -60,7 +60,7 @@ endfunction()
|
||||
# Populates $out_module_list with all subdirectories that have a CMakeLists.txt file
|
||||
function(qt_internal_find_modules out_module_list)
|
||||
set(module_list "")
|
||||
file(GLOB directories LIST_DIRECTORIES true RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" *)
|
||||
file(GLOB directories LIST_DIRECTORIES true RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" qt* tqtc-*)
|
||||
foreach(directory IN LISTS directories)
|
||||
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${directory}"
|
||||
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${directory}/CMakeLists.txt")
|
||||
@@ -1386,7 +1386,7 @@ function(qt_internal_foreach_repo_run)
|
||||
|
||||
set(color_supported FALSE)
|
||||
set(output_goes_where "")
|
||||
if(NOT tty_exit_CODE AND tty_name)
|
||||
if(NOT tty_exit_code AND tty_name)
|
||||
set(color_supported TRUE)
|
||||
set(output_goes_where "OUTPUT_FILE" "${tty_name}")
|
||||
endif()
|
||||
|
||||
@@ -30,3 +30,6 @@ enable_if:
|
||||
- condition: property
|
||||
property: target.os
|
||||
equals_value: Linux
|
||||
- condition: property
|
||||
property: target.osVersion
|
||||
not_equals_value: HarmonyOS_ANY
|
||||
|
||||
@@ -16,6 +16,13 @@ instructions:
|
||||
variableName: CONFIGURE_ENV_PREFIX
|
||||
variableValue: "{{.Env.ENV_PREFIX}}"
|
||||
|
||||
# Re-fetch the qlitehtml repository in the Coin git mirror, otherwise the
|
||||
# RunCMake.InitRepository test might fail trying to checkout a newer sha1 than what is
|
||||
# available in the Coin git mirror.
|
||||
- type: UpdateRepo
|
||||
gitRemote: code.qt.io
|
||||
repos: [playground/qlitehtml.git]
|
||||
|
||||
- type: ExecuteCommand
|
||||
command: "{{.Env.CONFIGURE_ENV_PREFIX}} cmake {{.SourceDir}}/tests/manual/RunCMake"
|
||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'opensuse-15.6-host-asan'
|
||||
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
|
||||
Id: 'opensuse-16.0-host-asan'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'UseAddressSanitizer']
|
||||
Configure arguments: '-nomake examples -developer-build'
|
||||
|
||||
@@ -3,6 +3,7 @@ Include: [
|
||||
cmake_platforms_qemu.yaml,
|
||||
cmake_platforms_qemu_qnx.yaml,
|
||||
cmake_platforms_target_android.yaml,
|
||||
cmake_platforms_target_harmonyos.yaml,
|
||||
cmake_platforms_wasm.yaml,
|
||||
macos.yaml
|
||||
]
|
||||
@@ -58,11 +59,11 @@ Configurations:
|
||||
Template: 'qtci-linux-Ubuntu-24.04-aarch64-52'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'Packaging', 'UseConfigure', 'DoNotRunTests', 'GenerateSBOM', 'VerifySBOM']
|
||||
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 -qpa offscreen\;xcb'
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -no-feature-liburing -bundled-xcb-xinput -qpa offscreen\;xcb'
|
||||
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',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt',
|
||||
'VCPKG_HOST_TRIPLET=arm64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-linux-qt',
|
||||
]
|
||||
@@ -91,6 +92,59 @@ Configurations:
|
||||
'QT_QPA_PLATFORM=offscreen'
|
||||
]
|
||||
Platform dependency: 'ubuntu-24.04-arm64'
|
||||
|
||||
# Build on Ubuntu 26.04 ARM64 Wayland and test on offscreen and Wayland later
|
||||
-
|
||||
Id: 'ubuntu-26.04-arm64-developer-build'
|
||||
Template: 'qtci-linux-Ubuntu-26.04-aarch64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples']
|
||||
Configure arguments: '-make examples -developer-build -c++std c++20 -linker lld -qtlibinfix TestInfix -qtnamespace TestNamespace -qpa offscreen\;xcb'
|
||||
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=arm64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-linux-qt',
|
||||
]
|
||||
-
|
||||
Id: 'ubuntu-26.04-arm64'
|
||||
Template: 'qtci-linux-Ubuntu-26.04-aarch64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -no-feature-liburing -bundled-xcb-xinput -qpa offscreen\;xcb'
|
||||
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 -DINPUT_tiff=qt -DINPUT_webp=qt',
|
||||
'VCPKG_HOST_TRIPLET=arm64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-linux-qt',
|
||||
]
|
||||
# Test on Ubuntu 26.04 ARM64 Wayland
|
||||
-
|
||||
Id: 'ubuntu-26.04-arm64-developer-build-wayland-tests'
|
||||
Template: 'qtci-linux-Ubuntu-26.04-aarch64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['TestOnly', 'InsignificantTests', 'VerboseCTestOutput']
|
||||
Platform dependency: 'ubuntu-26.04-arm64-developer-build'
|
||||
-
|
||||
Id: 'ubuntu-26.04-arm64-wayland-tests'
|
||||
Template: 'qtci-linux-Ubuntu-26.04-aarch64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['TestOnly', 'InsignificantTests', 'VerboseCTestOutput']
|
||||
Platform dependency: 'ubuntu-26.04-arm64'
|
||||
# Test on Ubuntu 26.04 ARM64 offscreen
|
||||
-
|
||||
Id: 'ubuntu-26.04-arm64-offscreen-tests'
|
||||
Template: 'qtci-linux-Ubuntu-26.04-aarch64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['TestOnly', 'InsignificantTests']
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'QT_QPA_OFFSCREEN_NO_GLX=1',
|
||||
'QT_QPA_PLATFORM=offscreen'
|
||||
]
|
||||
Platform dependency: 'ubuntu-26.04-arm64'
|
||||
|
||||
# Build on Ubuntu 24.04 x64 Wayland and test on both X11 and Wayland (Wayland=default)
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64-developer-build'
|
||||
@@ -104,6 +158,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'
|
||||
@@ -117,6 +185,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'
|
||||
@@ -130,24 +212,11 @@ Configurations:
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'ubuntu-24.04-x64'
|
||||
-
|
||||
Id: 'opensuse-15.6-developer-build'
|
||||
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure']
|
||||
Configure arguments: '-nomake examples -developer-build'
|
||||
Environment variables: [
|
||||
'PATH={{.Env.CMAKE_MIN_SUPPORTED_BIN_PATH}}:{{.Env.PATH}}',
|
||||
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',
|
||||
'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',
|
||||
]
|
||||
-
|
||||
Id: 'opensuse-16.0-developer-build'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure']
|
||||
Configure arguments: '-nomake examples -developer-build'
|
||||
Environment variables: [
|
||||
'PATH={{.Env.CMAKE_MIN_SUPPORTED_BIN_PATH}}:{{.Env.PATH}}',
|
||||
@@ -185,7 +254,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'Packaging', "DebugAndRelease", 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib'
|
||||
@@ -227,6 +296,26 @@ Configurations:
|
||||
'VCPKG_TARGET_TRIPLET=x64-windows-qt',
|
||||
'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2026-arm64ec'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-72'
|
||||
Compiler: 'MSVC2026'
|
||||
Target arch: 'arm64'
|
||||
Features: ['Sccache', 'ARM64EC', 'TargetBuildOnly', 'DoNotRunTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Platform dependency: 'windows-11_24H2-msvc2026'
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64ec-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
|
||||
'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_FEATURE_qdoc=OFF -DFEATURE_qtwebengine_build=OFF -DFEATURE_qtpdf_build=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON',
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2026-arm64ec-tests'
|
||||
Template: 'qtci-windows-11_23H2-aarch64-54'
|
||||
Compiler: 'MSVC2026'
|
||||
Features: ['TestOnly', 'InsignificantTests']
|
||||
Configure arguments: '-cross-compiled'
|
||||
Platform dependency: 'windows-11_24H2-msvc2026-arm64ec'
|
||||
-
|
||||
Id: 'windows-11_23h2-arm64-msvc2022'
|
||||
Template: 'qtci-windows-11_23H2-aarch64-53'
|
||||
@@ -245,7 +334,7 @@ Configurations:
|
||||
Id: 'windows-11_23h2-arm64-msvc2026'
|
||||
Template: 'qtci-windows-11_23H2-aarch64-54'
|
||||
Compiler: 'MSVC2026'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Features: ['Sccache', 'DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_arm64}}\..',
|
||||
@@ -257,11 +346,11 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-arm64'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Target arch: 'arm64'
|
||||
Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
|
||||
@@ -282,7 +371,7 @@ Configurations:
|
||||
Compiler: 'MSVC2026'
|
||||
Target arch: 'arm64'
|
||||
Features: ['Sccache', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
|
||||
@@ -298,22 +387,31 @@ Configurations:
|
||||
'WEBVIEW2_SDK_ROOT={{.Env.WEBVIEW2_SDK_ROOT_PATH}}',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11-x86_64-arm64-tests'
|
||||
Id: 'windows-11-x86_64-arm64-native-tests'
|
||||
Template: 'qtci-windows-11_23H2-aarch64-53'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['TestOnly']
|
||||
Features: ['TestOnly', 'BuildTestsInTest', 'UseToolchainFromTargetDir']
|
||||
Configure arguments: '-cross-compiled'
|
||||
Platform dependency: 'windows-11_24H2-msvc2022-arm64'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}}',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
'OPENSSL_CONF_x64={{.Env.OPENSSL_CONF_x64_arm64}}',
|
||||
'OPENSSL_INCLUDE_x64={{.Env.OPENSSL_INCLUDE_x64_arm64}}',
|
||||
'OPENSSL_LIB_x64={{.Env.OPENSSL_LIB_x64_arm64}}',
|
||||
'VCPKG_HOST_TRIPLET=arm64-windows-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-windows-qt',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11-x86_64-msvc2026-arm64-tests'
|
||||
Id: 'windows-11-x86_64-arm64-tests-msvc2026'
|
||||
Template: 'qtci-windows-11_23H2-aarch64-54'
|
||||
Compiler: 'MSVC2026'
|
||||
Features: ['TestOnly', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Features: ['TestOnly']
|
||||
Configure arguments: '-cross-compiled'
|
||||
Platform dependency: 'windows-11_24H2-msvc2026-arm64'
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-developer-build'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
|
||||
Configure arguments: '-debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++20'
|
||||
@@ -330,10 +428,10 @@ Configurations:
|
||||
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM']
|
||||
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'
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -no-feature-liburing -bundled-xcb-xinput'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
@@ -341,7 +439,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',
|
||||
@@ -350,7 +448,7 @@ Configurations:
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
-
|
||||
Id: 'ios-universal'
|
||||
Id: 'ios-device'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
@@ -359,7 +457,35 @@ Configurations:
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang',
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphoneos',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
]
|
||||
-
|
||||
Id: 'ios-arm64-simulator'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphonesimulator',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="arm64"',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
]
|
||||
-
|
||||
Id: 'ios-x86_64-simulator'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'x86_64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphonesimulator',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64"',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
]
|
||||
-
|
||||
@@ -375,8 +501,8 @@ Configurations:
|
||||
'TARGET_CONFIGURE_ARGS=-developer-build -no-warnings-are-errors -nomake examples -nomake tests -platform macx-visionos-clang',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24h2-mingw13'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Id: 'windows-11_24h2-mingw15'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Mingw'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
|
||||
@@ -389,7 +515,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-llvm'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'Packaging', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
|
||||
@@ -401,8 +527,8 @@ Configurations:
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-mingw13-developer-build'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Id: 'windows-11_24H2-mingw15-developer-build'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Mingw'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
|
||||
Configure arguments: '-developer-build -release -force-asserts -force-debug-info -separate-debug-info -make examples'
|
||||
@@ -419,7 +545,7 @@ Configurations:
|
||||
Compiler: 'GCC'
|
||||
Features: ['Packaging','DebianPackaging','DisableTests', 'Insignificant']
|
||||
Environment variables: [
|
||||
'DEBIAN_RULES_REF=6.11_dev',
|
||||
'DEBIAN_RULES_REF=6.12_dev',
|
||||
'COIN_TARGET_DIST=tqtc-jammy',
|
||||
'COIN_EXTRA_DEBIAN_PACKAGES={{.Env.HOME}}/debian_packages/',
|
||||
'COIN_SBUILD_CHROOT=jammy-arm64-sbuild',
|
||||
@@ -432,7 +558,7 @@ Configurations:
|
||||
Compiler: 'GCC'
|
||||
Features: ['Packaging','DebianPackaging','DisableTests', 'Insignificant']
|
||||
Environment variables: [
|
||||
'DEBIAN_RULES_REF=6.11_dev',
|
||||
'DEBIAN_RULES_REF=6.12_dev',
|
||||
'COIN_TARGET_DIST=tqtc-jammy',
|
||||
'COIN_EXTRA_DEBIAN_PACKAGES={{.Env.HOME}}/debian_packages/',
|
||||
'COIN_SBUILD_CHROOT=jammy-amd64-sbuild',
|
||||
@@ -445,7 +571,7 @@ Configurations:
|
||||
Compiler: 'GCC'
|
||||
Features: ['Packaging','DebianPackaging','DisableTests', 'Insignificant']
|
||||
Environment variables: [
|
||||
'DEBIAN_RULES_REF=6.11_gles',
|
||||
'DEBIAN_RULES_REF=6.12_gles',
|
||||
'COIN_TARGET_DIST=tqtc-bookworm',
|
||||
'COIN_EXTRA_DEBIAN_PACKAGES={{.Env.HOME}}/debian_packages/',
|
||||
'COIN_SBUILD_CHROOT=bookworm-arm64-sbuild',
|
||||
|
||||
@@ -12,12 +12,10 @@ Configurations:
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -make examples -qt-harfbuzz -device linux-imx7-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARMV7_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=hard-float boot2qt" -no-feature-forkfd_pidfd',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARMV7_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
|
||||
'QT_YOCTO_ENVSETUP={{.Env.QEMUARMV7_TOOLCHAIN_ENVSETUP}}',
|
||||
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
|
||||
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARMV7_TOOLCHAIN_SYSROOT}}',
|
||||
'GST_PLUGIN_SCANNER={{.Env.QEMUARMV7_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=armv7-linux-qt',
|
||||
]
|
||||
-
|
||||
Id: 'qemu-arm64-developer-build'
|
||||
@@ -31,12 +29,10 @@ Configurations:
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARM64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARM64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
|
||||
'QT_YOCTO_ENVSETUP={{.Env.QEMUARM64_TOOLCHAIN_ENVSETUP}}',
|
||||
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
|
||||
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}',
|
||||
'GST_PLUGIN_SCANNER={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-linux-qt',
|
||||
]
|
||||
-
|
||||
Id: 'qemu-mips64-developer-build'
|
||||
@@ -50,10 +46,8 @@ Configurations:
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUMIPS64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUMIPS64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
|
||||
'QT_YOCTO_ENVSETUP={{.Env.QEMUMIPS64_TOOLCHAIN_ENVSETUP}}',
|
||||
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
|
||||
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUMIPS64_TOOLCHAIN_SYSROOT}}',
|
||||
'GST_PLUGIN_SCANNER={{.Env.QEMUMIPS64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=mips64-linux-qt',
|
||||
]
|
||||
|
||||
@@ -12,8 +12,8 @@ Configurations:
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-dbus -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}/qnx-toolchain-x8664.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin',
|
||||
'QNX_TEST_ENV=TMPDIR=/data/var/tmp LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci',
|
||||
'QT_CMAKE_DIR=/opt/cmake-4.3.2/bin',
|
||||
'QNX_TEST_ENV=TMPDIR=/data/var/tmp HOME=/data/home/root FONTCONFIG_FILE=/data/var/etc/fontconfig/fonts.conf LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_SYSTEM_VERSION=710 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'QNX_QEMU={{.Env.QNX_710_QEMU}}',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
@@ -63,8 +63,8 @@ Configurations:
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-dbus -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_800}}/qnx-toolchain-x8664.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin',
|
||||
'QNX_TEST_ENV=TMPDIR=/data/var/tmp LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci',
|
||||
'QT_CMAKE_DIR=/opt/cmake-4.3.2/bin',
|
||||
'QNX_TEST_ENV=TMPDIR=/data/var/tmp HOME=/data/home/root FONTCONFIG_FILE=/data/var/etc/fontconfig/fonts.conf LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_SYSTEM_VERSION=802 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'QNX_QEMU={{.Env.QNX_800_QEMU}}',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
|
||||
@@ -10,7 +10,7 @@ Configurations:
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
Features: ['VMSize8', 'UseConfigure', 'DoNotRunTests', 'DoNotUploadTests']
|
||||
Environment variables: [
|
||||
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_2_VSB',
|
||||
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_3_VSB',
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
@@ -26,8 +26,8 @@ Configurations:
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
Features: ['VMSize8', 'UseConfigure', 'DoNotRunTests', 'DoNotUploadTests']
|
||||
Environment variables: [
|
||||
'WIND_CC_SYSROOT=/opt/nxp_imx8_1_0_7_0_VSB',
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
|
||||
'WIND_CC_SYSROOT=/opt/nxp_imx8_1_0_7_1_VSB',
|
||||
'TARGET_CONFIGURE_ARGS=-release -qpa offscreen -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target'
|
||||
]
|
||||
-
|
||||
|
||||
@@ -8,10 +8,10 @@ Configurations:
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'vxworks-imx6-buildtest'
|
||||
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
|
||||
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
|
||||
Environment variables: [
|
||||
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_2_VSB',
|
||||
'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_2_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_2_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_2_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
|
||||
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_3_VSB',
|
||||
'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_3_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_3_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_3_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
@@ -25,7 +25,7 @@ Configurations:
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'vxworks-x86_64-buildtest'
|
||||
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
|
||||
Features: ['VMSize16', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
|
||||
Environment variables: [
|
||||
'WIND_CC_SYSROOT=/opt/itl_generic_skylake_VSB',
|
||||
'VXWORKS_TEST_LIBS_PATH=/opt/itl_generic_skylake_VSB/usr/lib/common;/opt/itl_generic_skylake_VSB/usr/root/llvm/bin;/opt/itl_generic_skylake_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
|
||||
|
||||
@@ -3,7 +3,7 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-minimal-static-test'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'Packaging', 'UseConfigure', 'MinimalStaticTests']
|
||||
Configure arguments: '-static -release -headersclean -nomake examples -qt-libjpeg -no-icu -qt-doubleconversion -qt-zlib -c++std c++20 -no-feature-sql-psql'
|
||||
@@ -55,7 +55,7 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'macos-universal-on-x86_64-minimal-static-test'
|
||||
Template: 'qtci-macos-15-x86_64-103'
|
||||
Template: 'qtci-macos-15-x86_64-104'
|
||||
Compiler: 'Clang'
|
||||
Target arch: 'x86_64-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'MinimalStaticTests']
|
||||
|
||||
@@ -13,7 +13,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-minimal-static'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure']
|
||||
Configure arguments: '-release -force-debug-info -static -nomake examples -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
|
||||
@@ -27,7 +27,20 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'macos-minimal-static'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -static -no-framework'
|
||||
|
||||
-
|
||||
Id: "ios-minimal-static"
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'MinimalStaticTests', 'UseConfigure']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang'
|
||||
]
|
||||
|
||||
@@ -10,23 +10,23 @@ Configurations:
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}'
|
||||
]
|
||||
-
|
||||
Id: 'android-armv7-on-windows'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Target os: 'Android_ANY'
|
||||
Target arch: 'armv7'
|
||||
Compiler: 'Mingw'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}'
|
||||
@@ -41,7 +41,7 @@ Configurations:
|
||||
Platform dependency: 'rhel-9.6'
|
||||
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR only in one configuration, to ensure builds
|
||||
@@ -51,7 +51,7 @@ Configurations:
|
||||
'ANDROID_EMULATOR=emulator_x86_api_28'
|
||||
]
|
||||
-
|
||||
Id: 'android-16-x86_64-on-linux'
|
||||
Id: 'android-17-x86_64-on-linux'
|
||||
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
|
||||
Target os: 'Android_ANY'
|
||||
Target arch: 'x86_64'
|
||||
@@ -60,31 +60,12 @@ Configurations:
|
||||
Platform dependency: 'rhel-9.6'
|
||||
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_USE_ANDROID_MODERN_BUNDLE only in one
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_ANDROID_GRADLE_MULTI_MODULE only in one
|
||||
# configuration, to ensure builds without this option work too.
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_USE_ANDROID_MODERN_BUNDLE=ON',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_36'
|
||||
]
|
||||
-
|
||||
Id: 'android-17-x86_64-on-linux'
|
||||
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
|
||||
Target os: 'Android_ANY'
|
||||
Target arch: 'x86_64'
|
||||
Compiler: 'GCC'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'rhel-9.6'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_USE_ANDROID_MODERN_BUNDLE only in one
|
||||
# configuration, to ensure builds without this option work too.
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_USE_ANDROID_MODERN_BUNDLE=ON',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_ANDROID_GRADLE_MULTI_MODULE=ON',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_37'
|
||||
]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'harmonyos-20-arm64-on-ubuntu-24.04-x64'
|
||||
Id: 'harmonyos-23-arm64-on-linux'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-50'
|
||||
Target os: 'HarmonyOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
@@ -11,12 +11,13 @@ 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_ABI=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}} -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}}'
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'QT_HARMONYOS_HVIGOR={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/bin/hvigorw'
|
||||
]
|
||||
-
|
||||
Id: 'harmonyos-20-arm64-on-ubuntu-24.04-x64-developer-build'
|
||||
Id: 'harmonyos-23-arm64-on-linux-developer-build'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-x86_64-50'
|
||||
Target os: 'HarmonyOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
@@ -25,8 +26,57 @@ Configurations:
|
||||
Platform dependency: 'ubuntu-24.04-x64-developer-build'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-developer-build -debug -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT}} -DOHOS_ABI=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'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_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}}'
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'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-developer-build'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'HarmonyOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
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_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={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/bin/hvigorw'
|
||||
]
|
||||
|
||||
@@ -2,19 +2,6 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'webassembly-linux-thread-asyncify'
|
||||
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Platform dependency: 'opensuse-15.6-developer-build'
|
||||
Features: ['DoNotRunTests', 'UseConfigure']
|
||||
Environment variables: [
|
||||
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
|
||||
"TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread \
|
||||
-feature-exceptions -DQT_QMAKE_DEVICE_OPTIONS=\"QT_EMSCRIPTEN_ASYNCIFY=1\"",
|
||||
'HEADLESS_CHROME_FOR_TESTING=true'
|
||||
]
|
||||
-
|
||||
Id: 'webassembly-linux-thread-asyncify-new'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
@@ -28,11 +15,11 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'webassembly-windows'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'Mingw'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Features: ['Packaging','DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'Path={{.Env.EMSDK_PATH}};{{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
@@ -43,10 +30,10 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'webassembly-linux-thread'
|
||||
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Platform dependency: 'opensuse-15.6-developer-build'
|
||||
Platform dependency: 'opensuse-16.0-developer-build'
|
||||
Features: ['Packaging', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
|
||||
@@ -54,34 +41,8 @@ Configurations:
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
|
||||
]
|
||||
-
|
||||
Id: 'webassembly-linux-thread-new'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Platform dependency: 'opensuse-16.0-developer-build'
|
||||
Features: ['DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
|
||||
'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
|
||||
]
|
||||
-
|
||||
Id: 'webassembly-linux-shared'
|
||||
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Platform dependency: 'opensuse-15.6-developer-build'
|
||||
Features: ['DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
|
||||
'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -no-feature-thread -nomake tests -nomake examples -shared',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
|
||||
]
|
||||
-
|
||||
Id: 'webassembly-linux-shared-new'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: "ios-tests-on-macos"
|
||||
Template: 'qtci-macos-15-arm-104'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'MinimalStaticTests', 'UseConfigure']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang'
|
||||
]
|
||||
@@ -10,7 +10,7 @@ Configurations:
|
||||
Platform dependency: [
|
||||
'rhel-9.6',
|
||||
'android-9-x86-on-linux',
|
||||
'android-16-x86_64-on-linux'
|
||||
'android-17-x86_64-on-linux'
|
||||
]
|
||||
Features: [
|
||||
'Sccache',
|
||||
@@ -24,7 +24,7 @@ Configurations:
|
||||
Environment variables: [
|
||||
'QT_CI_ARTIFACT_ID_PATH_Android-host=QT_CI_ARTIFACT_ID_PATH_rhel-9.6',
|
||||
'QT_CI_ARTIFACT_ID_PATH_Android-x86=QT_CI_ARTIFACT_ID_PATH_android-9-x86-on-linux',
|
||||
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-16-x86_64-on-linux',
|
||||
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-17-x86_64-on-linux',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_ANDROID_ABIS="x86;x86_64"',
|
||||
'ANDROID_EMULATOR=emulator_x86_api_28'
|
||||
]
|
||||
|
||||
@@ -9,7 +9,7 @@ Configurations:
|
||||
|
||||
-
|
||||
Id: 'macos-universal-on-arm64'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Target arch: 'x86_64-arm64'
|
||||
Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
@@ -33,7 +33,7 @@ Configurations:
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
-
|
||||
Id: 'macos-15-x86_64-tests'
|
||||
Template: 'qtci-macos-15-x86_64-103'
|
||||
Template: 'qtci-macos-15-x86_64-104'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
@@ -41,9 +41,8 @@ Configurations:
|
||||
Id: 'macos-26-x86_64-tests'
|
||||
Template: 'qtci-macos-26-x86_64-103'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging', 'DoNotAbortTestingOnFirstFailure']
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Environment variables: [ 'COIN_CTEST_IGNORE_EXIT_CODE=1' ]
|
||||
|
||||
# And arm64
|
||||
|
||||
@@ -65,6 +64,13 @@ Configurations:
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
-
|
||||
Id: 'macos-27-arm64-tests'
|
||||
Template: 'qtci-macos-27-arm-101'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging', 'DoNotAbortTestingOnFirstFailure']
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Environment variables: [ 'COIN_CTEST_IGNORE_EXIT_CODE=1' ]
|
||||
|
||||
# =========================================================================
|
||||
# Developer build. Single architecture builds.
|
||||
@@ -81,6 +87,7 @@ Configurations:
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
'QTBASE_EXAMPLES_CMAKE_ARGS=-DQT_BUILD_EXAMPLES_AS_EXTERNAL=ON',
|
||||
]
|
||||
-
|
||||
Id: 'macos-arm64-developer-build'
|
||||
@@ -126,4 +133,10 @@ Configurations:
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly']
|
||||
Platform dependency: 'macos-26-arm64-developer-build'
|
||||
-
|
||||
Id: 'macos-27-arm64-developer-build-tests'
|
||||
Template: 'qtci-macos-27-arm-101'
|
||||
Compiler: 'Clang'
|
||||
Features: ['TestOnly', 'DoNotAbortTestingOnFirstFailure']
|
||||
Platform dependency: 'macos-26-arm64-developer-build'
|
||||
Environment variables: [ 'COIN_CTEST_IGNORE_EXIT_CODE=1' ]
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [yocto.yaml]
|
||||
Configurations: []
|
||||
@@ -0,0 +1,4 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [yocto.yaml]
|
||||
Configurations: []
|
||||
@@ -4,7 +4,7 @@ Include: [
|
||||
'rhel-9.6'
|
||||
],
|
||||
cmake_platforms_target_android.yaml: [
|
||||
'android-15-x86_64-on-linux',
|
||||
'android-17-x86_64-on-linux',
|
||||
'android-9-x86-on-linux'
|
||||
]
|
||||
]
|
||||
@@ -12,14 +12,14 @@ Configurations: []
|
||||
# Android nightly to check for -qtnamespace errors/issues
|
||||
Overrides:
|
||||
-
|
||||
Id: 'android-15-x86_64-on-linux'
|
||||
Id: 'android-17-x86_64-on-linux'
|
||||
Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-qtnamespace TestNamespace -nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_35'
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_37'
|
||||
]
|
||||
-
|
||||
Id: 'android-9-x86-on-linux'
|
||||
|
||||
@@ -2,10 +2,10 @@ Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'rhel-9.6',
|
||||
'windows-11_24h2-mingw13'
|
||||
'windows-11_24h2-mingw15'
|
||||
],
|
||||
cmake_platforms_target_android.yaml: [
|
||||
'android-15-x86_64-on-linux',
|
||||
'android-17-x86_64-on-linux',
|
||||
'android-9-x86-on-linux',
|
||||
'android-armv7-on-windows',
|
||||
'android-arm64-on-macos'
|
||||
@@ -18,14 +18,14 @@ Configurations: []
|
||||
# Android nightly to check for older (but still supported for the branch) NDKs
|
||||
Overrides:
|
||||
-
|
||||
Id: 'android-15-x86_64-on-linux'
|
||||
Id: 'android-17-x86_64-on-linux'
|
||||
Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY1}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY1}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY1}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_35'
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_37'
|
||||
]
|
||||
-
|
||||
Id: 'android-9-x86-on-linux'
|
||||
|
||||
@@ -2,10 +2,10 @@ Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'rhel-9.6',
|
||||
'windows-11_24h2-mingw13'
|
||||
'windows-11_24h2-mingw15'
|
||||
],
|
||||
cmake_platforms_target_android.yaml: [
|
||||
'android-15-x86_64-on-linux',
|
||||
'android-17-x86_64-on-linux',
|
||||
'android-9-x86-on-linux',
|
||||
'android-armv7-on-windows',
|
||||
'android-arm64-on-macos'
|
||||
@@ -18,14 +18,14 @@ Configurations: []
|
||||
# Android nightly to check for older (but still supported for the branch) NDKs
|
||||
Overrides:
|
||||
-
|
||||
Id: 'android-15-x86_64-on-linux'
|
||||
Id: 'android-17-x86_64-on-linux'
|
||||
Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY2}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY2}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY2}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_35'
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_37'
|
||||
]
|
||||
-
|
||||
Id: 'android-9-x86-on-linux'
|
||||
|
||||
@@ -4,7 +4,7 @@ Include: [
|
||||
'rhel-9.6'
|
||||
],
|
||||
cmake_platforms_target_android.yaml: [
|
||||
'android-16-x86_64-on-linux',
|
||||
'android-17-x86_64-on-linux',
|
||||
'android-9-x86-on-linux'
|
||||
]
|
||||
]
|
||||
@@ -12,14 +12,14 @@ Configurations: []
|
||||
# Android nightly to check for preview NDKs (beta/RC or a newer NDK than the _LATEST used in CI)
|
||||
Overrides:
|
||||
-
|
||||
Id: 'android-16-x86_64-on-linux'
|
||||
Id: 'android-17-x86_64-on-linux'
|
||||
Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_PREVIEW}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_PREVIEW}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_PREVIEW}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_35'
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_37'
|
||||
]
|
||||
-
|
||||
Id: 'android-9-x86-on-linux'
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-developer-build-cxx23'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
|
||||
Configure arguments: '-debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++23'
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"ubuntu-24.04-x64-developer-build"
|
||||
],
|
||||
cmake_platforms_target_harmonyos.yaml: [
|
||||
"harmonyos-23-arm64-on-linux-developer-build"
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
-
|
||||
Id: 'harmonyos-23-arm64-on-linux-developer-build'
|
||||
-Features: ['DoNotRunTests']
|
||||
@@ -0,0 +1,15 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
macos.yaml: [
|
||||
"macos-universal-on-arm64"
|
||||
],
|
||||
cmake_platforms_target_harmonyos.yaml: [
|
||||
"harmonyos-23-arm64-on-macos-developer-build"
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
-
|
||||
Id: 'harmonyos-23-arm64-on-macos-developer-build'
|
||||
-Features: ['DoNotRunTests']
|
||||
@@ -0,0 +1,15 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"ubuntu-24.04-x64"
|
||||
],
|
||||
cmake_platforms_target_harmonyos.yaml: [
|
||||
"harmonyos-23-arm64-on-linux"
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
-
|
||||
Id: 'harmonyos-23-arm64-on-linux'
|
||||
-Features: ['DoNotRunTests']
|
||||
@@ -0,0 +1,25 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
macos.yaml: [
|
||||
"macos-universal-on-arm64"
|
||||
]
|
||||
]
|
||||
|
||||
Configurations:
|
||||
-
|
||||
Id: 'harmonyos-23-arm64-on-macos'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'HarmonyOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Sccache', 'UseConfigure', 'StandaloneExamples']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-release -make examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
|
||||
'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={{.Env.HARMONYOS_SDK_ROOT_CURRENT}}/bin/hvigorw'
|
||||
]
|
||||
@@ -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
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'ubuntu-22.04'
|
||||
]
|
||||
]
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-22.04-Axivion'
|
||||
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['UseConfigure', 'VMSize16', 'RunAsPlatformDependency', 'PysideAxivion']
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
@@ -1,18 +1,18 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'windows-11_24h2-mingw13'
|
||||
'windows-11_24h2-mingw15'
|
||||
]
|
||||
]
|
||||
Configurations:
|
||||
-
|
||||
Id: 'qnx-710-arm64-on-windows'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Target os: 'QNX_710'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Mingw'
|
||||
Target compiler: 'QCC'
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Features: ['DisableTests', 'UseConfigure']
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
|
||||
@@ -2,11 +2,14 @@ Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"ubuntu-22.04"
|
||||
'ubuntu-22.04'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-22.04'
|
||||
Features: ['Axivion', 'DisableTests', 'UseConfigure', 'VMSize16']
|
||||
Id: 'ubuntu-22.04-Axivion'
|
||||
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['UseConfigure', 'VMSize16', 'TestOnly']
|
||||
Environment variables: ['AXIVION_ANALYSIS=1']
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
|
||||
@@ -22,7 +22,5 @@ Configurations:
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS=/opt/b2qt/imx8qm/sysroots/cortexa72-cortexa53-crypto-poky-linux',
|
||||
'GST_PLUGIN_SCANNER=/opt/b2qt/imx8qm/sysroots/cortexa72-cortexa53-crypto-poky-linux/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=arm64-linux-qt'
|
||||
]
|
||||
|
||||
|
||||
@@ -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'
|
||||
]
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-unity-build'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests'] # note: we cannot build debug builds due to our llvm binaries
|
||||
Configure arguments: '-force-debug-info -nomake examples -qt-zlib' # disabled example builds: qmake builds fail with C1041
|
||||
|
||||
@@ -3,7 +3,7 @@ Configurations: []
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'windows-11_24H2-msvc2022-developer-build',
|
||||
'windows-11_24H2-mingw13-developer-build',
|
||||
'windows-11_24H2-mingw15-developer-build',
|
||||
'windows-11_24H2-llvm'
|
||||
]
|
||||
]
|
||||
@@ -13,7 +13,7 @@ Overrides:
|
||||
Id: 'windows-11_24H2-msvc2022-developer-build'
|
||||
Configure arguments: '-qtnamespace TestNamespace -debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++20'
|
||||
-
|
||||
Id: 'windows-11_24H2-mingw13-developer-build'
|
||||
Id: 'windows-11_24H2-mingw15-developer-build'
|
||||
Configure arguments: '-qtnamespace TestNamespace -developer-build -release -force-asserts -force-debug-info -separate-debug-info -make examples'
|
||||
-
|
||||
Id: 'windows-11_24H2-llvm'
|
||||
|
||||
@@ -7,7 +7,7 @@ Include: [
|
||||
"ubuntu-22.04-developer-build-x11-tests",
|
||||
"ubuntu-24.04-x64",
|
||||
"windows-11_24H2-msvc2022-developer-build",
|
||||
"ios-universal",
|
||||
"ios-device",
|
||||
"documentation-warnings",
|
||||
],
|
||||
macos.yaml: [
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Module only: True
|
||||
Configurations:
|
||||
-
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease']
|
||||
Configure arguments: ''
|
||||
@@ -21,14 +21,14 @@ Configurations:
|
||||
Configure arguments: ''
|
||||
Environment variables: []
|
||||
-
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'DebugAndRelease']
|
||||
Configure arguments: ''
|
||||
Environment variables: []
|
||||
# without tests
|
||||
-
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'DisableTests']
|
||||
Configure arguments: ''
|
||||
@@ -36,7 +36,7 @@ Configurations:
|
||||
Environment script: ['%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat', 'amd64']
|
||||
# oldest Qt version
|
||||
-
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'OldestQt']
|
||||
Configure arguments: ''
|
||||
@@ -55,7 +55,7 @@ Configurations:
|
||||
Configure arguments: ''
|
||||
Environment variables: []
|
||||
-
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'DebugAndRelease', 'OldestQt']
|
||||
Configure arguments: ''
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml,
|
||||
cmake_platforms_target_harmonyos.yaml,
|
||||
cmake_platforms_static_tests.yaml,
|
||||
integrity.yaml,
|
||||
ios-tests.yaml,
|
||||
address_sanitizer_platforms.yaml,
|
||||
linux_android_tests_multi_abi.yaml,
|
||||
wasm_qtbase_tests.yaml,
|
||||
|
||||
@@ -7,7 +7,7 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-quick-bridges-csharp'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', "DebugAndRelease", 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesCsharp']
|
||||
|
||||
@@ -10,7 +10,7 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-quick-bridges-java'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesJava']
|
||||
|
||||
@@ -11,7 +11,7 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-quick-bridges-python'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesPython']
|
||||
|
||||
@@ -9,7 +9,7 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-quick-bridges-rust'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesRust']
|
||||
|
||||
@@ -9,7 +9,7 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-quick-bridges-swift'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesSwift']
|
||||
|
||||
@@ -12,21 +12,21 @@ Include: [
|
||||
Configurations:
|
||||
-
|
||||
Id: 'windows-quick-bridges-rust'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesRust']
|
||||
|
||||
-
|
||||
Id: 'windows-quick-bridges-python'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesPython']
|
||||
|
||||
-
|
||||
Id: 'windows-quick-bridges-java'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Platform dependency: 'windows-quick-bridges'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesJava']
|
||||
|
||||
@@ -2,7 +2,6 @@ Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml,
|
||||
integrity.yaml,
|
||||
ios-tests.yaml,
|
||||
address_sanitizer_platforms.yaml,
|
||||
wasm_qtdeclarative_tests.yaml,
|
||||
cmake_platforms_static_tests.yaml,
|
||||
|
||||
@@ -13,6 +13,6 @@ Configurations:
|
||||
Features: ['TestOnly']
|
||||
-
|
||||
Id: 'qtgp-on-windows-24h2'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['TestOnly']
|
||||
|
||||
@@ -5,7 +5,7 @@ Include: [
|
||||
'rhel-9.6'
|
||||
],
|
||||
cmake_platforms_target_android.yaml: [
|
||||
'android-15-x86_64-on-linux'
|
||||
'android-17-x86_64-on-linux'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml,
|
||||
address_sanitizer_platforms.yaml
|
||||
]
|
||||
Configurations: []
|
||||
@@ -7,13 +7,13 @@ Include: [
|
||||
"ubuntu-22.04",
|
||||
"ubuntu-22.04-developer-build",
|
||||
"ubuntu-24.04-arm64",
|
||||
"opensuse-15.6-developer-build",
|
||||
"ubuntu-24.04-x64",
|
||||
"opensuse-16.0-developer-build",
|
||||
"sles-15_sp6-static",
|
||||
"windows-10_22h2-msvc2022",
|
||||
"rhel-9.6",
|
||||
"windows-11_24h2-mingw13",
|
||||
"windows-11_24H2-mingw13-developer-build",
|
||||
"windows-11_24h2-mingw15",
|
||||
"windows-11_24H2-mingw15-developer-build",
|
||||
"windows-11_24H2-llvm",
|
||||
"windows-11_24H2-msvc2022",
|
||||
"windows-11_23h2-arm64-msvc2022"
|
||||
@@ -46,7 +46,7 @@ Configurations:
|
||||
'TARGET_CONFIGURE_ARGS=-release -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARM64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd -qtlibinfix TestInfix',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARM64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
|
||||
'QT_YOCTO_ENVSETUP={{.Env.QEMUARM64_TOOLCHAIN_ENVSETUP}}',
|
||||
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
|
||||
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}',
|
||||
'GST_PLUGIN_SCANNER={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
|
||||
@@ -9,13 +9,12 @@ Include: [
|
||||
"ubuntu-22.04",
|
||||
"ubuntu-22.04-developer-build",
|
||||
"ubuntu-24.04-arm64",
|
||||
"opensuse-15.6-developer-build",
|
||||
"opensuse-16.0-developer-build",
|
||||
"sles-15_sp6-static",
|
||||
"windows-10_22h2-msvc2022",
|
||||
"rhel-9.6",
|
||||
"windows-11_24h2-mingw13",
|
||||
"windows-11_24H2-mingw13-developer-build",
|
||||
"windows-11_24h2-mingw15",
|
||||
"windows-11_24H2-mingw15-developer-build",
|
||||
"windows-11_24H2-llvm",
|
||||
"windows-11_24H2-msvc2022",
|
||||
"windows-11_23h2-arm64-msvc2022"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml,
|
||||
address_sanitizer_platforms.yaml
|
||||
address_sanitizer_platforms.yaml,
|
||||
offline_documentation.yaml
|
||||
]
|
||||
Configurations: []
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'rhel-9.6',
|
||||
'ubuntu-24.04-arm64',
|
||||
'ubuntu-24.04-x64-developer-build'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
@@ -46,7 +46,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-quick-bridges'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Packaging', 'Sccache', "DebugAndRelease", 'UseConfigure', 'DisableTests', 'Insignificant']
|
||||
Configure arguments: >
|
||||
|
||||
@@ -4,7 +4,6 @@ Include: [
|
||||
"macos-universal-on-arm64",
|
||||
],
|
||||
cmake_platforms.yaml: [
|
||||
"opensuse-15.6-developer-build",
|
||||
"opensuse-16.0-developer-build",
|
||||
]
|
||||
]
|
||||
@@ -293,7 +292,7 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-static-quicklite'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-71'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
|
||||
Configure arguments: >
|
||||
@@ -562,141 +561,6 @@ Configurations:
|
||||
]
|
||||
-
|
||||
Id: 'wasm-quick-minimal'
|
||||
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Platform dependency: 'opensuse-15.6-developer-build'
|
||||
Features: ['Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
|
||||
Environment variables: [
|
||||
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
|
||||
'TARGET_CMAKE_ARGS=
|
||||
-DCMAKE_CXX_FLAGS="-flto"
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-flto"',
|
||||
'TARGET_CONFIGURE_ARGS=
|
||||
-release
|
||||
-platform wasm-emscripten
|
||||
-nomake examples
|
||||
-nomake tests
|
||||
-feature-thread
|
||||
-optimize-size
|
||||
-static
|
||||
-ltcg
|
||||
-feature-c++20
|
||||
-disable-deprecated-up-to 0x070000
|
||||
-no-feature-sql
|
||||
-no-feature-xml
|
||||
-no-feature-printsupport
|
||||
-no-feature-dbus
|
||||
-no-feature-vnc
|
||||
-no-feature-future
|
||||
-no-feature-concurrent
|
||||
-no-feature-process
|
||||
-no-feature-processenvironment
|
||||
-no-feature-multiprocess
|
||||
-no-feature-sharedmemory
|
||||
-no-feature-permissions
|
||||
-no-feature-udpsocket
|
||||
-no-feature-localserver
|
||||
-no-feature-picture
|
||||
-no-feature-pdf
|
||||
-no-feature-accessibility
|
||||
-no-feature-clipboard
|
||||
-no-feature-draganddrop
|
||||
-no-feature-image_heuristic_mask
|
||||
-no-feature-imageformat_bmp
|
||||
-no-feature-imageformat_ppm
|
||||
-no-feature-imageformat_xbm
|
||||
-no-feature-cssparser
|
||||
-no-feature-action
|
||||
-no-feature-whatsthis
|
||||
-no-feature-vkgen
|
||||
-no-feature-backtrace
|
||||
-no-feature-stack_clash_protection
|
||||
-no-feature-mimetype
|
||||
-no-feature-textmarkdownreader
|
||||
-no-feature-textodfwriter
|
||||
-no-feature-testlib
|
||||
-no-feature-texthtmlparser
|
||||
-no-feature-textmarkdownwriter
|
||||
-no-feature-imageio-text-loading
|
||||
-no-feature-image_text
|
||||
-no-feature-proxymodel
|
||||
-no-feature-filesystemmodel
|
||||
-no-feature-wheelevent
|
||||
-no-feature-tabletevent
|
||||
-no-feature-icu
|
||||
-no-feature-systemtrayicon
|
||||
-no-feature-raster-64bit
|
||||
-no-feature-raster-fp
|
||||
-no-feature-undostack
|
||||
-no-feature-undogroup
|
||||
-no-feature-undocommand
|
||||
-no-feature-sctp
|
||||
-no-feature-dtls
|
||||
-no-feature-networkproxy
|
||||
-no-feature-getifaddrs
|
||||
-no-feature-ipv6ifname
|
||||
-no-feature-libresolv
|
||||
-no-feature-libproxy
|
||||
-no-feature-networkinterface
|
||||
-no-feature-networkdiskcache
|
||||
-no-feature-topleveldomain
|
||||
-no-feature-gssapi
|
||||
-no-feature-sha3-fast
|
||||
-no-feature-systemsemaphore
|
||||
-no-feature-gestures
|
||||
-no-feature-jalalicalendar
|
||||
-no-feature-hijricalendar
|
||||
-no-feature-islamiccivilcalendar
|
||||
-no-feature-timezone
|
||||
-no-feature-timezone_tzdb
|
||||
-no-feature-im
|
||||
-no-feature-graphicsframecapture
|
||||
-no-feature-library
|
||||
-no-feature-filesystemwatcher
|
||||
-no-feature-gif
|
||||
-no-feature-ico
|
||||
-no-feature-sessionmanager
|
||||
-no-feature-emojisegmenter
|
||||
-no-feature-egl
|
||||
-no-feature-metal
|
||||
-no-feature-vulkan
|
||||
-no-feature-openvg
|
||||
-no-feature-wasm-simd128
|
||||
-no-feature-wasm-exceptions
|
||||
-no-feature-wasm-jspi
|
||||
-no-feature-harfbuzz',
|
||||
'NON_QTBASE_CMAKE_ARGS=
|
||||
-DFEATURE_qml_network=off
|
||||
-DFEATURE_qml_ssl=off
|
||||
-DFEATURE_qml_jit=off
|
||||
-DFEATURE_qml_debug=off
|
||||
-DFEATURE_qml_preview=off
|
||||
-DFEATURE_qml_xml_http_request=off
|
||||
-DFEATURE_qml_locale=off
|
||||
-DFEATURE_qml_worker_script=off
|
||||
-DFEATURE_qml_xmllistmodel=off
|
||||
-DFEATURE_quick_canvas=off
|
||||
-DFEATURE_quick_designer=off
|
||||
-DFEATURE_quick_flipable=off
|
||||
-DFEATURE_quick_gridview=off
|
||||
-DFEATURE_quick_tableview=off
|
||||
-DFEATURE_quick_treeview=off
|
||||
-DFEATURE_quick_particles=off
|
||||
-DFEATURE_quick_pathview=off
|
||||
-DFEATURE_quick_sprite=off
|
||||
-DFEATURE_quick_draganddrop=off
|
||||
-DFEATURE_quick_pixmap_cache_threaded_download=off
|
||||
-DFEATURE_qml_table_model=off
|
||||
-DFEATURE_qml_tree_model=off
|
||||
-DFEATURE_quicktemplates2_hover=off
|
||||
-DFEATURE_quicktemplates2_multitouch=off
|
||||
-DFEATURE_quicktemplates2_calendar=off
|
||||
-DFEATURE_qdoc=off',
|
||||
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
|
||||
]
|
||||
-
|
||||
Id: 'wasm-quick-minimal-new'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
|
||||
@@ -3,7 +3,7 @@ Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"documentation-warnings",
|
||||
"rhel-9.6",
|
||||
'windows-11_24h2-mingw13',
|
||||
'windows-11_24h2-mingw15',
|
||||
],
|
||||
macos.yaml: [
|
||||
'macos-universal-on-arm64'
|
||||
@@ -12,7 +12,7 @@ Include: [
|
||||
'android-arm64-on-macos',
|
||||
'android-armv7-on-windows',
|
||||
'android-9-x86-on-linux',
|
||||
'android-16-x86_64-on-linux'
|
||||
'android-17-x86_64-on-linux'
|
||||
],
|
||||
offline_documentation.yaml
|
||||
]
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
tqtc-qtmcp.yaml: [
|
||||
'rhel-9.6-nohttp',
|
||||
'windows-11_24H2-msvc2022-nohttp',
|
||||
'windows-11_24h2-mingw15-nohttp',
|
||||
'windows-11_24H2-llvm-nohttp',
|
||||
'macos-universal-on-arm64-nohttp',
|
||||
'macos-14-x86_64-tests-nohttp',
|
||||
'macos-15-x86_64-tests-nohttp',
|
||||
'macos-26-x86_64-tests-nohttp',
|
||||
'macos-14-arm64-tests-nohttp',
|
||||
'macos-15-arm64-tests-nohttp',
|
||||
'macos-26-arm64-tests-nohttp'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
@@ -5,11 +5,137 @@ Include: [
|
||||
'ubuntu-22.04-x11-tests',
|
||||
'ubuntu-24.04-x64',
|
||||
'ubuntu-24.04-x64-x11-tests',
|
||||
'windows-11_24H2-msvc2022'
|
||||
'rhel-9.6',
|
||||
'rhel-10.0',
|
||||
'windows-11_24H2-msvc2022',
|
||||
'windows-11_24H2-msvc2026',
|
||||
'windows-11_24h2-mingw15',
|
||||
'windows-11_24H2-llvm'
|
||||
],
|
||||
macos.yaml: [
|
||||
'macos-arm64-developer-build',
|
||||
'macos-14-arm64-developer-build-tests'
|
||||
]
|
||||
'macos-universal-on-arm64',
|
||||
'macos-14-x86_64-tests',
|
||||
'macos-15-x86_64-tests',
|
||||
'macos-26-x86_64-tests',
|
||||
'macos-14-arm64-tests',
|
||||
'macos-15-arm64-tests',
|
||||
'macos-26-arm64-tests'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
-
|
||||
Id: 'rhel-(9\.6|10\.0)|windows-11_24H2-(msvc2022|llvm)|windows-11_24h2-mingw15|macos-universal-on-arm64|macos-(14|15|26)-(x86_64|arm64)-tests'
|
||||
-Features: ['Packaging']
|
||||
|
||||
Configurations:
|
||||
# RHEL 9.6
|
||||
-
|
||||
Id: 'rhel-9.6-nohttp'
|
||||
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -no-feature-liburing -bundled-xcb-xinput'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt -DQT_FEATURE_httpmcp=OFF',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
|
||||
# Windows 11 MSVC 2022
|
||||
-
|
||||
Id: 'windows-11_24H2-msvc2022-nohttp'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'MSVC2022'
|
||||
Features: ['Sccache', 'Packaging', "DebugAndRelease", 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON -DQT_FEATURE_httpmcp=OFF',
|
||||
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
|
||||
'VCPKG_HOST_TRIPLET=x64-windows-qt',
|
||||
'VCPKG_TARGET_TRIPLET=x64-windows-qt',
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
|
||||
'WEBVIEW2_SDK_ROOT={{.Env.WEBVIEW2_SDK_ROOT_PATH}}',
|
||||
]
|
||||
|
||||
# Windows 11 MinGW 15
|
||||
-
|
||||
Id: 'windows-11_24h2-mingw15-nohttp'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Mingw'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DQT_FEATURE_httpmcp=OFF',
|
||||
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}',
|
||||
]
|
||||
|
||||
# Windows 11 LLVM-MinGW
|
||||
-
|
||||
Id: 'windows-11_24H2-llvm-nohttp'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'Packaging', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
|
||||
Environment variables: [
|
||||
'Path=C:\llvm-mingw\bin;{{.Env.Path}}',
|
||||
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_LLVM_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DQT_FEATURE_httpmcp=OFF',
|
||||
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_llvm_mingw}}',
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
|
||||
]
|
||||
|
||||
# macOS universal build, tested on all supported macOS versions
|
||||
-
|
||||
Id: 'macos-universal-on-arm64-nohttp'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Target arch: 'x86_64-arm64'
|
||||
Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -framework'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_open62541_security=OFF -DQT_FEATURE_httpmcp=OFF',
|
||||
'VCPKG_HOST_TRIPLET=universal-osx-qt',
|
||||
'VCPKG_TARGET_TRIPLET=universal-osx-qt',
|
||||
]
|
||||
-
|
||||
Id: 'macos-14-x86_64-tests-nohttp'
|
||||
Template: 'qtci-macos-14-x86_64-106'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64-nohttp'
|
||||
-
|
||||
Id: 'macos-15-x86_64-tests-nohttp'
|
||||
Template: 'qtci-macos-15-x86_64-104'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64-nohttp'
|
||||
-
|
||||
Id: 'macos-26-x86_64-tests-nohttp'
|
||||
Template: 'qtci-macos-26-x86_64-103'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64-nohttp'
|
||||
-
|
||||
Id: 'macos-14-arm64-tests-nohttp'
|
||||
Template: 'qtci-macos-14-arm-108'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64-nohttp'
|
||||
-
|
||||
Id: 'macos-15-arm64-tests-nohttp'
|
||||
Template: 'qtci-macos-15-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64-nohttp'
|
||||
-
|
||||
Id: 'macos-26-arm64-tests-nohttp'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Compiler: 'Clang'
|
||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||
Platform dependency: 'macos-universal-on-arm64-nohttp'
|
||||
|
||||
@@ -2,15 +2,8 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'webassembly-linux-thread-asyncify-tests'
|
||||
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'webassembly-linux-thread-asyncify'
|
||||
-
|
||||
Id: 'webassembly-linux-thread-asyncify-tests-new'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Platform dependency: 'webassembly-linux-thread-asyncify-new'
|
||||
Platform dependency: 'webassembly-linux-thread-asyncify'
|
||||
|
||||
@@ -2,15 +2,8 @@ Version: 2
|
||||
Configurations:
|
||||
-
|
||||
Id: 'webassembly-linux-thread-asyncify-tests'
|
||||
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'webassembly-linux-thread-asyncify'
|
||||
-
|
||||
Id: 'webassembly-linux-thread-asyncify-tests-new'
|
||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'webassembly-linux-thread-asyncify-new'
|
||||
Platform dependency: 'webassembly-linux-thread-asyncify'
|
||||
|
||||
@@ -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.1-desktop-arm64.iso"
|
||||
# ISO_CHECKSUM_FILE="/tmp/SHA256SUMS"
|
||||
|
||||
# Usually reusable without changes.
|
||||
IMAGE_PREFIX="qtci-linux"
|
||||
ARCH="aarch64"
|
||||
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,137 @@
|
||||
#!/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_50_vars="${ARTIFACT_DIR}/${image_50_name}_VARS.fd"
|
||||
image_51_vars="${ARTIFACT_DIR}/${image_51_name}_VARS.fd"
|
||||
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")"
|
||||
)
|
||||
|
||||
# Stage 50 may have been skipped because its image already existed. In that
|
||||
# case its temporary efivars.fd was removed at startup, so use a separate copy
|
||||
# of the Stage 51 variable store for the cloned image.
|
||||
stage_51_vars="${stage_51_output}/efivars.fd"
|
||||
if [[ ! -f "$stage_51_vars" ]]; then
|
||||
echo "ERROR: Stage ${CUSTOM_INDEX} UEFI variable store is missing:" >&2
|
||||
echo " $stage_51_vars" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -f "${stage_50_output}/efivars.fd" ]]; then
|
||||
stage_50_vars="${stage_50_output}/efivars.fd"
|
||||
else
|
||||
stage_50_vars="$stage_51_vars"
|
||||
echo "Stage ${MINIMAL_INDEX} UEFI variable store was not retained; using a separate copy of:"
|
||||
echo " $stage_51_vars"
|
||||
fi
|
||||
|
||||
cp "$stage_50_vars" "$image_50_vars"
|
||||
cp "$stage_51_vars" "$image_51_vars"
|
||||
|
||||
rm -f "$image_51_seed"
|
||||
|
||||
echo
|
||||
echo "Created independent images:"
|
||||
echo " $image_50"
|
||||
echo " $image_51"
|
||||
echo "UEFI variable stores:"
|
||||
echo " $image_50_vars"
|
||||
echo " $image_51_vars"
|
||||
echo "Checksums:"
|
||||
echo " ${image_50}.sha256"
|
||||
echo " ${image_51}.sha256"
|
||||
@@ -0,0 +1,2 @@
|
||||
instance-id: qtci-ubuntu26-packer
|
||||
local-hostname: qtci-ubuntu26-arm64
|
||||
@@ -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-arm64
|
||||
username: qt
|
||||
password: "$6$qtciubuntu2604$FAeHIUtg1iOarKFnnDZim5fWEJ6ZaaYXSc360m68XFTqurIBWNBxsmUDKj.8mGJkVDKlWjFdKZLfrqHYhuBH8/"
|
||||
ssh:
|
||||
install-server: true
|
||||
allow-pw: true
|
||||
storage:
|
||||
layout:
|
||||
name: direct
|
||||
shutdown: reboot
|
||||
@@ -0,0 +1,214 @@
|
||||
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-aarch64"
|
||||
machine_type = "virt,gic-version=max"
|
||||
efi_boot = true
|
||||
efi_firmware_code = "/usr/share/AAVMF/AAVMF_CODE.fd"
|
||||
efi_firmware_vars = "/usr/share/AAVMF/AAVMF_VARS.fd"
|
||||
qemuargs = [
|
||||
["-device", "ramfb"],
|
||||
["-device", "nec-usb-xhci,id=usb"],
|
||||
["-device", "usb-kbd,bus=usb.0"],
|
||||
["-monitor", "none"],
|
||||
["-serial", "file:/tmp/packer-stage-50-serial.log"]
|
||||
]
|
||||
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 = "20s"
|
||||
|
||||
# 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 = [
|
||||
"<esc><wait>c<wait>",
|
||||
"linux /casper/vmlinuz autoinstall ds=nocloud-net\\;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ console=ttyAMA0,115200n8 ---<enter><wait>",
|
||||
"initrd /casper/initrd<enter><wait>",
|
||||
"boot<enter>"
|
||||
]
|
||||
|
||||
headless = true
|
||||
vnc_bind_address = "0.0.0.0"
|
||||
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-aarch64"
|
||||
machine_type = "virt,gic-version=max"
|
||||
efi_boot = true
|
||||
efi_firmware_code = "/usr/share/AAVMF/AAVMF_CODE.fd"
|
||||
efi_firmware_vars = "/usr/share/AAVMF/AAVMF_VARS.fd"
|
||||
qemuargs = [
|
||||
["-device", "ramfb"],
|
||||
["-device", "nec-usb-xhci,id=usb"],
|
||||
["-device", "usb-kbd,bus=usb.0"],
|
||||
["-monitor", "none"], # prevents Packer boot keystrokes from being interpreted as QEMU monitor commands.
|
||||
["-serial", "file:/tmp/packer-stage-51-serial.log"]
|
||||
]
|
||||
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 = "0.0.0.0"
|
||||
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-arm64.zip"
|
||||
coin_setup_zip="/tmp/coin-setup-linux-arm64.zip"
|
||||
coin_setup_dir="/tmp/coin-setup-linux-arm64"
|
||||
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
|
||||
@@ -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
|
||||
@@ -63,3 +63,9 @@ https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
|
||||
* Modify 'Windows Software Development Kit' from Add or remove programs
|
||||
- Add feature 'Debugging Tools for Windows'
|
||||
############################################################
|
||||
|
||||
Visual Studio 2026 and build tools were later updated to 17.14.33 in VS installer.
|
||||
This updated (Latest) MSVC components to:
|
||||
- MSVC v14.44.35211.0
|
||||
- Windows 11 SDK (10.0.26100.7705)
|
||||
.NET SDK was added
|
||||
|
||||
@@ -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="36.0.0"
|
||||
sdkApiLevel="android-36"
|
||||
sdkBuildToolsVersion="37.0.0"
|
||||
sdkApiLevel="android-37.0"
|
||||
toolsSha1="5fdcc763663eefb86a5b8879697aa6088b041e70"
|
||||
|
||||
ndkVersionLatest="r27c"
|
||||
@@ -78,18 +78,25 @@ function InstallNdk() {
|
||||
ndkTargetFile="/tmp/$ndkFile"
|
||||
ndkSourceFile="$basePath/$ndkFile"
|
||||
|
||||
ndkTargetDir="$targetFolder/$ndkVersion"
|
||||
sudo mkdir -p "$ndkTargetDir"
|
||||
|
||||
DownloadURL "$ndkSourceFile" "$ndkSourceFile" "$ndkSha1" "$ndkTargetFile"
|
||||
echo "Unzipping Android NDK to '$targetFolder'"
|
||||
echo "Unzipping Android NDK to '$ndkTargetDir'"
|
||||
# Get the package base directory name as string
|
||||
zipBase=$(sudo zipinfo -1 "$ndkTargetFile" 2>/dev/null | awk '!seen {sub("/.*",""); print; seen=1}')
|
||||
sudo unzip -q "$ndkTargetFile" -d "$targetFolder"
|
||||
sudo unzip -q "$ndkTargetFile" -d "$ndkTargetDir"
|
||||
rm "$ndkTargetFile"
|
||||
androidNdkRoot="${targetFolder}/${zipBase}"
|
||||
androidNdkRoot="${ndkTargetDir}/${zipBase}"
|
||||
}
|
||||
|
||||
InstallNdk $ndkVersionLatest $ndkSha1Latest
|
||||
SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$androidNdkRoot"
|
||||
|
||||
# To be used by vcpkg
|
||||
SetEnvVar "ANDROID_NDK_HOME" "$androidNdkRoot"
|
||||
export ANDROID_NDK_HOME="$androidNdkRoot"
|
||||
|
||||
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
|
||||
InstallNdk $ndkVersionPreview $ndkSha1Preview
|
||||
SetEnvVar "ANDROID_NDK_ROOT_PREVIEW" "$androidNdkRoot"
|
||||
@@ -105,10 +112,6 @@ if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then
|
||||
SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY2" "$androidNdkRoot"
|
||||
fi
|
||||
|
||||
# To be used by vcpkg
|
||||
SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersionLatest"
|
||||
export ANDROID_NDK_HOME="$targetFolder/android-ndk-$ndkVersionLatest"
|
||||
|
||||
echo "Changing ownership of Android files."
|
||||
if uname -a |grep -q "el7"; then
|
||||
sudo chown -R qt:wheel "$targetFolder"
|
||||
@@ -158,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 37.1.11"
|
||||
# See https://developer.android.com/studio/emulator_archive
|
||||
emulatorFileName="emulator-linux_x64-15917651.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="1b1f78891abf8ec268264356e1365c25519e8379"
|
||||
DownloadURL "$emulatorCiUrl" "$emulatorUrl" "$emulatorSha1" "$emulatorTargetFile"
|
||||
echo "Unzipping the Android Emulator to '$sdkTargetFolder'"
|
||||
sudo unzip -o -q "$emulatorTargetFile" -d "$sdkTargetFolder"
|
||||
@@ -184,36 +188,21 @@ echo "Unzipping the Android 9 to $minVersionDestination"
|
||||
sudo unzip -o -q "$minVersionFilePath" -d "$minVersionDestination"
|
||||
rm "$minVersionFilePath"
|
||||
|
||||
echo "Download and unzip Android 16 System Image"
|
||||
maxVersionFileName="x86_64-36_r07.zip"
|
||||
maxVersionDestination="$sdkTargetFolder/system-images/android-36/google_apis/"
|
||||
maxVersionFilePath="$maxVersionDestination/$maxVersionFileName"
|
||||
maxVersionCiUrl="$basePath/system_images/google_apis/$maxVersionFileName"
|
||||
maxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$maxVersionFileName"
|
||||
maxVersionSha1="c6bf44bdcd885bb902b4ba752d111a073ad7a817"
|
||||
|
||||
mkdir -p "$maxVersionDestination"
|
||||
DownloadURL "$maxVersionCiUrl" "$maxVersionUrl" "$maxVersionSha1" "$maxVersionFilePath"
|
||||
|
||||
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..."
|
||||
@@ -222,11 +211,8 @@ ls -l "$sdkTargetFolder"
|
||||
echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \
|
||||
-k "system-images;android-28;google_apis;x86"
|
||||
|
||||
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" \
|
||||
|
||||
@@ -252,7 +252,7 @@
|
||||
"_active": true
|
||||
},
|
||||
"Qt-StrictIterators": {
|
||||
"_active": true
|
||||
"_active": false
|
||||
},
|
||||
"Qt-TemporaryIterator": {
|
||||
"_active": true
|
||||
|
||||
@@ -11,13 +11,26 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
majorminorversion="3.30"
|
||||
version="3.30.5"
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-linux-x86_64.tar.gz"
|
||||
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-linux-x86_64.tar.gz"
|
||||
SHA1="61b339cac5f110d5ed2934f66a26c2e991945e01"
|
||||
majorminorversion="4.3"
|
||||
version="4.3.2"
|
||||
|
||||
uname_m="$(uname -m)"
|
||||
case "$uname_m" in
|
||||
x86_64|amd64)
|
||||
SHA1="736c0722ed8393b3eb74fd573f6c9c245770206a"
|
||||
arch="x86_64"
|
||||
;;
|
||||
arm64|aarch64)
|
||||
SHA1="a173eb910c808f561422feb45fe1fe57c3e346fa"
|
||||
arch="aarch64"
|
||||
;;
|
||||
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
|
||||
esac
|
||||
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-linux-$arch.tar.gz"
|
||||
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-linux-$arch.tar.gz"
|
||||
targetFolder="/opt/cmake-$version"
|
||||
appPrefix="cmake-$version-linux-x86_64"
|
||||
appPrefix="cmake-$version-linux-$arch"
|
||||
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user