From 32472587004226f7db067f05b73ca229c58786b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marianne=20Yrj=C3=A4n=C3=A4?= Date: Fri, 23 May 2025 16:06:12 +0300 Subject: [PATCH] Enable QNX8.0 builds in CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added CI configs for QNX8.0. Toolchain updated to latest version. Qemu build files updated for new toolchain. Task-number: QTBUG-131708 Change-Id: I25f5386c85f6bc2f87c69bf820d1bacc0ebd2a47 Reviewed-by: Simo Fält --- coin/platform_configs/cmake_platforms.yaml | 2 +- ...710.yaml => cmake_platforms_qemu_qnx.yaml} | 41 +++++++++++++++++-- coin/platform_configs/precheck.yaml | 2 +- .../qtsaferenderer-runtime.yaml | 2 +- coin/platform_configs/qtsaferenderer.yaml | 2 +- coin/provisioning/common/linux/qnx_800.sh | 8 +++- .../800/local/snippets/ifs_files.custom | 3 ++ .../800/local/snippets/post_start.custom | 2 +- .../800/local/snippets/system_files.custom | 2 +- 9 files changed, 53 insertions(+), 11 deletions(-) rename coin/platform_configs/{cmake_platforms_qemu_qnx710.yaml => cmake_platforms_qemu_qnx.yaml} (50%) create mode 100644 coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/ifs_files.custom diff --git a/coin/platform_configs/cmake_platforms.yaml b/coin/platform_configs/cmake_platforms.yaml index 1ace2b28..9d88f7de 100644 --- a/coin/platform_configs/cmake_platforms.yaml +++ b/coin/platform_configs/cmake_platforms.yaml @@ -1,7 +1,7 @@ Version: 2 Include: [ cmake_platforms_qemu.yaml, - cmake_platforms_qemu_qnx710.yaml, + cmake_platforms_qemu_qnx.yaml, cmake_platforms_target_android.yaml, cmake_platforms_wasm.yaml, macos.yaml diff --git a/coin/platform_configs/cmake_platforms_qemu_qnx710.yaml b/coin/platform_configs/cmake_platforms_qemu_qnx.yaml similarity index 50% rename from coin/platform_configs/cmake_platforms_qemu_qnx710.yaml rename to coin/platform_configs/cmake_platforms_qemu_qnx.yaml index 2da7cc03..4b34eae7 100644 --- a/coin/platform_configs/cmake_platforms_qemu_qnx710.yaml +++ b/coin/platform_configs/cmake_platforms_qemu_qnx.yaml @@ -14,7 +14,7 @@ Configurations: '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=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= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + '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', 'VCPKG_TARGET_TRIPLET=x64-qnx-qt', @@ -31,7 +31,7 @@ Configurations: Environment variables: [ 'TARGET_CONFIGURE_ARGS=-release -force-debug-info -no-dbus -nomake examples', 'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}/qnx-toolchain-aarch64le.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', - 'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_SYSTEM_VERSION=710 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', 'VCPKG_HOST_TRIPLET=x64-linux-qt', 'VCPKG_TARGET_TRIPLET=arm64-qnx-qt', ] @@ -47,7 +47,42 @@ Configurations: Environment variables: [ 'TARGET_CONFIGURE_ARGS=-release -force-debug-info -no-dbus -nomake examples', 'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}/qnx-toolchain-armv7le.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', - 'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_SYSTEM_VERSION=710 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', 'VCPKG_HOST_TRIPLET=x64-linux-qt', 'VCPKG_TARGET_TRIPLET=armv7-qnx-qt', ] +- + Id: 'qnx-800-x86_64-developer-build-on-linux' + Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' + Target os: 'QNX_800' + Target arch: 'x86_64' + Compiler: 'GCC' + Target compiler: 'QCC' + Platform dependency: 'ubuntu-22.04' + Features: ['Packaging', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests'] + 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=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', + 'VCPKG_TARGET_TRIPLET=x64-qnx-qt', + ] +- + Id: 'qnx-800-arm64-on-linux' + Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' + Target os: 'QNX_800' + Target arch: 'arm64' + Compiler: 'GCC' + Target compiler: 'QCC' + Platform dependency: 'ubuntu-22.04' + Features: ['Packaging', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-release -force-debug-info -no-dbus -nomake examples', + 'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_800}}/qnx-toolchain-aarch64le.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_SYSTEM_VERSION=802 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'VCPKG_HOST_TRIPLET=x64-linux-qt', + 'VCPKG_TARGET_TRIPLET=arm64-qnx-qt', + ] diff --git a/coin/platform_configs/precheck.yaml b/coin/platform_configs/precheck.yaml index dbd7f25b..91d196ea 100644 --- a/coin/platform_configs/precheck.yaml +++ b/coin/platform_configs/precheck.yaml @@ -18,7 +18,7 @@ Include: [ cmake_platforms_qemu.yaml: [ "qemu-armv7-developer-build" ], - cmake_platforms_qemu_qnx710.yaml: [ + cmake_platforms_qemu_qnx.yaml: [ "qnx-710-x86_64-developer-build-on-linux" ] ] diff --git a/coin/platform_configs/qtsaferenderer-runtime.yaml b/coin/platform_configs/qtsaferenderer-runtime.yaml index 2fb5e0cb..ad992885 100644 --- a/coin/platform_configs/qtsaferenderer-runtime.yaml +++ b/coin/platform_configs/qtsaferenderer-runtime.yaml @@ -18,7 +18,7 @@ Include: [ "windows-11_24H2-msvc2022", "windows-11_22h2-arm64-msvc2022" ], - cmake_platforms_qemu_qnx710.yaml: [ + cmake_platforms_qemu_qnx.yaml: [ "qnx-710-x86_64-developer-build-on-linux", "qnx-710-arm64-on-linux", "qnx-710-armv7-on-linux" diff --git a/coin/platform_configs/qtsaferenderer.yaml b/coin/platform_configs/qtsaferenderer.yaml index 548b75b9..3c2dbc39 100644 --- a/coin/platform_configs/qtsaferenderer.yaml +++ b/coin/platform_configs/qtsaferenderer.yaml @@ -19,7 +19,7 @@ Include: [ "windows-11_24H2-msvc2022", "windows-11_22h2-arm64-msvc2022" ], - cmake_platforms_qemu_qnx710.yaml: [ + cmake_platforms_qemu_qnx.yaml: [ "qnx-710-x86_64-developer-build-on-linux", "qnx-710-arm64-on-linux", "qnx-710-armv7-on-linux" diff --git a/coin/provisioning/common/linux/qnx_800.sh b/coin/provisioning/common/linux/qnx_800.sh index 77730602..ab3d8cd5 100755 --- a/coin/provisioning/common/linux/qnx_800.sh +++ b/coin/provisioning/common/linux/qnx_800.sh @@ -43,9 +43,9 @@ if [ ! -d "$targetFolder" ]; then fi # QNX SDP -sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20240930.tar.xz" +sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20250612.tar.xz" targetFile="qnx800.tar.xz" -sha1="a86d6e001e4ad46f50ed430fb85e8230e730751b" +sha1="d7ca20be6867b569067a17e8b3fa633c7eadad89" DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder" sudo cp "$aarch64le_toolchain" "$targetPath" @@ -79,6 +79,10 @@ then exit 1 fi +# Target folder has been renamed on QNX8.0 SDP. Link is created to simplify environment +# setting at qtBase +sudo ln -s $targetPath/target/qnx $targetPath/target/qnx7 + # Set env variables SetEnvVar "QNX_800" "$targetPath" SetEnvVar "QNX_800_QEMU" "$qemuTargetPath" diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/ifs_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/ifs_files.custom new file mode 100644 index 00000000..f3cf675e --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/ifs_files.custom @@ -0,0 +1,3 @@ +# local/snippets/ifs_files.custom +# Placeholder for local list of files to add to ifs +/usr/libexec/sshd-session=usr/libexec/sshd-session diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/post_start.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/post_start.custom index 4c0a6552..62f77935 100644 --- a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/post_start.custom +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/post_start.custom @@ -21,7 +21,7 @@ fc-cache & echo "---> Restart ssh daemon" slay sshd -/system/xbin/sshd -f /system/data/etc/ssh/sshd_config +/system/bin/sshd -f /system/data/etc/ssh/sshd_config # Add default route so QNX knows where to send # requests for unknown network diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/system_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/system_files.custom index b7e8e280..44afc12c 100644 --- a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/system_files.custom +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/system_files.custom @@ -10,7 +10,7 @@ AuthenticationMethods none PermitEmptyPasswords yes PermitRootLogin yes PidFile none -Subsystem sftp /system/xbin/sftp-server +Subsystem sftp /system/bin/sftp-server } # libraries Qt requires