mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-17 02:35:30 +08:00
Compare commits
61 Commits
v6.11.0-be
...
6.11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9958d9c9ac | ||
|
|
bbd3c7029f | ||
|
|
37f53cc0d9 | ||
|
|
898440075b | ||
|
|
40944f18c3 | ||
|
|
7d379bca12 | ||
|
|
e1b2031f68 | ||
|
|
7c1d6903ed | ||
|
|
31aee9fcbb | ||
|
|
33eb44f592 | ||
|
|
546f7a3ba8 | ||
|
|
65d1bc2995 | ||
|
|
3c5a67eacb | ||
|
|
7f6d01f3a9 | ||
|
|
b58994808e | ||
|
|
3d1a7e0b80 | ||
|
|
845bc18ba9 | ||
|
|
6369bf40a7 | ||
|
|
50448a3bb8 | ||
|
|
a9fee15f5a | ||
|
|
3897e68506 | ||
|
|
4316ca969b | ||
|
|
54e04d08b8 | ||
|
|
f6c3e33877 | ||
|
|
18e7fca594 | ||
|
|
f449d46879 | ||
|
|
251f469fb7 | ||
|
|
86054fb95a | ||
|
|
fcbd137c15 | ||
|
|
de61eb0b3c | ||
|
|
ed2aa04553 | ||
|
|
480bec0c8f | ||
|
|
e99cbd70fc | ||
|
|
2b3aa0d2eb | ||
|
|
782b6fb70c | ||
|
|
f76a47ab0c | ||
|
|
4a184bed88 | ||
|
|
00b0638d66 | ||
|
|
3b03dc00c1 | ||
|
|
1b6a8c073a | ||
|
|
73cad7fe96 | ||
|
|
b2fb8279dc | ||
|
|
546bcebdaa | ||
|
|
75b333607c | ||
|
|
6c0f85bdbd | ||
|
|
1d998afee6 | ||
|
|
5d247c1e58 | ||
|
|
18956e23c4 | ||
|
|
6722895711 | ||
|
|
87b82c5a62 | ||
|
|
e3ee9617ac | ||
|
|
03c30a97d5 | ||
|
|
3700add7fc | ||
|
|
08cef8ffb2 | ||
|
|
7326e7a3b8 | ||
|
|
59fd96b18f | ||
|
|
30a9d5669c | ||
|
|
49b09bab88 | ||
|
|
8c54a23ab6 | ||
|
|
13db7987b8 | ||
|
|
75d3d6297c |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -5,8 +5,8 @@ Makefile
|
|||||||
CMakeLists.txt.user*
|
CMakeLists.txt.user*
|
||||||
CMakeUserPresets.json
|
CMakeUserPresets.json
|
||||||
.vscode
|
.vscode
|
||||||
build
|
build/
|
||||||
build-*
|
build-*/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
init-repository.opt
|
init-repository.opt
|
||||||
init-repository.opt.in
|
init-repository.opt.in
|
||||||
|
|||||||
@@ -178,7 +178,6 @@ function(qt_ir_command_line_set_input name val)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# Appends a value of a command line option into a global property.
|
# Appends a value of a command line option into a global property.
|
||||||
# Currently unused
|
|
||||||
function(qt_ir_command_line_append_input name val)
|
function(qt_ir_command_line_append_input name val)
|
||||||
if(NOT "${commandline_option_${name}_alias}" STREQUAL "")
|
if(NOT "${commandline_option_${name}_alias}" STREQUAL "")
|
||||||
set(name "${commandline_option_${name}_alias}")
|
set(name "${commandline_option_${name}_alias}")
|
||||||
@@ -240,6 +239,22 @@ function(qt_ir_commandline_string arg val nextok)
|
|||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
# Like string, but appends to the existing value instead of overwriting.
|
||||||
|
# Allows repeated flags like: -skip qtwebengine -skip qtwebview
|
||||||
|
function(qt_ir_commandline_addString arg val nextok)
|
||||||
|
if(nextok)
|
||||||
|
qt_ir_args_get_next_command_line_arg(val)
|
||||||
|
|
||||||
|
if("${val}" MATCHES "^-")
|
||||||
|
qt_ir_add_error("No value supplied to command line options '${arg}'.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
qt_ir_validate_value("${arg}" "${val}" success)
|
||||||
|
if(success)
|
||||||
|
qt_ir_command_line_append_input("${arg}" "${val}")
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
# Sets / handles the value of a command line void option.
|
# Sets / handles the value of a command line void option.
|
||||||
# This is an option like --force, which doesn't take any arguments.
|
# This is an option like --force, which doesn't take any arguments.
|
||||||
# Currently unused
|
# Currently unused
|
||||||
@@ -279,6 +294,7 @@ endfunction()
|
|||||||
#
|
#
|
||||||
# Currently handles the following types of CLI arguments:
|
# Currently handles the following types of CLI arguments:
|
||||||
# string
|
# string
|
||||||
|
# addString (like string, but accumulates values from repeated flags)
|
||||||
# boolean
|
# boolean
|
||||||
# void
|
# void
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -89,6 +89,26 @@ function(qt_ir_handle_called_from_configure top_level_src_path out_var_exit_reas
|
|||||||
|
|
||||||
qt_ir_validate_options_for_configure()
|
qt_ir_validate_options_for_configure()
|
||||||
|
|
||||||
|
# Convert -skip values to module-subset exclusions so init-repository respects them.
|
||||||
|
qt_ir_get_option_value(skip skip_modules)
|
||||||
|
if(skip_modules)
|
||||||
|
string(REPLACE "," ";" skip_modules "${skip_modules}")
|
||||||
|
list(TRANSFORM skip_modules STRIP)
|
||||||
|
list(TRANSFORM skip_modules PREPEND "-")
|
||||||
|
|
||||||
|
qt_ir_get_option_value(module-subset existing_subset)
|
||||||
|
if(NOT existing_subset)
|
||||||
|
set(existing_subset "default")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
list(APPEND skip_modules "${existing_subset}")
|
||||||
|
list(REMOVE_DUPLICATES skip_modules)
|
||||||
|
list(JOIN skip_modules "," merged_subset)
|
||||||
|
|
||||||
|
qt_ir_set_option_value(module-subset "${merged_subset}")
|
||||||
|
message(DEBUG "Preprocessed -skip option: module-subset is now: ${merged_subset}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# -init_submodules implies --force
|
# -init_submodules implies --force
|
||||||
qt_ir_set_option_value(force TRUE)
|
qt_ir_set_option_value(force TRUE)
|
||||||
|
|
||||||
@@ -110,6 +130,11 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
|||||||
set(extra_configure_args "")
|
set(extra_configure_args "")
|
||||||
set(extra_cmake_args "")
|
set(extra_cmake_args "")
|
||||||
|
|
||||||
|
# Collect modules to skip. These may come from:
|
||||||
|
# 1. The -skip option (consumed by init-repository's option parser)
|
||||||
|
# 2. Exclusion entries in -submodules/--module-subset (e.g. -qtfoo)
|
||||||
|
qt_ir_get_option_value(skip skip_modules)
|
||||||
|
|
||||||
# If the -submodules or --module-subset options were specified, transform
|
# If the -submodules or --module-subset options were specified, transform
|
||||||
# the values into something configure understands and pass them to configure.
|
# the values into something configure understands and pass them to configure.
|
||||||
qt_ir_get_option_value(module-subset submodules)
|
qt_ir_get_option_value(module-subset submodules)
|
||||||
@@ -133,25 +158,10 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(JOIN include_submodules "," include_submodules)
|
list(JOIN include_submodules "," include_submodules)
|
||||||
list(JOIN exclude_submodules "," exclude_submodules)
|
|
||||||
|
|
||||||
# Handle case when the -skip argument is already passed.
|
# Merge exclusions from module-subset into the skip list.
|
||||||
# In that case read the passed values, merge with new ones,
|
if(exclude_submodules)
|
||||||
# remove both the -skip and its values, and re-add it later.
|
list(APPEND skip_modules ${exclude_submodules})
|
||||||
list(FIND filtered_args "-skip" skip_index)
|
|
||||||
if(exclude_submodules AND skip_index GREATER -1)
|
|
||||||
list(LENGTH filtered_args filtered_args_length)
|
|
||||||
math(EXPR skip_args_index "${skip_index} + 1")
|
|
||||||
|
|
||||||
if(skip_args_index LESS filtered_args_length)
|
|
||||||
list(GET filtered_args "${skip_args_index}" skip_args)
|
|
||||||
string(REPLACE "," ";" skip_args "${skip_args}")
|
|
||||||
list(APPEND skip_args ${exclude_submodules})
|
|
||||||
list(REMOVE_DUPLICATES skip_args)
|
|
||||||
list(JOIN skip_args "," exclude_submodules)
|
|
||||||
list(REMOVE_AT filtered_args "${skip_args_index}")
|
|
||||||
list(REMOVE_AT filtered_args "${skip_index}")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Handle case when only '-submodules existing' is passed and the
|
# Handle case when only '-submodules existing' is passed and the
|
||||||
@@ -159,9 +169,13 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
|
|||||||
if(include_submodules)
|
if(include_submodules)
|
||||||
list(APPEND extra_configure_args "-submodules" "${include_submodules}")
|
list(APPEND extra_configure_args "-submodules" "${include_submodules}")
|
||||||
endif()
|
endif()
|
||||||
if(exclude_submodules)
|
endif()
|
||||||
list(APPEND extra_configure_args "-skip" "${exclude_submodules}")
|
|
||||||
endif()
|
# Forward all collected skip modules to configure.
|
||||||
|
if(skip_modules)
|
||||||
|
list(REMOVE_DUPLICATES skip_modules)
|
||||||
|
list(JOIN skip_modules "," skip_csv)
|
||||||
|
list(APPEND extra_configure_args "-skip" "${skip_csv}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Insert the extra arguments into the proper positions before and after '--'.
|
# Insert the extra arguments into the proper positions before and after '--'.
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ macro(qt_ir_set_known_command_line_options)
|
|||||||
qt_ir_commandline_option(init-submodules TYPE boolean)
|
qt_ir_commandline_option(init-submodules TYPE boolean)
|
||||||
# We alias qtbase's submodules option to init-repository module-subset.
|
# We alias qtbase's submodules option to init-repository module-subset.
|
||||||
qt_ir_commandline_option(submodules ALIAS module-subset TYPE string)
|
qt_ir_commandline_option(submodules ALIAS module-subset TYPE string)
|
||||||
|
qt_ir_commandline_option(skip TYPE addString)
|
||||||
|
|
||||||
set_property(GLOBAL PROPERTY _qt_ir_known_command_line_options "${commandline_known_options}")
|
set_property(GLOBAL PROPERTY _qt_ir_known_command_line_options "${commandline_known_options}")
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|||||||
@@ -155,6 +155,7 @@ Configurations:
|
|||||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
|
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||||
|
'SCCACHE_C_CUSTOM_CACHE_BUSTER=v1'
|
||||||
]
|
]
|
||||||
-
|
-
|
||||||
Id: 'sles-15_sp6-static'
|
Id: 'sles-15_sp6-static'
|
||||||
@@ -266,6 +267,18 @@ Configurations:
|
|||||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||||
]
|
]
|
||||||
|
-
|
||||||
|
Id: 'rhel-10.0'
|
||||||
|
Template: 'qtci-linux-RHEL-10.0-x86_64-51'
|
||||||
|
Compiler: 'GCC'
|
||||||
|
Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests', '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',
|
||||||
|
'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',
|
||||||
|
]
|
||||||
-
|
-
|
||||||
Id: 'ios-universal'
|
Id: 'ios-universal'
|
||||||
Template: 'qtci-macos-14-arm-106'
|
Template: 'qtci-macos-14-arm-106'
|
||||||
|
|||||||
@@ -69,3 +69,22 @@ Configurations:
|
|||||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||||
'ANDROID_EMULATOR=emulator_x86_64_api_36'
|
'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',
|
||||||
|
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||||
|
'ANDROID_EMULATOR=emulator_x86_64_api_37'
|
||||||
|
]
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ Configurations:
|
|||||||
|
|
||||||
-
|
-
|
||||||
Id: 'macos-13-arm64-tests'
|
Id: 'macos-13-arm64-tests'
|
||||||
Template: 'qtci-macos-13-arm-107'
|
Template: 'qtci-macos-13-arm-108'
|
||||||
Compiler: 'Clang'
|
Compiler: 'Clang'
|
||||||
Features: ['Sccache', 'TestOnly', 'Packaging']
|
Features: ['Sccache', 'TestOnly', 'Packaging']
|
||||||
Platform dependency: 'macos-universal-on-arm64'
|
Platform dependency: 'macos-universal-on-arm64'
|
||||||
@@ -109,7 +109,7 @@ Configurations:
|
|||||||
# Test on all supported macOS versions (deployment targets)
|
# Test on all supported macOS versions (deployment targets)
|
||||||
-
|
-
|
||||||
Id: 'macos-13-arm64-developer-build-tests'
|
Id: 'macos-13-arm64-developer-build-tests'
|
||||||
Template: 'qtci-macos-13-arm-107'
|
Template: 'qtci-macos-13-arm-108'
|
||||||
Compiler: 'Clang'
|
Compiler: 'Clang'
|
||||||
Features: ['TestOnly']
|
Features: ['TestOnly']
|
||||||
Platform dependency: 'macos-arm64-developer-build'
|
Platform dependency: 'macos-arm64-developer-build'
|
||||||
|
|||||||
@@ -12,5 +12,5 @@ Configurations:
|
|||||||
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
|
||||||
Target os: 'WebAssembly'
|
Target os: 'WebAssembly'
|
||||||
Compiler: 'GCC'
|
Compiler: 'GCC'
|
||||||
Features: ['Sccache', 'TestOnly']
|
Features: ['Sccache', 'TestOnly', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||||
Platform dependency: 'webassembly-linux-thread-asyncify-new'
|
Platform dependency: 'webassembly-linux-thread-asyncify-new'
|
||||||
|
|||||||
13
coin/pre-provisioning/qtci-linux-RHEL-10.0-x86_64/01-disable-automounting.sh
Executable file
13
coin/pre-provisioning/qtci-linux-RHEL-10.0-x86_64/01-disable-automounting.sh
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
sudo tee -a /etc/dconf/db/local.d/00-media-automount <<"EOF"
|
||||||
|
[org/gnome/desktop/media-handling]
|
||||||
|
automount=false
|
||||||
|
automount-open=false
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sudo dconf update
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
### RHEL 10.0 ###
|
||||||
|
Hard Disk: 500G
|
||||||
|
Network: CI
|
||||||
|
Video Card: Total Video Memory: 64MB
|
||||||
|
Boot options/Firmware: BIOS
|
||||||
|
Language: English (United States)
|
||||||
|
Keyboard: English (US), Norwegian (Windows), Finnish (Windows)
|
||||||
|
Time & Date: Etc/Coordinated Universal Time
|
||||||
|
Software Selection: Server with GUI
|
||||||
|
Installation Destination: Automatic partitioning selected
|
||||||
|
Root Passowrd: Set
|
||||||
|
Network & Host..: Connected
|
||||||
|
KDUMP enabled: Memory Reservation: automatic
|
||||||
|
Begin Installation
|
||||||
|
Reboot
|
||||||
|
# Configure Settings
|
||||||
|
Notifications:
|
||||||
|
* Lock Screen Notifications: OFF
|
||||||
|
* Applications: Set notification off
|
||||||
|
* Do Not Disturb: on
|
||||||
|
Applications:
|
||||||
|
* Disable notifications from all applications
|
||||||
|
Privacy:
|
||||||
|
* Blank Screen Delay: Never
|
||||||
|
* Screen Lock: OFF
|
||||||
|
Power:
|
||||||
|
* Blank screen: Never
|
||||||
|
Displays:
|
||||||
|
* Resolution: 1280 x 800
|
||||||
|
Users:
|
||||||
|
* Automatic login on
|
||||||
|
# Add user to sudoers
|
||||||
|
Add 'qt ALL=NOPASSWD: ALL' to /etc/sudoers.d/qt
|
||||||
|
Add 'GRUB_GFXMODE=1280x800' to /etc/default/grub
|
||||||
|
sudo grub2-mkconfig -o /etc/grub2.cfg
|
||||||
|
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
|
||||||
|
# Add support for virtio driver
|
||||||
|
su
|
||||||
|
echo "add_drivers+=\" virtio-blk \"" >> /etc/dracut.conf.d/virtio.conf
|
||||||
|
dracut -f
|
||||||
|
|
||||||
|
# NOTE!
|
||||||
|
# - RHEL uses 'sudo subscription-manager release --set=10.0' in provisioning
|
||||||
|
# - Do not update Tier 1 via GUI without using this same --set before provisioning
|
||||||
|
# - To avoid System to have newer packages than RPMS which will cause update issues
|
||||||
|
|
||||||
|
# Register RHEL before it's possible to install qemu-guest-agent
|
||||||
|
subscription-manager register
|
||||||
|
|
||||||
|
yum -y install qemu-guest-agent
|
||||||
|
|
||||||
|
# Do these from Opennebula UI!
|
||||||
|
|
||||||
|
# Enable network connection from right upper corner
|
||||||
|
This is done when the VM is launched as persistent in OpenNebula.
|
||||||
|
# Fetch and run coin-setup
|
||||||
|
Download http://coin/coin/binary/linux_amd64/coin-setup
|
||||||
|
# run as qt user
|
||||||
|
run './coin-setup'
|
||||||
|
# Switch to use GNOME Classic user interface
|
||||||
|
# GNOME Classic was selected because there's an issue with Standard (wayland display server).
|
||||||
|
# Autotest start failing because terminal session remains in Activities Overview.
|
||||||
|
# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3854
|
||||||
|
First execute script ./01-disable-automounting.sh (dconf update crash in GNOME Classic)
|
||||||
|
logout -> Select user (without it the drop down menu won't appear) -> switch to 'GNOME Classic' -desktop session from drop down menu in login screen
|
||||||
|
|
||||||
|
# If gear icon is not seen, check is 'GNOME Classic' -desktop session installed, and install if it's missing
|
||||||
|
ls /usr/share/xsessions/
|
||||||
|
# This should list something like these if it's installed
|
||||||
|
gnome-classic.desktop
|
||||||
|
gnome.desktop
|
||||||
|
|
||||||
|
# To install GNOME Classic if it's missing
|
||||||
|
sudo dnf reinstall gnome-classic-session
|
||||||
|
|
||||||
|
# In RHEL 10.0 even with 'GNOME Classic' -desktop the Activities Overview is still in use
|
||||||
|
# It can be bypassed via 'No Overview' -GNOME extension:
|
||||||
|
# - https://extensions.gnome.org/extension/4099/no-overview/
|
||||||
|
# - Select GNOME Shell version 47 to download
|
||||||
|
# - Unpack extension from tar.gz
|
||||||
|
sudo mv <extension_folder> /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||||
|
sudo chown -R root: /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||||
|
sudo chmod 755 -R /usr/share/gnome-shell/extensions/no-overview@fthx
|
||||||
|
sudo reboot
|
||||||
|
gnome-extensions list
|
||||||
|
gnome-extensions enable no-overview@fthx
|
||||||
|
|
||||||
|
Reboot
|
||||||
0
coin/pre-provisioning/qtci-linux-RHEL-9.2-x86_64/01-disable-automounting.sh
Normal file → Executable file
0
coin/pre-provisioning/qtci-linux-RHEL-9.2-x86_64/01-disable-automounting.sh
Normal file → Executable file
0
coin/pre-provisioning/qtci-linux-RHEL-9.4-x86_64/01-disable-automounting.sh
Normal file → Executable file
0
coin/pre-provisioning/qtci-linux-RHEL-9.4-x86_64/01-disable-automounting.sh
Normal file → Executable file
0
coin/pre-provisioning/qtci-linux-RHEL-9.6-x86_64/01-disable-automounting.sh
Normal file → Executable file
0
coin/pre-provisioning/qtci-linux-RHEL-9.6-x86_64/01-disable-automounting.sh
Normal file → Executable file
@@ -1,12 +1,7 @@
|
|||||||
*.iml
|
*.iml
|
||||||
.gradle
|
.gradle
|
||||||
|
.idea
|
||||||
/local.properties
|
/local.properties
|
||||||
/.idea/caches
|
|
||||||
/.idea/libraries
|
|
||||||
/.idea/modules.xml
|
|
||||||
/.idea/workspace.xml
|
|
||||||
/.idea/navEditor.xml
|
|
||||||
/.idea/assetWizardSettings.xml
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
/build
|
/build
|
||||||
/captures
|
/captures
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_17
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:label="gradle_project"
|
android:label="gradle_project"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
tools:targetApi="35">
|
tools:targetApi="36">
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
[versions]
|
[versions]
|
||||||
agp = "8.10.1"
|
agp = "9.0.0"
|
||||||
core = "1.16.0"
|
core = "1.17.0"
|
||||||
appcompat = "1.7.1"
|
appcompat = "1.7.1"
|
||||||
material = "1.12.0"
|
material = "1.13.0"
|
||||||
constraintlayout = "2.2.1"
|
constraintlayout = "2.2.1"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
|||||||
@@ -199,6 +199,23 @@ echo "Unzipping the Android 16 to $maxVersionDestination"
|
|||||||
sudo unzip -o -q "$maxVersionFilePath" -d "$maxVersionDestination"
|
sudo unzip -o -q "$maxVersionFilePath" -d "$maxVersionDestination"
|
||||||
rm "$maxVersionFilePath"
|
rm "$maxVersionFilePath"
|
||||||
|
|
||||||
|
echo "Download and unzip Android 17 Beta 3 16KB System Image"
|
||||||
|
insignificantMaxVersionFileName="x86_64-ps16k-37.0_r03.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"
|
||||||
|
|
||||||
|
mkdir -p "$insignificantMaxVersionDestination"
|
||||||
|
DownloadURL "$insignificantMaxVersionCiUrl" "$insignificantMaxVersionUrl" "$insignificantMaxVersionSha1" "$insignificantMaxVersionFilePath"
|
||||||
|
|
||||||
|
echo "Unzipping the Android 17 Beta3 16KB 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"
|
||||||
|
rm "$insignificantMaxVersionFilePath"
|
||||||
|
|
||||||
echo "Checking the contents of Android SDK again..."
|
echo "Checking the contents of Android SDK again..."
|
||||||
ls -l "$sdkTargetFolder"
|
ls -l "$sdkTargetFolder"
|
||||||
|
|
||||||
@@ -208,6 +225,9 @@ echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \
|
|||||||
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_36 -c 2048M -f \
|
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_36 -c 2048M -f \
|
||||||
-k "system-images;android-36;google_apis;x86_64"
|
-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"
|
||||||
|
|
||||||
echo "Install maximum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMax"
|
echo "Install maximum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMax"
|
||||||
DownloadURL "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxSha" \
|
DownloadURL "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxSha" \
|
||||||
"/tmp/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
|
"/tmp/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
|
||||||
@@ -241,7 +261,7 @@ cp -r "${scripts_dir_name}/android/gradle_project" /tmp/gradle_project
|
|||||||
cd /tmp/gradle_project
|
cd /tmp/gradle_project
|
||||||
# Get Gradle files from qtbase
|
# Get Gradle files from qtbase
|
||||||
qtbaseGradleUrl="https://code.qt.io/cgit/qt/qtbase.git/plain/src/3rdparty/gradle"
|
qtbaseGradleUrl="https://code.qt.io/cgit/qt/qtbase.git/plain/src/3rdparty/gradle"
|
||||||
commit_sha="bb12c984b2c838bdb06169ef7d659384c02c8b82"
|
commit_sha="269a75dbd1262a714eb238c42e5159a0a8979818"
|
||||||
curl "$qtbaseGradleUrl/gradle.properties?h=$commit_sha" > gradle.properties
|
curl "$qtbaseGradleUrl/gradle.properties?h=$commit_sha" > gradle.properties
|
||||||
curl "$qtbaseGradleUrl/gradlew?h=$commit_sha" > gradlew
|
curl "$qtbaseGradleUrl/gradlew?h=$commit_sha" > gradlew
|
||||||
curl "$qtbaseGradleUrl/gradlew.bat?h=$commit_sha" > gradlew.bat
|
curl "$qtbaseGradleUrl/gradlew.bat?h=$commit_sha" > gradlew.bat
|
||||||
|
|||||||
0
coin/provisioning/common/linux/fix-bitbake-apparmor.sh
Normal file → Executable file
0
coin/provisioning/common/linux/fix-bitbake-apparmor.sh
Normal file → Executable file
0
coin/provisioning/common/linux/fix-bwrap-apparmor.sh
Normal file → Executable file
0
coin/provisioning/common/linux/fix-bwrap-apparmor.sh
Normal file → Executable file
0
coin/provisioning/common/linux/install-dummy-alsa-device.sh
Normal file → Executable file
0
coin/provisioning/common/linux/install-dummy-alsa-device.sh
Normal file → Executable file
@@ -15,18 +15,20 @@ case "$uname_m" in
|
|||||||
x86_64|amd64)
|
x86_64|amd64)
|
||||||
sha256="6f98805688d19672bd699fbbfa2c2cf0fc054ac3df1f0e6a47664d963d530255"
|
sha256="6f98805688d19672bd699fbbfa2c2cf0fc054ac3df1f0e6a47664d963d530255"
|
||||||
pkgname="ninja-$version-linux-x64.zip"
|
pkgname="ninja-$version-linux-x64.zip"
|
||||||
|
pkgnameExt="ninja-linux.zip"
|
||||||
dirname="ninja-$version-linux-x64"
|
dirname="ninja-$version-linux-x64"
|
||||||
;;
|
;;
|
||||||
arm64|aarch64)
|
arm64|aarch64)
|
||||||
sha256="5c25c6570b0155e95fce5918cb95f1ad9870df5768653afe128db822301a05a1"
|
sha256="5c25c6570b0155e95fce5918cb95f1ad9870df5768653afe128db822301a05a1"
|
||||||
pkgname="ninja-$version-linux-arm64.zip"
|
pkgname="ninja-$version-linux-arm64.zip"
|
||||||
|
pkgnameExt="ninja-linux-aarch64.zip"
|
||||||
dirname="ninja-$version-linux-arm64"
|
dirname="ninja-$version-linux-arm64"
|
||||||
;;
|
;;
|
||||||
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
|
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
internalUrl="http://ci-files01-hki.ci.qt.io/input/ninja/$pkgname"
|
internalUrl="http://ci-files01-hki.ci.qt.io/input/ninja/$pkgname"
|
||||||
externalUrl="https://github.com/ninja-build/ninja/releases/download/v$version/$pkgname"
|
externalUrl="https://github.com/ninja-build/ninja/releases/download/v$version/$pkgnameExt"
|
||||||
|
|
||||||
targetFile="$HOME/$pkgname"
|
targetFile="$HOME/$pkgname"
|
||||||
DownloadURL "$internalUrl" "$externalUrl" "$sha256" "$targetFile"
|
DownloadURL "$internalUrl" "$externalUrl" "$sha256" "$targetFile"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ QEMU_VER="8.2.3"
|
|||||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/qemu/qemu-$QEMU_VER.tar.xz"
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/qemu/qemu-$QEMU_VER.tar.xz"
|
||||||
AltUrl="https://download.qemu.org/qemu-$QEMU_VER.tar.xz"
|
AltUrl="https://download.qemu.org/qemu-$QEMU_VER.tar.xz"
|
||||||
SHA1="1b29c8105cf8d15b9e7fb6f8e85170b6c54a1788"
|
SHA1="1b29c8105cf8d15b9e7fb6f8e85170b6c54a1788"
|
||||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp" "$appPrefix"
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp" ""
|
||||||
|
|
||||||
targetFolder=/tmp/qemu-${QEMU_VER}
|
targetFolder=/tmp/qemu-${QEMU_VER}
|
||||||
mkdir -p "$targetFolder/build"
|
mkdir -p "$targetFolder/build"
|
||||||
|
|||||||
299
coin/provisioning/common/macos/install-ffmpeg-ios.sh
Executable file
299
coin/provisioning/common/macos/install-ffmpeg-ios.sh
Executable file
@@ -0,0 +1,299 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2024 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
# This script will build and install FFmpeg shared libraries.
|
||||||
|
#
|
||||||
|
# The script will package iOS and iOS-simulator binaries into one
|
||||||
|
# single .xcframework. This .xcframework cannot contain .dylibs
|
||||||
|
# directly. It must contain .framework files. Unlike macOS, binaries
|
||||||
|
# should NOT be lipoed together.
|
||||||
|
#
|
||||||
|
# From https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle
|
||||||
|
# "Avoid using dynamic library files (.dylib files) for dynamic
|
||||||
|
# linking. An XCFramework can include dynamic library files, but only
|
||||||
|
# macOS supports these libraries for dynamic linking. Dynamic linking
|
||||||
|
# on iOS, iPadOS, tvOS, visionOS, and watchOS requires the XCFramework
|
||||||
|
# to contain .framework bundles."
|
||||||
|
#
|
||||||
|
# This script can take an optional final parameter to control
|
||||||
|
# installation directory.
|
||||||
|
set -eoux pipefail
|
||||||
|
|
||||||
|
# Must match or be lower than the minimum iOS version supported by the version of Qt that is
|
||||||
|
# is currently being built.
|
||||||
|
readonly MINIMUM_IOS_VERSION="16.0"
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
||||||
|
|
||||||
|
ffmpeg_version=$(ffmpeg_version_default)
|
||||||
|
ffmpeg_source_dir=$(download_ffmpeg)
|
||||||
|
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
|
||||||
|
default_prefix="/usr/local/ios/ffmpeg"
|
||||||
|
prefix="${1:-$default_prefix}"
|
||||||
|
|
||||||
|
# Qt doesn't utilize all FFmpeg components. This is a list of the ones
|
||||||
|
# we care about
|
||||||
|
ffmpeg_components="libavcodec libavformat libavutil libswresample libswscale"
|
||||||
|
|
||||||
|
target_platform_to_sdk() {
|
||||||
|
local target_platform="$1"
|
||||||
|
if [[ "$target_platform" == "arm64-simulator" ]] \
|
||||||
|
|| [[ "$target_platform" == "x86_64-simulator" ]]; then
|
||||||
|
echo "iphonesimulator"
|
||||||
|
elif [ "$target_platform" == "arm64-iphoneos" ]; then
|
||||||
|
echo "iphoneos"
|
||||||
|
else
|
||||||
|
echo "Error finding corresponding iOS SDK for target platform: ${target_platform}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
build_ffmpeg_ios() {
|
||||||
|
local target_platform="$1"
|
||||||
|
local target_cpu_arch=""
|
||||||
|
local target_sdk;
|
||||||
|
target_sdk="$(target_platform_to_sdk "${target_platform}")"
|
||||||
|
|
||||||
|
if [ "$target_platform" == "arm64-simulator" ]; then
|
||||||
|
target_cpu_arch="arm64"
|
||||||
|
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
|
||||||
|
elif [ "$target_platform" == "x86_64-simulator" ]; then
|
||||||
|
target_cpu_arch="x86_64"
|
||||||
|
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
|
||||||
|
elif [ "$target_platform" == "arm64-iphoneos" ]; then
|
||||||
|
target_cpu_arch="arm64"
|
||||||
|
minos="-miphoneos-version-min=$MINIMUM_IOS_VERSION"
|
||||||
|
else
|
||||||
|
echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local build_dir="$ffmpeg_source_dir/build_ios/$target_platform"
|
||||||
|
sudo mkdir -p "$build_dir"
|
||||||
|
pushd "$build_dir"
|
||||||
|
|
||||||
|
local sysroot;
|
||||||
|
sysroot="$(xcrun --sdk "${target_sdk}" --show-sdk-path)"
|
||||||
|
local cc;
|
||||||
|
cc="$(xcrun -f --sdk ${target_sdk} clang)"
|
||||||
|
local cxx;
|
||||||
|
cxx="$(xcrun -f --sdk ${target_sdk} clang++)"
|
||||||
|
|
||||||
|
# We add -g so we get debug symbols.
|
||||||
|
local common_arch_flags="${minos} -arch ${target_cpu_arch} -g"
|
||||||
|
|
||||||
|
local config_parameters=(
|
||||||
|
$ffmpeg_config_options
|
||||||
|
--sysroot="${sysroot}"
|
||||||
|
--enable-cross-compile
|
||||||
|
--enable-optimizations
|
||||||
|
--prefix="$prefix"
|
||||||
|
--arch="$target_cpu_arch"
|
||||||
|
--cc="$cc"
|
||||||
|
--cxx="$cxx"
|
||||||
|
--extra-cflags="${common_arch_flags}"
|
||||||
|
--extra-cxxflags="${common_arch_flags}"
|
||||||
|
--extra-ldflags="${common_arch_flags}"
|
||||||
|
--target-os=darwin
|
||||||
|
--enable-shared
|
||||||
|
--disable-static
|
||||||
|
--install-name-dir="@rpath"
|
||||||
|
--disable-audiotoolbox
|
||||||
|
|
||||||
|
# We perform manual stripping after generating dSYMs.
|
||||||
|
# Make sure to skip it during FFmpeg compilation.
|
||||||
|
--disable-stripping
|
||||||
|
)
|
||||||
|
sudo "$ffmpeg_source_dir/configure" "${config_parameters[@]}"
|
||||||
|
|
||||||
|
sudo make install DESTDIR="$build_dir/installed" -j4
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
build_info_plist() {
|
||||||
|
local file_path="$1"
|
||||||
|
local framework_name="$2"
|
||||||
|
local framework_id="$3"
|
||||||
|
|
||||||
|
# Apple plist format has a strict requirement that the version string
|
||||||
|
# contains up to 3 numerics separated by a dot. Meanwhile, FFmpeg versioning
|
||||||
|
# tends to use an 'n' prefix in their versioning. We use a regex to convert
|
||||||
|
# and verify the version string.
|
||||||
|
#
|
||||||
|
# https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleversion
|
||||||
|
local formatted_ffmpeg_version
|
||||||
|
if [[ $ffmpeg_version =~ ([0-9]+(\.[0-9]+){0,2}) ]]; then
|
||||||
|
formatted_ffmpeg_version="${BASH_REMATCH[1]}"
|
||||||
|
else
|
||||||
|
echo "Unable to format FFmpeg version string '$ffmpeg_version' into corresponding Apple Info.plist format"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local minimum_version_key="MinimumOSVersion"
|
||||||
|
local supported_platforms="iPhoneOS"
|
||||||
|
|
||||||
|
info_plist="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||||
|
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||||
|
<plist version=\"1.0\">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${framework_name}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${framework_id}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${framework_name}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>${formatted_ffmpeg_version}</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${formatted_ffmpeg_version}</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>${minimum_version_key}</key>
|
||||||
|
<string>${MINIMUM_IOS_VERSION}</string>
|
||||||
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
|
<array>
|
||||||
|
<string>${supported_platforms}</string>
|
||||||
|
</array>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>"
|
||||||
|
echo $info_plist | sudo tee ${file_path} 1>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a 'traditional' framework from the corresponding dylib.
|
||||||
|
# This includes creating a folder for it, and inserting Info.plist
|
||||||
|
# and dylib. We also patch runpaths in the dylib to match the
|
||||||
|
# frameworks directory structure.
|
||||||
|
#
|
||||||
|
# There is no command-line tool for generating .framework
|
||||||
|
# files. By inspecting .frameworks generated through Xcode, we
|
||||||
|
# have found they are primarily a directory with a very specific
|
||||||
|
# layout. The code below generates a matching layout.
|
||||||
|
#
|
||||||
|
# See https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html
|
||||||
|
create_framework() {
|
||||||
|
local ffmpeg_component_name="$1"
|
||||||
|
local platform="$2"
|
||||||
|
|
||||||
|
local ffmpeg_build_path="${ffmpeg_source_dir}/build_ios/${platform}/installed/${prefix}"
|
||||||
|
local ffmpeg_component_src_dylib="${ffmpeg_build_path}/lib/${ffmpeg_component_name}.dylib"
|
||||||
|
local ffmpeg_component_framework="${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework"
|
||||||
|
local ffmpeg_component_target_dylib="${ffmpeg_component_framework}/${ffmpeg_component_name}"
|
||||||
|
|
||||||
|
# Make directory for the .framework
|
||||||
|
sudo mkdir -p "${ffmpeg_component_framework}"
|
||||||
|
|
||||||
|
# Inser the Info.plist
|
||||||
|
build_info_plist \
|
||||||
|
"${ffmpeg_component_framework}/Info.plist" \
|
||||||
|
"${ffmpeg_component_name}" \
|
||||||
|
"io.qt.ffmpegkit.${ffmpeg_component_name}"
|
||||||
|
|
||||||
|
# Copy in the dylib
|
||||||
|
sudo cp \
|
||||||
|
"${ffmpeg_component_src_dylib}" \
|
||||||
|
"${ffmpeg_component_target_dylib}"
|
||||||
|
|
||||||
|
# By default, runpaths will look for FFmpeg dependencies in
|
||||||
|
# '@rpath/libavcodec.xx.yy.dylib'. We want this path to be in the form
|
||||||
|
# '@rpath/libavcodec.framework/libavcodec.dylib'.
|
||||||
|
|
||||||
|
# Set the dylibs self-identity
|
||||||
|
sudo install_name_tool \
|
||||||
|
-id "@rpath/${ffmpeg_component_name}.framework/${ffmpeg_component_name}" \
|
||||||
|
"${ffmpeg_component_target_dylib}"
|
||||||
|
|
||||||
|
# Update the runpaths for each FFmpeg dependency entry
|
||||||
|
otool -L "$ffmpeg_component_target_dylib" \
|
||||||
|
| tail -n +2 \
|
||||||
|
| awk '{print $1}' \
|
||||||
|
| while read -r dep; do
|
||||||
|
# Go through all dependency entries of this .dylib,
|
||||||
|
# see if they point to a FFmpeg component. If it does,
|
||||||
|
# modify the entry to match the final
|
||||||
|
# directory structure.
|
||||||
|
for ffdep in $ffmpeg_components; do
|
||||||
|
if [[ "$dep" == */${ffdep}.* ]]; then
|
||||||
|
echo "Rewriting dependency: $dep -> @rpath/${ffdep}.framework/${ffdep}"
|
||||||
|
sudo install_name_tool -change \
|
||||||
|
"$dep" \
|
||||||
|
"@rpath/${ffdep}.framework/${ffdep}" \
|
||||||
|
"$ffmpeg_component_target_dylib"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# dSYM symbols must be generated manually, these are required for
|
||||||
|
# App Store deployment. We generate them from the .dylibs inside
|
||||||
|
# our .frameworks. This has to be done after patching the runpaths.
|
||||||
|
# At the end, we strip the dylib.
|
||||||
|
create_dsym() {
|
||||||
|
local ffmpeg_component_name="$1"
|
||||||
|
local platform="$2"
|
||||||
|
|
||||||
|
local ffmpeg_build_path="${ffmpeg_source_dir}/build_ios/${platform}/installed/${prefix}"
|
||||||
|
local target_dylib="${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework/${ffmpeg_component_name}"
|
||||||
|
|
||||||
|
sudo dsymutil "${target_dylib}" \
|
||||||
|
-o "${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework.dSYM"
|
||||||
|
|
||||||
|
local target_sdk;
|
||||||
|
target_sdk=$(target_platform_to_sdk "${platform}")
|
||||||
|
|
||||||
|
local strip;
|
||||||
|
strip="$(xcrun -f --sdk ${target_sdk} strip)"
|
||||||
|
sudo ${strip} -x "${target_dylib}"
|
||||||
|
}
|
||||||
|
|
||||||
|
create_xcframework() {
|
||||||
|
# Create 'traditional' framework from the corresponding dylib,
|
||||||
|
# also creating
|
||||||
|
local framework_name="$1"
|
||||||
|
local target_platform_a="$2"
|
||||||
|
local target_platform_b="$3"
|
||||||
|
|
||||||
|
local platform_a_build="${ffmpeg_source_dir}/build_ios/${target_platform_a}/installed/${prefix}"
|
||||||
|
local fw_a="${platform_a_build}/framework/${framework_name}.framework"
|
||||||
|
local dsym_a="${fw_a}.dSYM"
|
||||||
|
|
||||||
|
local platform_b_build="${ffmpeg_source_dir}/build_ios/${target_platform_b}/installed/${prefix}"
|
||||||
|
local fw_b="${platform_b_build}/framework/${framework_name}.framework"
|
||||||
|
local dsym_b="${fw_b}.dSYM"
|
||||||
|
|
||||||
|
sudo mkdir -p "$prefix/lib/"
|
||||||
|
sudo xcodebuild -create-xcframework \
|
||||||
|
-framework "$fw_a" -debug-symbols "$dsym_a" \
|
||||||
|
-framework $fw_b -debug-symbols "$dsym_b" \
|
||||||
|
-output "${prefix}/lib/${framework_name}.xcframework"
|
||||||
|
}
|
||||||
|
|
||||||
|
build_ffmpeg_ios "arm64-iphoneos"
|
||||||
|
build_ffmpeg_ios "x86_64-simulator"
|
||||||
|
|
||||||
|
for name in $ffmpeg_components; do
|
||||||
|
create_framework "$name" "arm64-iphoneos"
|
||||||
|
create_framework "$name" "x86_64-simulator"
|
||||||
|
|
||||||
|
create_dsym "$name" "arm64-iphoneos"
|
||||||
|
create_dsym "$name" "x86_64-simulator"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Create corresponding xcframeworks containing both arm64 and x86_64-simulator frameworks:
|
||||||
|
for name in $ffmpeg_components; do
|
||||||
|
create_xcframework "$name" "arm64-iphoneos" "x86_64-simulator"
|
||||||
|
done
|
||||||
|
|
||||||
|
# xcframeworks are already installed directly into the target output directory.
|
||||||
|
# We need to install headers
|
||||||
|
sudo cp -r "${ffmpeg_source_dir}/build_ios/arm64-iphoneos/installed/${prefix}/include" "$prefix"
|
||||||
|
|
||||||
|
set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" "$prefix"
|
||||||
@@ -19,7 +19,7 @@ class Libiodbc < Formula
|
|||||||
|
|
||||||
def install
|
def install
|
||||||
if build.with? "universal"
|
if build.with? "universal"
|
||||||
ENV['CFLAGS'] = '-O -arch arm64 -arch x86_64 -mmacosx-version-min=10.9'
|
ENV['CFLAGS'] = '-O -arch arm64 -arch x86_64 -mmacosx-version-min=10.9 -std=gnu89'
|
||||||
end
|
end
|
||||||
system "./autogen.sh"
|
system "./autogen.sh"
|
||||||
system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
|
system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
|
||||||
|
|||||||
@@ -4,4 +4,5 @@ ntia-conformance-checker ; python_version >= '3.9'
|
|||||||
sbomaudit ; python_version >= '3.9'
|
sbomaudit ; python_version >= '3.9'
|
||||||
sbom2doc ; python_version >= '3.9'
|
sbom2doc ; python_version >= '3.9'
|
||||||
reuse<=5.1.1 ; python_version >= '3.9'
|
reuse<=5.1.1 ; python_version >= '3.9'
|
||||||
cyclonedx-python-lib==11.0.0 ; python_version >= '3.9'
|
cyclonedx-python-lib==11.5.0 ; python_version >= '3.9'
|
||||||
|
jsonschema>=4.20 ; python_version >= '3.12'
|
||||||
|
|||||||
@@ -24,43 +24,46 @@ assert_envvar_is_populated_dir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
build_ffmpeg_android() {
|
build_ffmpeg_android() {
|
||||||
local target_arch=$1
|
local target_dir=$1
|
||||||
local target_dir=$2
|
local ndk_root=$2
|
||||||
local ndk_root=$3
|
local openssl_android_path=$3
|
||||||
local openssl_android_path=$4
|
|
||||||
|
|
||||||
sudo mkdir -p "$target_dir"
|
sudo mkdir -p "$target_dir"
|
||||||
|
|
||||||
local openssl_include="$openssl_android_path/include"
|
local openssl_include="$openssl_android_path/include"
|
||||||
|
local target_arch
|
||||||
local openssl_libs
|
local openssl_libs
|
||||||
local libs_prefix
|
local libs_prefix
|
||||||
local target_cpu
|
local target_cpu
|
||||||
local target_toolchain_arch
|
local target_toolchain_arch
|
||||||
|
|
||||||
if [ "$target_arch" == "x86_64" ]; then
|
if [ "$os" == "android-x86" ]; then
|
||||||
target_toolchain_arch="x86_64-linux-android"
|
|
||||||
target_arch=x86_64
|
|
||||||
target_cpu=x86-64
|
|
||||||
openssl_libs="$openssl_android_path/x86_64"
|
|
||||||
libs_prefix="_x86_64"
|
|
||||||
elif [ "$target_arch" == "x86" ]; then
|
|
||||||
target_toolchain_arch="i686-linux-android"
|
target_toolchain_arch="i686-linux-android"
|
||||||
target_arch=x86
|
target_arch=x86
|
||||||
target_cpu=i686
|
target_cpu=i686
|
||||||
openssl_libs="$openssl_android_path/x86"
|
openssl_libs="$openssl_android_path/x86"
|
||||||
libs_prefix="_x86"
|
libs_prefix="_x86"
|
||||||
elif [ "$target_arch" == "arm32" ]; then
|
elif [ "$os" == "android-x86_64" ]; then
|
||||||
|
target_toolchain_arch="x86_64-linux-android"
|
||||||
|
target_arch=x86_64
|
||||||
|
target_cpu=x86-64
|
||||||
|
openssl_libs="$openssl_android_path/x86_64"
|
||||||
|
libs_prefix="_x86_64"
|
||||||
|
elif [ "$os" == "android-arm32" ]; then
|
||||||
target_toolchain_arch="armv7a-linux-androideabi"
|
target_toolchain_arch="armv7a-linux-androideabi"
|
||||||
target_arch=arm
|
target_arch=arm
|
||||||
target_cpu=armv7-a
|
target_cpu=armv7-a
|
||||||
openssl_libs="$openssl_android_path/armeabi-v7a"
|
openssl_libs="$openssl_android_path/armeabi-v7a"
|
||||||
libs_prefix="_arm32-v7a"
|
libs_prefix="_arm32-v7a"
|
||||||
elif [ "$target_arch" == "arm64" ]; then
|
elif [ "$os" == "android-arm64" ]; then
|
||||||
target_toolchain_arch="aarch64-linux-android"
|
target_toolchain_arch="aarch64-linux-android"
|
||||||
target_arch=aarch64
|
target_arch=aarch64
|
||||||
target_cpu=armv8-a
|
target_cpu=armv8-a
|
||||||
openssl_libs="$openssl_android_path/arm64-v8a"
|
openssl_libs="$openssl_android_path/arm64-v8a"
|
||||||
libs_prefix="_arm64-v8a"
|
libs_prefix="_arm64-v8a"
|
||||||
|
else
|
||||||
|
>&2 echo "Unhandled android os param: $os"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
|
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
|
||||||
@@ -127,28 +130,24 @@ build_ffmpeg_android() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [ "$os" == "android-x86" ]; then
|
if [ "$os" == "android-x86" ]; then
|
||||||
target_arch=x86
|
|
||||||
target_dir="/usr/local/android/ffmpeg-x86"
|
target_dir="/usr/local/android/ffmpeg-x86"
|
||||||
envvar_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST"
|
envvar_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST"
|
||||||
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1"
|
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1"
|
||||||
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2"
|
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2"
|
||||||
envvar_preview="FFMPEG_DIR_ANDROID_X86_NDK_PREVIEW"
|
envvar_preview="FFMPEG_DIR_ANDROID_X86_NDK_PREVIEW"
|
||||||
elif [ "$os" == "android-x86_64" ]; then
|
elif [ "$os" == "android-x86_64" ]; then
|
||||||
target_arch=x86_64
|
|
||||||
target_dir="/usr/local/android/ffmpeg-x86_64"
|
target_dir="/usr/local/android/ffmpeg-x86_64"
|
||||||
envvar_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST"
|
envvar_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST"
|
||||||
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1"
|
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1"
|
||||||
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2"
|
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2"
|
||||||
envvar_preview="FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW"
|
envvar_preview="FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW"
|
||||||
elif [ "$os" == "android-arm32" ]; then
|
elif [ "$os" == "android-arm32" ]; then
|
||||||
target_arch=arm32
|
|
||||||
target_dir="/usr/local/android/ffmpeg-arm32"
|
target_dir="/usr/local/android/ffmpeg-arm32"
|
||||||
envvar_latest="FFMPEG_DIR_ANDROID_ARM32_NDK_LATEST"
|
envvar_latest="FFMPEG_DIR_ANDROID_ARM32_NDK_LATEST"
|
||||||
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY1"
|
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY1"
|
||||||
envvar_nightly2="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY2"
|
envvar_nightly2="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY2"
|
||||||
envvar_preview="FFMPEG_DIR_ANDROID_ARM32_NDK_PREVIEW"
|
envvar_preview="FFMPEG_DIR_ANDROID_ARM32_NDK_PREVIEW"
|
||||||
elif [ "$os" == "android-arm64" ]; then
|
elif [ "$os" == "android-arm64" ]; then
|
||||||
target_arch=arm64
|
|
||||||
target_dir="/usr/local/android/ffmpeg-arm64"
|
target_dir="/usr/local/android/ffmpeg-arm64"
|
||||||
envvar_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST"
|
envvar_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST"
|
||||||
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1"
|
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1"
|
||||||
@@ -166,26 +165,26 @@ fi
|
|||||||
|
|
||||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST"
|
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST"
|
||||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST"
|
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST"
|
||||||
build_ffmpeg_android "$target_arch" "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
|
build_ffmpeg_android "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
|
||||||
set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir/latest"
|
set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir/latest"
|
||||||
|
|
||||||
if [ "${ANDROID_NDK_ROOT_PREVIEW}" ]; then
|
if [ "${ANDROID_NDK_ROOT_PREVIEW}" ]; then
|
||||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_PREVIEW"
|
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_PREVIEW"
|
||||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_PREVIEW"
|
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_PREVIEW"
|
||||||
build_ffmpeg_android "$target_arch" "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
|
build_ffmpeg_android "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
|
||||||
set_ffmpeg_dir_env_var "$envvar_preview" "$target_dir/preview"
|
set_ffmpeg_dir_env_var "$envvar_preview" "$target_dir/preview"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then
|
if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then
|
||||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1"
|
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1"
|
||||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1"
|
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1"
|
||||||
build_ffmpeg_android "$target_arch" "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
|
build_ffmpeg_android "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
|
||||||
set_ffmpeg_dir_env_var "$envvar_nightly1" "$target_dir/nightly1"
|
set_ffmpeg_dir_env_var "$envvar_nightly1" "$target_dir/nightly1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${ANDROID_NDK_ROOT_NIGHTLY2}" ]; then
|
if [ "${ANDROID_NDK_ROOT_NIGHTLY2}" ]; then
|
||||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY2"
|
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY2"
|
||||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY2"
|
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY2"
|
||||||
build_ffmpeg_android "$target_arch" "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
|
build_ffmpeg_android "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
|
||||||
set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir/nightly2"
|
set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir/nightly2"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,187 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Copyright (C) 2024 The Qt Company Ltd.
|
|
||||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
|
||||||
|
|
||||||
# This script will build and install FFmpeg static libs
|
|
||||||
# Can take an optional final parameter to control installation directory
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# Must match or be lower than the minimum iOS version supported by the version of Qt that is
|
|
||||||
# is currently being built.
|
|
||||||
readonly MINIMUM_IOS_VERSION="16.0"
|
|
||||||
|
|
||||||
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
|
||||||
|
|
||||||
ffmpeg_version=$(ffmpeg_version_default)
|
|
||||||
ffmpeg_source_dir=$(download_ffmpeg)
|
|
||||||
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
|
|
||||||
default_prefix="/usr/local/ios/ffmpeg"
|
|
||||||
prefix="${1:-$default_prefix}"
|
|
||||||
dylib_regex="^@rpath/.*\.dylib$"
|
|
||||||
|
|
||||||
build_ffmpeg_ios() {
|
|
||||||
local target_platform=$1
|
|
||||||
local target_cpu_arch=""
|
|
||||||
if [ "$target_platform" == "arm64-simulator" ]; then
|
|
||||||
target_sdk="iphonesimulator"
|
|
||||||
target_cpu_arch="arm64"
|
|
||||||
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
|
|
||||||
elif [ "$target_platform" == "x86_64-simulator" ]; then
|
|
||||||
target_sdk="iphonesimulator"
|
|
||||||
target_cpu_arch="x86_64"
|
|
||||||
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
|
|
||||||
elif [ "$target_platform" == "arm64-iphoneos" ]; then
|
|
||||||
target_sdk="iphoneos"
|
|
||||||
target_cpu_arch="arm64"
|
|
||||||
minos="-miphoneos-version-min=$MINIMUM_IOS_VERSION"
|
|
||||||
else
|
|
||||||
echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local build_dir="$ffmpeg_source_dir/build_ios/$target_platform"
|
|
||||||
sudo mkdir -p "$build_dir"
|
|
||||||
pushd "$build_dir"
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options \
|
|
||||||
--sysroot="$(xcrun --sdk "$target_sdk" --show-sdk-path)" \
|
|
||||||
--enable-cross-compile \
|
|
||||||
--enable-optimizations \
|
|
||||||
--prefix=$prefix \
|
|
||||||
--arch=$target_cpu_arch \
|
|
||||||
--cc="xcrun --sdk ${target_sdk} clang -arch $target_cpu_arch" \
|
|
||||||
--cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_cpu_arch" \
|
|
||||||
--target-os=darwin \
|
|
||||||
--extra-cflags="$minos" \
|
|
||||||
--extra-cxxflags="$minos" \
|
|
||||||
--extra-objcflags="$minos" \
|
|
||||||
--extra-ldflags="$minos" \
|
|
||||||
--enable-shared \
|
|
||||||
--disable-static \
|
|
||||||
--install-name-dir='@rpath' \
|
|
||||||
--disable-audiotoolbox
|
|
||||||
|
|
||||||
sudo make install DESTDIR="$build_dir/installed" -j4
|
|
||||||
popd
|
|
||||||
}
|
|
||||||
|
|
||||||
build_info_plist() {
|
|
||||||
local file_path="$1"
|
|
||||||
local framework_name="$2"
|
|
||||||
local framework_id="$3"
|
|
||||||
|
|
||||||
# Apple plist format has a strict requirement that the version string
|
|
||||||
# contains up to 3 numerics separated by a dot. Meanwhile, FFmpeg versioning
|
|
||||||
# tends to use an 'n' prefix in their versioning. We use a regex to convert
|
|
||||||
# and verify the version string.
|
|
||||||
#
|
|
||||||
# https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleversion
|
|
||||||
local formatted_ffmpeg_version
|
|
||||||
if [[ $ffmpeg_version =~ ([0-9]+(\.[0-9]+){0,2}) ]]; then
|
|
||||||
formatted_ffmpeg_version="${BASH_REMATCH[1]}"
|
|
||||||
else
|
|
||||||
echo "Unable to format FFmpeg version string '$ffmpeg_version' into corresponding Apple Info.plist format"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local minimum_version_key="MinimumOSVersion"
|
|
||||||
local supported_platforms="iPhoneOS"
|
|
||||||
|
|
||||||
info_plist="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
|
||||||
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
|
||||||
<plist version=\"1.0\">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>en</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>${framework_name}</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>${framework_id}</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>${framework_name}</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>FMWK</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>${formatted_ffmpeg_version}</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>${formatted_ffmpeg_version}</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>${minimum_version_key}</key>
|
|
||||||
<string>${MINIMUM_IOS_VERSION}</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>${supported_platforms}</string>
|
|
||||||
</array>
|
|
||||||
<key>NSPrincipalClass</key>
|
|
||||||
<string></string>
|
|
||||||
</dict>
|
|
||||||
</plist>"
|
|
||||||
echo $info_plist | sudo tee ${file_path} 1>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
create_framework() {
|
|
||||||
# Create a 'traditional' framework from the corresponding dylib.
|
|
||||||
local framework_name="$1"
|
|
||||||
local platform="$2" # For now it's either arm64, x86_64-simulator, see below.
|
|
||||||
local ffmpeg_library_path="$ffmpeg_source_dir/build_ios/${platform}/installed$prefix"
|
|
||||||
local framework_complete_path="${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
|
|
||||||
|
|
||||||
sudo mkdir -p "${ffmpeg_library_path}/framework/${framework_name}.framework"
|
|
||||||
sudo cp "${ffmpeg_library_path}/lib/${framework_name}.dylib" "${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
|
|
||||||
|
|
||||||
# Fix LC_ID_DYLIB (to be libavcodec.framework/libavcodec instead of @rpath/libavcodec.xx.yy.dylib
|
|
||||||
sudo install_name_tool -id @rpath/${framework_name}.framework/${framework_name} "${framework_complete_path}"
|
|
||||||
|
|
||||||
build_info_plist "${ffmpeg_library_path}/framework/${framework_name}.framework/Info.plist" "${framework_name}" "io.qt.ffmpegkit."${framework_name}
|
|
||||||
|
|
||||||
# Fix all FFmpeg-related LC_LOAD_DYLIB, similar to how we fixed LC_ID_DYLIB above:
|
|
||||||
otool -L "$framework_complete_path" | awk '/\t/ {print $1}' | egrep "$dylib_regex" | while read -r dependency_path; do
|
|
||||||
found_name=$(tmp=${dependency_path/*\/}; echo ${tmp/\.*})
|
|
||||||
if [ "$found_name" != "$framework_name" ]
|
|
||||||
then
|
|
||||||
sudo install_name_tool -change "$dependency_path" @rpath/${found_name}.framework/${found_name} "${framework_complete_path}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
#sudo mkdir -p "$prefix/framework/"
|
|
||||||
#sudo cp -r "${ffmpeg_library_path}/framework/${framework_name}.framework" "$prefix/framework/"
|
|
||||||
}
|
|
||||||
|
|
||||||
create_xcframework() {
|
|
||||||
# Create 'traditional' framework from the corresponding dylib,
|
|
||||||
# also creating
|
|
||||||
local framework_name="$1"
|
|
||||||
local target_platform_a="$2"
|
|
||||||
local target_platform_b="$3"
|
|
||||||
|
|
||||||
local fw_a="$ffmpeg_source_dir/build_ios/${target_platform_a}/installed$prefix/framework/${framework_name}.framework"
|
|
||||||
local fw_b="$ffmpeg_source_dir/build_ios/${target_platform_b}/installed$prefix/framework/${framework_name}.framework"
|
|
||||||
|
|
||||||
sudo mkdir -p "$prefix/lib/"
|
|
||||||
sudo xcodebuild -create-xcframework -framework $fw_a -framework $fw_b -output "${prefix}/lib/${framework_name}.xcframework"
|
|
||||||
}
|
|
||||||
|
|
||||||
build_ffmpeg_ios "x86_64-simulator"
|
|
||||||
build_ffmpeg_ios "arm64-iphoneos"
|
|
||||||
|
|
||||||
ffmpeg_libs="libavcodec libavformat libavutil libswresample libswscale"
|
|
||||||
|
|
||||||
for name in $ffmpeg_libs; do
|
|
||||||
create_framework $name "arm64-iphoneos"
|
|
||||||
create_framework $name "x86_64-simulator"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Create corresponding (xc)frameworks containing both arm64 and arm64-simulator frameworks:
|
|
||||||
for name in $ffmpeg_libs; do
|
|
||||||
create_xcframework $name "arm64-iphoneos" "x86_64-simulator"
|
|
||||||
done
|
|
||||||
|
|
||||||
# xcframeworks are already installed directly into the target output directory.
|
|
||||||
# We need to install headers
|
|
||||||
sudo cp -r "$ffmpeg_source_dir/build_ios/arm64-iphoneos/installed$prefix/include" $prefix
|
|
||||||
|
|
||||||
set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" $prefix
|
|
||||||
@@ -63,6 +63,7 @@ cmake "$targetDir" -G"Ninja Multi-Config" \
|
|||||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||||
-DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" \
|
-DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" \
|
||||||
-DCMAKE_INSTALL_PREFIX="$installPrefix" \
|
-DCMAKE_INSTALL_PREFIX="$installPrefix" \
|
||||||
|
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||||
"${extraCMakeArgs[@]}" \
|
"${extraCMakeArgs[@]}" \
|
||||||
"$extraOpenSslArg" \
|
"$extraOpenSslArg" \
|
||||||
-DgRPC_BUILD_TESTS=OFF \
|
-DgRPC_BUILD_TESTS=OFF \
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ source "${BASH_SOURCE%/*}/SetEnvVar.sh"
|
|||||||
# shellcheck source=./DownloadURL.sh
|
# shellcheck source=./DownloadURL.sh
|
||||||
source "${BASH_SOURCE%/*}/DownloadURL.sh"
|
source "${BASH_SOURCE%/*}/DownloadURL.sh"
|
||||||
|
|
||||||
|
zswitch=$1 # Since 7z 25.01 multi-hop symbolic links are restricted with -snl switch levels
|
||||||
version="20.1.3"
|
version="20.1.3"
|
||||||
baseUrl="https://download.qt.io/development_releases/prebuilt/libclang"
|
baseUrl="https://download.qt.io/development_releases/prebuilt/libclang"
|
||||||
cachedUrl="http://ci-files01-hki.ci.qt.io/input/libclang/dynamic"
|
cachedUrl="http://ci-files01-hki.ci.qt.io/input/libclang/dynamic"
|
||||||
@@ -40,7 +41,7 @@ DownloadURL "$url_cached" "$url" "$sha1" "$zip"
|
|||||||
if command -v 7zr &> /dev/null; then
|
if command -v 7zr &> /dev/null; then
|
||||||
sudo 7zr x $zip -o/usr/local/
|
sudo 7zr x $zip -o/usr/local/
|
||||||
else
|
else
|
||||||
sudo 7z x $zip -o/usr/local/
|
sudo 7z x $zswitch $zip -o/usr/local/
|
||||||
fi
|
fi
|
||||||
sudo mv /usr/local/libclang "$destination"
|
sudo mv /usr/local/libclang "$destination"
|
||||||
rm -rf $zip
|
rm -rf $zip
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ PROVISIONING_DIR="$(dirname "$0")/../../"
|
|||||||
# shellcheck source=./common.sourced.sh
|
# shellcheck source=./common.sourced.sh
|
||||||
source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
|
source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
|
||||||
|
|
||||||
|
zswitch=$1 # Since 7z 25.01 multi-hop symbolic links are restricted with -snl switch levels
|
||||||
libclang_version="20.1.0"
|
libclang_version="20.1.0"
|
||||||
|
|
||||||
if uname -a |grep -q Darwin; then
|
if uname -a |grep -q Darwin; then
|
||||||
@@ -61,7 +62,7 @@ DownloadURL $url_cached $url $sha1 $zip
|
|||||||
if command -v 7zr &> /dev/null; then
|
if command -v 7zr &> /dev/null; then
|
||||||
sudo 7zr x $zip -o/usr/local/
|
sudo 7zr x $zip -o/usr/local/
|
||||||
else
|
else
|
||||||
sudo 7z x $zip -o/usr/local/
|
sudo 7z x $zswitch $zip -o/usr/local/
|
||||||
fi
|
fi
|
||||||
sudo mv /usr/local/libclang "$destination"
|
sudo mv /usr/local/libclang "$destination"
|
||||||
rm -rf $zip
|
rm -rf $zip
|
||||||
|
|||||||
@@ -5,26 +5,32 @@
|
|||||||
# This script install prebuilt OpenSSL which was built against Android NDK 25.
|
# This script install prebuilt OpenSSL which was built against Android NDK 25.
|
||||||
# OpenSSL build will fail with Android NDK 22, because it's missing platforms and sysroot directories
|
# OpenSSL build will fail with Android NDK 22, because it's missing platforms and sysroot directories
|
||||||
|
|
||||||
set -ex
|
set -eux
|
||||||
# shellcheck source=../unix/DownloadURL.sh
|
# shellcheck source=../unix/DownloadURL.sh
|
||||||
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||||
# shellcheck source=../unix/SetEnvVar.sh
|
# shellcheck source=../unix/SetEnvVar.sh
|
||||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||||
|
|
||||||
|
outputPathBase="${HOME}"
|
||||||
|
|
||||||
sslVersionForLatest="3.0.7"
|
sslVersionForLatest="3.0.7"
|
||||||
ndkVersionLatest="r27c"
|
ndkVersionLatest="r27c"
|
||||||
|
featureSuffixLatest="_16kb"
|
||||||
prebuiltOpensslShaLatest="2cc15dd990460c2c7157ab257a47071fbd9e0ac8"
|
prebuiltOpensslShaLatest="2cc15dd990460c2c7157ab257a47071fbd9e0ac8"
|
||||||
|
|
||||||
sslVersionForPreview="3.0.7"
|
sslVersionForPreview="3.0.7"
|
||||||
ndkVersionPreview="r29-beta2"
|
ndkVersionPreview="r29-beta2"
|
||||||
|
featureSuffixPreview="_16kb"
|
||||||
prebuiltOpensslShaPreview="76c9788216440111be97ea1a63c4d8cd807baacd"
|
prebuiltOpensslShaPreview="76c9788216440111be97ea1a63c4d8cd807baacd"
|
||||||
|
|
||||||
ndkVersionNightly1=$ndkVersionLatest
|
ndkVersionNightly1=$ndkVersionLatest
|
||||||
sslVersionForNightly1=$sslVersionForLatest
|
sslVersionForNightly1=$sslVersionForLatest
|
||||||
|
featureSuffixNightly1=""
|
||||||
prebuiltOpensslShaNightly1=$prebuiltOpensslShaLatest
|
prebuiltOpensslShaNightly1=$prebuiltOpensslShaLatest
|
||||||
|
|
||||||
ndkVersionNightly2=$ndkVersionLatest
|
ndkVersionNightly2=$ndkVersionLatest
|
||||||
sslVersionForNightly2=$sslVersionForLatest
|
sslVersionForNightly2=$sslVersionForLatest
|
||||||
|
featureSuffixNightly2=""
|
||||||
prebuiltOpensslShaNightly2=$prebuiltOpensslShaLatest
|
prebuiltOpensslShaNightly2=$prebuiltOpensslShaLatest
|
||||||
|
|
||||||
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r29-beta2
|
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r29-beta2
|
||||||
@@ -59,41 +65,110 @@ PATH=$TOOLCHAIN:$PATH CC=clang ./Configure android-arm
|
|||||||
PATH=$TOOLCHAIN:$PATH CC=clang make build_generated
|
PATH=$TOOLCHAIN:$PATH CC=clang make build_generated
|
||||||
EOB
|
EOB
|
||||||
|
|
||||||
|
function BuildOutputPath() {
|
||||||
|
local ndkVersion="$1"
|
||||||
|
local suffix="$2"
|
||||||
|
local sslVersion="$3"
|
||||||
|
|
||||||
|
echo "${outputPathBase}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}"
|
||||||
|
}
|
||||||
|
|
||||||
function InstallPrebuiltOpenssl() {
|
function InstallPrebuiltOpenssl() {
|
||||||
|
local ndkVersion="$1"
|
||||||
|
local suffix="$2"
|
||||||
|
local sha="$3"
|
||||||
|
local sslVersion="$4"
|
||||||
|
local output_dir="$5"
|
||||||
|
|
||||||
ndkVersion=$1
|
local prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}.zip"
|
||||||
sha=$2
|
local targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}.zip"
|
||||||
sslVersion=$3
|
|
||||||
|
|
||||||
opensslHome="${HOME}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb"
|
DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
|
||||||
if [[ ! -d ${opensslHome} ]]; then
|
|
||||||
prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb.zip"
|
|
||||||
targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb.zip"
|
|
||||||
|
|
||||||
DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
|
local tmp_extract
|
||||||
unzip -o "$targetFile" -d "${HOME}"
|
tmp_extract="$(mktemp -d "${TMPDIR:-/tmp}/openssl-extract.XXXXXX")"
|
||||||
sudo rm -f "$targetFile"
|
unzip -q -o "$targetFile" -d "$tmp_extract"
|
||||||
|
rm -f "$targetFile"
|
||||||
|
|
||||||
|
# We assume there is only one top-level directory in the openssl zip
|
||||||
|
local temp_openssl_root
|
||||||
|
temp_openssl_root="$(find "$tmp_extract" -mindepth 1 -maxdepth 1 -type d | head -n 1)"
|
||||||
|
if [[ -z "$temp_openssl_root" ]]; then
|
||||||
|
echo "ERROR: Expected a single top-level directory in the archive, but none was found." >&2
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mv "$temp_openssl_root" "$output_dir"
|
||||||
|
rm -rf "$tmp_extract"
|
||||||
|
|
||||||
|
# There have been cases where necessary symlinks are lost when unarchiving.
|
||||||
|
# Force-create them now.
|
||||||
|
local abi_list="arm64-v8a armeabi-v7a x86 x86_64"
|
||||||
|
for abi in $abi_list; do
|
||||||
|
ln -fs "${output_dir}/include" "${output_dir}/${abi}/include"
|
||||||
|
ln -fs "${output_dir}/${abi}/libcrypto_3.so" "${output_dir}/${abi}/libcrypto.so"
|
||||||
|
ln -fs "${output_dir}/${abi}/libssl_3.so" "${output_dir}/${abi}/libssl.so"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then
|
if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then
|
||||||
InstallPrebuiltOpenssl $ndkVersionNightly1 $prebuiltOpensslShaNightly1 $sslVersionForNightly1
|
outputDirNightly1=$(BuildOutputPath \
|
||||||
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$opensslHome"
|
"$ndkVersionNightly1" \
|
||||||
echo "OpenSSL for Android $ndkVersionNightly1 = $sslVersionForNightly1" >> ~/versions.txt
|
"$featureSuffixNightly1" \
|
||||||
|
"$sslVersionForNightly1")
|
||||||
|
|
||||||
|
InstallPrebuiltOpenssl \
|
||||||
|
"$ndkVersionNightly1" \
|
||||||
|
"$featureSuffixNightly1" \
|
||||||
|
"$prebuiltOpensslShaNightly1" \
|
||||||
|
"$sslVersionForNightly1" \
|
||||||
|
"$outputDirNightly1"
|
||||||
|
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$outputDirNightly1"
|
||||||
|
echo "OpenSSL for Android ${ndkVersionNightly1} = ${sslVersionForNightly1}" >> ~/versions.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then
|
if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then
|
||||||
InstallPrebuiltOpenssl $ndkVersionNightly2 $prebuiltOpensslShaNightly2 $sslVersionForNightly2
|
outputDirNightly2=$(BuildOutputPath \
|
||||||
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY2" "$opensslHome"
|
"$ndkVersionNightly2" \
|
||||||
echo "OpenSSL for Android $ndkVersionNightly2 = $sslVersionForNightly2" >> ~/versions.txt
|
"$featureSuffixNightly2" \
|
||||||
|
"$sslVersionForNightly2")
|
||||||
|
|
||||||
|
InstallPrebuiltOpenssl \
|
||||||
|
"$ndkVersionNightly2" \
|
||||||
|
"$featureSuffixNightly2" \
|
||||||
|
"$prebuiltOpensslShaNightly2" \
|
||||||
|
"$sslVersionForNightly2" \
|
||||||
|
"$outputDirNightly2"
|
||||||
|
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$outputDirNightly2"
|
||||||
|
echo "OpenSSL for Android ${ndkVersionNightly2} = ${sslVersionForNightly2}" >> ~/versions.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
|
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
|
||||||
InstallPrebuiltOpenssl $ndkVersionPreview $prebuiltOpensslShaPreview $sslVersionForPreview
|
outputDirPreview="$(BuildOutputPath \
|
||||||
SetEnvVar "OPENSSL_ANDROID_HOME_PREVIEW" "$opensslHome"
|
"$ndkVersionPreview" \
|
||||||
echo "OpenSSL for Android $ndkVersionPreview = $sslVersionForPreview" >> ~/versions.txt
|
"$featureSuffixPreview" \
|
||||||
|
"$sslVersionForPreview")"
|
||||||
|
|
||||||
|
InstallPrebuiltOpenssl \
|
||||||
|
"$ndkVersionPreview" \
|
||||||
|
"$featureSuffixPreview" \
|
||||||
|
"$prebuiltOpensslShaPreview" \
|
||||||
|
"$sslVersionForPreview" \
|
||||||
|
"$outputDirPreview"
|
||||||
|
SetEnvVar "OPENSSL_ANDROID_HOME_PREVIEW" "$outputDirPreview"
|
||||||
|
echo "OpenSSL for Android ${ndkVersionPreview} = ${sslVersionForPreview}" >> ~/versions.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslShaLatest $sslVersionForLatest
|
outputDirLatest="$(BuildOutputPath \
|
||||||
SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome"
|
"$ndkVersionLatest" \
|
||||||
echo "OpenSSL for Android $ndkVersionLatest = $sslVersionForLatest" >> ~/versions.txt
|
"$featureSuffixLatest" \
|
||||||
|
"$sslVersionForLatest")"
|
||||||
|
|
||||||
|
InstallPrebuiltOpenssl \
|
||||||
|
"$ndkVersionLatest" \
|
||||||
|
"$featureSuffixLatest" \
|
||||||
|
"$prebuiltOpensslShaLatest" \
|
||||||
|
"$sslVersionForLatest" \
|
||||||
|
"$outputDirLatest"
|
||||||
|
SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$outputDirLatest"
|
||||||
|
echo "OpenSSL for Android ${ndkVersionLatest} = ${sslVersionForLatest}" >> ~/versions.txt
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ $sdkChecksumSha1 = "8fe98c00fde0f524760bb9021f438bd7d9304a69"
|
|||||||
$package_path = "C:\Windows\Temp\$package"
|
$package_path = "C:\Windows\Temp\$package"
|
||||||
|
|
||||||
Download $officialUrl $cachedUrl $package_path
|
Download $officialUrl $cachedUrl $package_path
|
||||||
Verify-Checksum $package_path $sdkChecksumSha1 sha1
|
Verify-Checksum $package_path $sdkChecksumSha1
|
||||||
Write-Host "Installing DirectX SDK"
|
Write-Host "Installing DirectX SDK"
|
||||||
Run-Executable $package_path "/u"
|
Run-Executable $package_path "/u"
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ function build-install-grpc {
|
|||||||
"-DgRPC_SSL_PROVIDER=package"
|
"-DgRPC_SSL_PROVIDER=package"
|
||||||
# protobuf
|
# protobuf
|
||||||
"-DProtobuf_USE_STATIC_LIBS=ON"
|
"-DProtobuf_USE_STATIC_LIBS=ON"
|
||||||
|
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
|
||||||
"-DCMAKE_PREFIX_PATH=$protobufRoot"
|
"-DCMAKE_PREFIX_PATH=$protobufRoot"
|
||||||
)
|
)
|
||||||
cmake .. -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="$BuildType" -DCMAKE_INSTALL_PREFIX="$installPath" $extraCMakeArgs $configureOptions
|
cmake .. -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="$BuildType" -DCMAKE_INSTALL_PREFIX="$installPath" $extraCMakeArgs $configureOptions
|
||||||
|
|||||||
@@ -2,16 +2,20 @@ function Verify-Checksum
|
|||||||
{
|
{
|
||||||
Param (
|
Param (
|
||||||
[string]$File=$(throw("You must specify a filename to get the checksum of.")),
|
[string]$File=$(throw("You must specify a filename to get the checksum of.")),
|
||||||
[string]$Expected=$(throw("Checksum required")),
|
[string]$Expected=$(throw("Checksum required"))
|
||||||
[ValidateSet("sha256","sha1","md5")][string]$Algorithm="sha1"
|
|
||||||
)
|
)
|
||||||
|
switch ($Expected.Length) {
|
||||||
|
40 { $Algorithm = "SHA1" }
|
||||||
|
64 { $Algorithm = "SHA256" }
|
||||||
|
default { throw "Unknown hash length for: $Expected" }
|
||||||
|
}
|
||||||
Write-Host "Verifying checksum of $File"
|
Write-Host "Verifying checksum of $File"
|
||||||
$fs = new-object System.IO.FileStream $File, "Open"
|
$fs = new-object System.IO.FileStream $File, "Open"
|
||||||
$algo = [type]"System.Security.Cryptography.$Algorithm"
|
$algo = [type]"System.Security.Cryptography.$Algorithm"
|
||||||
$crypto = $algo::Create()
|
$crypto = $algo::Create()
|
||||||
$hash = [BitConverter]::ToString($crypto.ComputeHash($fs)).Replace("-", "")
|
$hash = [BitConverter]::ToString($crypto.ComputeHash($fs)).Replace("-", "")
|
||||||
$fs.Close()
|
$fs.Close()
|
||||||
if ($hash -ne $Expected) {
|
if ($hash -ine $Expected) {
|
||||||
throw "Checksum verification failed, got: '$hash' expected: '$Expected'"
|
throw "Checksum verification failed, got: '$hash' expected: '$Expected'"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -271,10 +271,16 @@ function InstallAndroidArmv7 {
|
|||||||
$patchelf_sources = "https://ci-files01-hki.ci.qt.io/input/android/patchelf/0.17.2.tar.gz"
|
$patchelf_sources = "https://ci-files01-hki.ci.qt.io/input/android/patchelf/0.17.2.tar.gz"
|
||||||
$patchelf_download_location = "C:\Windows\Temp\0.17.2.tar.gz"
|
$patchelf_download_location = "C:\Windows\Temp\0.17.2.tar.gz"
|
||||||
|
|
||||||
Invoke-WebRequest -UseBasicParsing $patchelf_sources -OutFile $patchelf_download_location
|
try {
|
||||||
Verify-Checksum $patchelf_download_location $patchelf_sha1
|
Invoke-WebRequest -UseBasicParsing $patchelf_sources -OutFile $patchelf_download_location
|
||||||
Extract-tar_gz $patchelf_download_location $unzip_location
|
Verify-Checksum $patchelf_download_location $patchelf_sha1
|
||||||
Remove $patchelf_download_location
|
Extract-tar_gz $patchelf_download_location $unzip_location
|
||||||
|
Remove $patchelf_download_location
|
||||||
|
} catch {
|
||||||
|
Write-Host "Error grabbing sources when installing patchelf:"
|
||||||
|
Write-Host $_
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
|
||||||
Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath $msys -ArgumentList ("-lc", "`"cd C:/patchelf-0.17.2 && ./bootstrap.sh && ./configure && make install`"")
|
Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath $msys -ArgumentList ("-lc", "`"cd C:/patchelf-0.17.2 && ./bootstrap.sh && ./configure && make install`"")
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ $url_official = "https://go.dev/dl/go" + $version + ".windows-" + $arch + ".msi"
|
|||||||
|
|
||||||
Write-Host "Fetching Go $version..."
|
Write-Host "Fetching Go $version..."
|
||||||
Download $url_official $url_cache $goPackage
|
Download $url_official $url_cache $goPackage
|
||||||
Verify-Checksum $goPackage $sha256 sha256
|
Verify-Checksum $goPackage $sha256
|
||||||
Write-Host "Installing Go $version..."
|
Write-Host "Installing Go $version..."
|
||||||
Run-Executable "msiexec" "/quiet /i $goPackage"
|
Run-Executable "msiexec" "/quiet /i $goPackage"
|
||||||
Write-Output "Go = $version" >> ~\versions.txt
|
Write-Output "Go = $version" >> ~\versions.txt
|
||||||
|
|||||||
@@ -10,17 +10,17 @@ $temp = "$env:tmp"
|
|||||||
$cpu_arch = Get-CpuArchitecture
|
$cpu_arch = Get-CpuArchitecture
|
||||||
switch ($cpu_arch) {
|
switch ($cpu_arch) {
|
||||||
arm64 {
|
arm64 {
|
||||||
$zipPackage = "OpenSSH-ARM64"
|
$base_file_name = "OpenSSH-ARM64"
|
||||||
$sha1 = "ca3e8f44a550b7ae71c8e122acd4ed905d66feb0"
|
$sha1 = "ca3e8f44a550b7ae71c8e122acd4ed905d66feb0"
|
||||||
Break
|
Break
|
||||||
}
|
}
|
||||||
x64 {
|
x64 {
|
||||||
$zipPackage = "OpenSSH-Win64"
|
$base_file_name = "OpenSSH-Win64"
|
||||||
$sha1 = "1397d40d789ae0911b3cc818b9dcd9321fed529b"
|
$sha1 = "1397d40d789ae0911b3cc818b9dcd9321fed529b"
|
||||||
Break
|
Break
|
||||||
}
|
}
|
||||||
x86 {
|
x86 {
|
||||||
$zipPackage = "OpenSSH-Win32"
|
$base_file_name = "OpenSSH-Win32"
|
||||||
$sha1 = "4642C62F72C108C411E27CE282A863791B63329B"
|
$sha1 = "4642C62F72C108C411E27CE282A863791B63329B"
|
||||||
Break
|
Break
|
||||||
}
|
}
|
||||||
@@ -29,20 +29,27 @@ switch ($cpu_arch) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Host "Fetching $zipPackage $version..."
|
Write-Host "Fetching $base_file_name $version..."
|
||||||
$url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/openssh/" + $version + "/" + $zipPackage + ".zip"
|
$url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/openssh/$version/$base_file_name.zip"
|
||||||
$url_official = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/" + $version + "/" + $zipPackage + ".zip"
|
$url_official = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/$version/$base_file_name.zip"
|
||||||
Download $url_official $url_cache "$temp\$zipPackage"
|
$output_zip_file = "$temp\$base_file_name.zip"
|
||||||
Verify-Checksum "$temp\$zipPackage" $sha1
|
Download $url_official $url_cache $output_zip_file
|
||||||
|
Verify-Checksum $output_zip_file $sha1
|
||||||
|
|
||||||
Write-Host "Extracting the package"
|
Write-Host "Extracting the package"
|
||||||
Extract-7Zip "$temp\$zipPackage" C:\"Program Files"
|
Extract-7Zip $output_zip_file "C:\Program Files"
|
||||||
|
# We assume the incoming zip contains exactly one directory, named the same
|
||||||
|
# as the base file name of th zip.
|
||||||
|
$output_dir = "C:\Program Files\$base_file_name"
|
||||||
|
if (-not (Test-Path $output_dir -PathType Container)) {
|
||||||
|
throw "Error. Expected output directory '$output_dir' does not exist."
|
||||||
|
}
|
||||||
|
|
||||||
Write-Host "Installing $zipPackage $version..."
|
Write-Host "Installing $base_file_name $version..."
|
||||||
$path = "C:\Program Files\" + $zipPackage + "\install-sshd.ps1"
|
$install_script = "$output_dir\install-sshd.ps1"
|
||||||
|
|
||||||
# Installation done as shown at https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
|
# Installation done as shown at https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
|
||||||
powershell.exe -ExecutionPolicy Bypass -File $path
|
powershell.exe -ExecutionPolicy Bypass -File $install_script
|
||||||
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
|
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
|
||||||
net start sshd
|
net start sshd
|
||||||
Set-Service sshd -StartupType Automatic
|
Set-Service sshd -StartupType Automatic
|
||||||
|
|||||||
46
coin/provisioning/common/windows/install-rust.ps1
Normal file
46
coin/provisioning/common/windows/install-rust.ps1
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
. "$PSScriptRoot\helpers.ps1"
|
||||||
|
|
||||||
|
# This script will install Rust
|
||||||
|
|
||||||
|
$rust_version="1.92.0"
|
||||||
|
|
||||||
|
$cpu_arch = Get-CpuArchitecture
|
||||||
|
switch ($cpu_arch) {
|
||||||
|
arm64 {
|
||||||
|
$rust_arch = "aarch64"
|
||||||
|
$sha256="DBB09F213D5A9EBB3B2F4C7D65BA7C3C6CAD7D9A76927D079604020C3EA0AD5A"
|
||||||
|
Break
|
||||||
|
}
|
||||||
|
x64 {
|
||||||
|
$rust_arch = "x86_64"
|
||||||
|
$sha256="BD3FD270E92D12094151AAE3A67435B7FEF2164B10D96E99A94230929CDA09FD"
|
||||||
|
Break
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
throw "Unknown architecture $cpu_arch"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$installer_name="rust-" + $rust_version + "-" + $rust_arch + "-pc-windows-msvc.msi"
|
||||||
|
|
||||||
|
$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\" + $installer_name
|
||||||
|
$url_official = "https://static.rust-lang.org/dist/" + $installer_name
|
||||||
|
$tmp_package = "C:\Windows\Temp\" + $installer_name
|
||||||
|
|
||||||
|
Download $url_official $url_cache $tmp_package
|
||||||
|
Verify-Checksum $tmp_package $sha256 "sha256"
|
||||||
|
Run-Executable "msiexec" "/quiet /i $tmp_package"
|
||||||
|
|
||||||
|
Set-EnvironmentVariable "PATH" "C:\Program Files\Rust stable MSVC 1.92\bin;$([Environment]::GetEnvironmentVariable('PATH', 'Machine'))"
|
||||||
|
|
||||||
|
Run-Executable "cargo" "install bindgen-cli --root=C:\Utils\rust-tools"
|
||||||
|
|
||||||
|
Set-EnvironmentVariable "PATH" "C:\Utils\rust-tools\bin;$([Environment]::GetEnvironmentVariable('PATH', 'Machine'))"
|
||||||
|
|
||||||
|
Write-Host "Cleaning $tmp_package.."
|
||||||
|
Remove "$tmp_package"
|
||||||
|
|
||||||
|
Write-Output "Rust = $version" >> ~\versions.txt
|
||||||
@@ -17,9 +17,9 @@ $install_location = "c:\Utils\$prog"
|
|||||||
|
|
||||||
$tmp_location = "c:\users\qt\downloads"
|
$tmp_location = "c:\users\qt\downloads"
|
||||||
Download $cached_url $cached_url "$tmp_location\$pkg"
|
Download $cached_url $cached_url "$tmp_location\$pkg"
|
||||||
Verify-Checksum "$tmp_location\$pkg" $sha1 sha1
|
Verify-Checksum "$tmp_location\$pkg" $sha1
|
||||||
Download $dep_cached_url $dep_cached_url "$tmp_location\$dep_pkg"
|
Download $dep_cached_url $dep_cached_url "$tmp_location\$dep_pkg"
|
||||||
Verify-Checksum "$tmp_location\$dep_pkg" $dep_sha1 sha1
|
Verify-Checksum "$tmp_location\$dep_pkg" $dep_sha1
|
||||||
|
|
||||||
Extract-7Zip "$tmp_location\$pkg" $install_location
|
Extract-7Zip "$tmp_location\$pkg" $install_location
|
||||||
Extract-7Zip "$tmp_location\$dep_pkg" $install_location
|
Extract-7Zip "$tmp_location\$dep_pkg" $install_location
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ $vcpkgExeCacheUrl = "\\ci-files01-hki.ci.qt.io\provisioning\vcpkg\vcpkg-$nonDott
|
|||||||
$vcpkgExe = "C:\Windows\Temp\vcpkg.exe"
|
$vcpkgExe = "C:\Windows\Temp\vcpkg.exe"
|
||||||
|
|
||||||
Download "$vcpkgExeOfficialUrl" "$vcpkgExeCacheUrl" "$vcpkgExe"
|
Download "$vcpkgExeOfficialUrl" "$vcpkgExeCacheUrl" "$vcpkgExe"
|
||||||
Verify-Checksum $vcpkgExe $vcpkgExechecksum "sha256"
|
Verify-Checksum $vcpkgExe $vcpkgExechecksum
|
||||||
Move-Item "$vcpkgExe" -Destination "$vcpkgRoot" -Force
|
Move-Item "$vcpkgExe" -Destination "$vcpkgRoot" -Force
|
||||||
|
|
||||||
if(![System.IO.File]::Exists("$vcpkgRoot\vcpkg.exe")){
|
if(![System.IO.File]::Exists("$vcpkgRoot\vcpkg.exe")){
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ $tempfile = "C:\Windows\Temp\" + $filename_zip
|
|||||||
|
|
||||||
Write-Host "Fetching Telegraf $version..."
|
Write-Host "Fetching Telegraf $version..."
|
||||||
Download $url_official $url_cache $tempfile
|
Download $url_official $url_cache $tempfile
|
||||||
Verify-Checksum $tempfile $sha256 sha256
|
Verify-Checksum $tempfile $sha256
|
||||||
|
|
||||||
Write-Host "Installing telegraf.exe under C:\Utils\telegraf"
|
Write-Host "Installing telegraf.exe under C:\Utils\telegraf"
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/node-v$version-win-
|
|||||||
|
|
||||||
Write-Host "Installing Node.js"
|
Write-Host "Installing Node.js"
|
||||||
Download $externalUrl $internalUrl $package
|
Download $externalUrl $internalUrl $package
|
||||||
Verify-Checksum $package $sha256 "sha256"
|
Verify-Checksum $package $sha256
|
||||||
Extract-7Zip $package $targetFolder
|
Extract-7Zip $package $targetFolder
|
||||||
Add-Path $installFolder
|
Add-Path $installFolder
|
||||||
Remove $package
|
Remove $package
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ $script:package_path = "$packageRoot\\$nugetPackage"
|
|||||||
|
|
||||||
New-Item -ItemType Directory -Path "$packageRoot"
|
New-Item -ItemType Directory -Path "$packageRoot"
|
||||||
Download $officialUrl $cachedUrl $package_path
|
Download $officialUrl $cachedUrl $package_path
|
||||||
Verify-Checksum $package_path $sdkChecksumSha1 sha1
|
Verify-Checksum $package_path $sdkChecksumSha1
|
||||||
Write-Host "Installing Nuget"
|
Write-Host "Installing Nuget"
|
||||||
Run-Executable "$package_path" "install Microsoft.WindowsAppSDK -OutputDirectory $packageRoot"
|
Run-Executable "$package_path" "install Microsoft.WindowsAppSDK -OutputDirectory $packageRoot"
|
||||||
|
|
||||||
|
|||||||
@@ -252,6 +252,8 @@ installPackages+=(libusb-1.0-0-dev)
|
|||||||
# password management support for Qt Creator
|
# password management support for Qt Creator
|
||||||
installPackages+=(libsecret-1-dev)
|
installPackages+=(libsecret-1-dev)
|
||||||
installPackages+=(debian-archive-keyring)
|
installPackages+=(debian-archive-keyring)
|
||||||
|
# Keep zoneinfo up-to-date (COIN-1282)
|
||||||
|
installPackages+=(tzdata)
|
||||||
|
|
||||||
|
|
||||||
echo "Running update for apt"
|
echo "Running update for apt"
|
||||||
|
|||||||
0
coin/provisioning/qtci-linux-Debian-11.6-aarch64/09-openssl.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-Debian-11.6-aarch64/09-openssl.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-Debian-11.6-aarch64/22-mqtt_broker.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-Debian-11.6-aarch64/22-mqtt_broker.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-Debian-11.6-aarch64/60-install_protobuf.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-Debian-11.6-aarch64/60-install_protobuf.sh
Normal file → Executable file
4
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/01-disable_net_lso.sh
Executable file
4
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/01-disable_net_lso.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sudo ethtool -K ens3 tso off
|
||||||
|
ethtool -k ens3 | grep tcp-segmentation-offload # Output: tcp-segmentation-offload: off
|
||||||
3
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/01-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/01-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#!/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 -e
|
||||||
|
|
||||||
|
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions_rhc.sh -o "/tmp/redhat_ak.sh" &>/dev/null
|
||||||
|
sudo chmod 755 /tmp/redhat_ak.sh
|
||||||
|
sudo /tmp/redhat_ak.sh
|
||||||
|
|
||||||
|
# refresh local certificates
|
||||||
|
sudo subscription-manager refresh
|
||||||
|
|
||||||
|
sudo rm -f /tmp/redhat_ak.sh
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
# Ipv6 link local becomes tentative and dadfailed if two systems has the same secret_key
|
||||||
|
# New unique secret key will be created automatically during start up.
|
||||||
|
# https://access.redhat.com/solutions/3553581
|
||||||
|
echo "Removing secret_key"
|
||||||
|
sudo rm -f "/var/lib/NetworkManager/secret_key"
|
||||||
|
|
||||||
|
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/01-set-ulimit.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/01-set-ulimit.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/set_ulimit.sh"
|
||||||
20
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/01-systemsetup.sh
Executable file
20
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/01-systemsetup.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
# shellcheck source=../common/shared/network_test_server_ip.txt
|
||||||
|
source "$BASEDIR/../common/shared/network_test_server_ip.txt"
|
||||||
|
|
||||||
|
echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts"
|
||||||
|
echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts
|
||||||
|
|
||||||
|
# Set timezone to UTC.
|
||||||
|
sudo timedatectl set-timezone Etc/UTC
|
||||||
|
|
||||||
|
"$BASEDIR/../common/linux/configure-gnome-shell.sh"
|
||||||
|
|
||||||
|
echo "Disable windows key from showing the GNOME Shell Activities overlay"
|
||||||
|
gsettings set org.gnome.mutter overlay-key ""
|
||||||
10
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/02-install-xcb_util_cursor.sh
Executable file
10
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/02-install-xcb_util_cursor.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# Install xcb-util-cursor* libraries before updating repos. In updated repos these libraries are no longer available.
|
||||||
|
# QTQAINFRA-6325
|
||||||
|
sudo yum -y install xcb-util-cursor
|
||||||
|
sudo yum -y install xcb-util-cursor-devel
|
||||||
62
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/03-enable-repos.sh
Executable file
62
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/03-enable-repos.sh
Executable file
@@ -0,0 +1,62 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
echo "set WritePreparedUpdates=false" | sudo tee -a /etc/PackageKit/PackageKit.conf
|
||||||
|
sudo systemctl stop packagekit
|
||||||
|
sudo systemctl mask --now packagekit
|
||||||
|
while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
|
||||||
|
echo "Waiting for PackageKit to finish..."
|
||||||
|
sleep 1
|
||||||
|
sudo systemctl stop packagekit
|
||||||
|
done
|
||||||
|
sudo yum -y remove PackageKit gnome-software
|
||||||
|
|
||||||
|
sudo subscription-manager config --rhsm.manage_repos=0
|
||||||
|
sudo subscription-manager refresh
|
||||||
|
|
||||||
|
# List available RHEL versions and bind with correct one
|
||||||
|
sudo subscription-manager release --list
|
||||||
|
|
||||||
|
# Do not update Tier 1 via GUI without using this same --set
|
||||||
|
# - To avoid System to have newer packages than RPMS which will cause update issues
|
||||||
|
sudo subscription-manager release --set=10.0
|
||||||
|
sudo yum clean all
|
||||||
|
|
||||||
|
sudo tee "/etc/yum.repos.d/local.repo" > /dev/null <<EOC
|
||||||
|
[rhel-10-for-x86_64-baseos-rpms]
|
||||||
|
metadata_expire = 86400
|
||||||
|
baseurl = http://repo-clones-rhel10.ci.qt.io/rhel-10-for-x86_64-baseos-rpms
|
||||||
|
ui_repoid_vars = releasever basearch
|
||||||
|
name = Qt Red Hat Enterprise Linux 10 Base OS (RPMs)
|
||||||
|
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||||
|
enabled = 1
|
||||||
|
gpgcheck = 1
|
||||||
|
|
||||||
|
[rhel-10-for-x86_64-appstream-rpms]
|
||||||
|
metadata_expire = 86400
|
||||||
|
baseurl = http://repo-clones-rhel10.ci.qt.io/rhel-10-for-x86_64-appstream-rpms
|
||||||
|
ui_repoid_vars = releasever basearch
|
||||||
|
name = Qt Red Hat Enterprise Linux 10 Appstream (RPMs)
|
||||||
|
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||||
|
enabled = 1
|
||||||
|
gpgcheck = 1
|
||||||
|
|
||||||
|
[codeready-builder-for-rhel-10-x86_64-rpms]
|
||||||
|
metadata_expire = 86400
|
||||||
|
baseurl = http://repo-clones-rhel10.ci.qt.io/codeready-builder-for-rhel-10-x86_64-rpms
|
||||||
|
ui_repoid_vars = releasever basearch
|
||||||
|
name = Qt Red Hat Enterprise Linux Codeready Builder (RPMs)
|
||||||
|
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||||
|
enabled = 1
|
||||||
|
gpgcheck = 1
|
||||||
|
EOC
|
||||||
|
|
||||||
|
# Epel is required for 'double-conversion-devel', 'libsqlite3x' and 'p7zip'
|
||||||
|
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm
|
||||||
|
|
||||||
|
sudo yum clean all
|
||||||
|
# As well as this fetching the repository data, we also get a printout of the used repos
|
||||||
|
sudo yum repolist
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/limit-avahi-interfaces.sh"
|
||||||
210
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/04-install-packages.sh
Executable file
210
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/04-install-packages.sh
Executable file
@@ -0,0 +1,210 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# Remove update notifications and packagekit running in the background
|
||||||
|
sudo yum -y remove PackageKit gnome-software
|
||||||
|
|
||||||
|
# CI: All platforms should have up-to-date packages when new provision is made
|
||||||
|
echo "Quick fix: Temporarily skip RHEL 10.0 updates due to cockpit update fail (QTQAINFRA-7773)"
|
||||||
|
#sudo yum -y update
|
||||||
|
|
||||||
|
installPackages=()
|
||||||
|
# Make sure needed ca-certificates are available
|
||||||
|
installPackages+=(ca-certificates)
|
||||||
|
installPackages+=(git)
|
||||||
|
installPackages+=(zlib-devel)
|
||||||
|
installPackages+=(glib2-devel)
|
||||||
|
installPackages+=(openssl-devel)
|
||||||
|
installPackages+=(freetype-devel)
|
||||||
|
installPackages+=(fontconfig-devel)
|
||||||
|
installPackages+=(curl-devel)
|
||||||
|
installPackages+=(expat-devel)
|
||||||
|
installPackages+=(gettext-devel)
|
||||||
|
installPackages+=(perl-devel)
|
||||||
|
# Required by some old pkg perl script, FindBin.pm was moved to new package in perl 5.32
|
||||||
|
installPackages+=(perl-FindBin)
|
||||||
|
installPackages+=(dh-autoreconf)
|
||||||
|
# cmake build
|
||||||
|
installPackages+=(ninja-build)
|
||||||
|
installPackages+=(pcre2-devel)
|
||||||
|
installPackages+=(double-conversion-devel)
|
||||||
|
installPackages+=(zstd)
|
||||||
|
installPackages+=(libzstd-devel)
|
||||||
|
# EGL support
|
||||||
|
installPackages+=(mesa-libEGL)
|
||||||
|
|
||||||
|
installPackages+=(libxkbfile-devel)
|
||||||
|
# Xinput2
|
||||||
|
installPackages+=(libXi-devel)
|
||||||
|
installPackages+=(mariadb-server)
|
||||||
|
installPackages+=(mariadb)
|
||||||
|
installPackages+=(mariadb-devel)
|
||||||
|
installPackages+=(postgresql-devel)
|
||||||
|
installPackages+=(cups-devel)
|
||||||
|
installPackages+=(dbus-devel)
|
||||||
|
# gstreamer 1 for QtMultimedia
|
||||||
|
# Note! gstreamer1-plugins-bad-free needs to be upgraded or it will conflicts with gstreamer1-plugins-base-devel
|
||||||
|
installPackages+=(gstreamer1-plugins-bad-free)
|
||||||
|
installPackages+=(gstreamer1-devel)
|
||||||
|
installPackages+=(gstreamer1-plugins-base-devel)
|
||||||
|
# Not available for RHEL 10.0
|
||||||
|
#installPackages+=(gstreamer1-plugin-openh264)
|
||||||
|
# pipewire for QtMultimedia
|
||||||
|
installPackages+=(pipewire-devel)
|
||||||
|
# yasm for QtMultimedia
|
||||||
|
installPackages+=(yasm)
|
||||||
|
# gtk3 style for QtGui/QStyle
|
||||||
|
installPackages+=(gtk3-devel)
|
||||||
|
# libusb1 for tqtc-boot2qt/qdb
|
||||||
|
installPackages+=(libusbx-devel)
|
||||||
|
# speech-dispatcher-devel / flite-devel for QtSpeech
|
||||||
|
installPackages+=(speech-dispatcher-devel)
|
||||||
|
installPackages+=(flite-devel)
|
||||||
|
# Python 2 devel and pip. python-pip requires the EPEL repository to be added
|
||||||
|
# Python 2 no longer supported
|
||||||
|
# installPackages+=(python2-devel python2-pip)
|
||||||
|
# Python 3 with python-devel, pip and virtualenv
|
||||||
|
installPackages+=(python3)
|
||||||
|
installPackages+=(python3-devel)
|
||||||
|
# WebEngine
|
||||||
|
installPackages+=(bison)
|
||||||
|
installPackages+=(flex)
|
||||||
|
installPackages+=(gperftools-libs)
|
||||||
|
installPackages+=(gperf)
|
||||||
|
installPackages+=(alsa-lib-devel)
|
||||||
|
installPackages+=(pulseaudio-libs-devel)
|
||||||
|
installPackages+=(libdrm-devel)
|
||||||
|
installPackages+=(libva-devel)
|
||||||
|
installPackages+=(libXtst-devel)
|
||||||
|
installPackages+=(libxshmfence-devel)
|
||||||
|
installPackages+=(nspr-devel)
|
||||||
|
installPackages+=(nss-devel)
|
||||||
|
installPackages+=(python3-html5lib)
|
||||||
|
installPackages+=(libstdc++-static)
|
||||||
|
installPackages+=(libatomic)
|
||||||
|
# For Android builds
|
||||||
|
#installPackages+=(java-21-openjdk-devel.21.0.9.0.10-1.el10)
|
||||||
|
installPackages+=(java-21-openjdk-devel)
|
||||||
|
# For receiving shasum
|
||||||
|
installPackages+=(perl-Digest-SHA)
|
||||||
|
# INTEGRITY requirements
|
||||||
|
# Not available for RHEL 10.0
|
||||||
|
#installPackages+=(glibc.i686)
|
||||||
|
# Enable Qt Bluetooth
|
||||||
|
installPackages+=(bluez-libs-devel)
|
||||||
|
# QtNfc
|
||||||
|
installPackages+=(pcsc-lite-devel)
|
||||||
|
# QtWebKit
|
||||||
|
installPackages+=(libxml2-devel)
|
||||||
|
installPackages+=(libxslt-devel)
|
||||||
|
# For building Wayland from source
|
||||||
|
installPackages+=(libffi-devel)
|
||||||
|
# QtWayland
|
||||||
|
# installPackages+=(mesa-libwayland-egl)
|
||||||
|
# installPackages+=(mesa-libwayland-egl-devel)
|
||||||
|
installPackages+=(libwayland-egl)
|
||||||
|
installPackages+=(libwayland-client)
|
||||||
|
installPackages+=(libwayland-cursor)
|
||||||
|
installPackages+=(libwayland-server)
|
||||||
|
# Jenkins
|
||||||
|
installPackages+=(chrpath)
|
||||||
|
# libxkbcommon
|
||||||
|
installPackages+=(libxkbcommon-devel)
|
||||||
|
installPackages+=(libxkbcommon-x11-devel)
|
||||||
|
# xcb-util-* libraries
|
||||||
|
installPackages+=(xcb-util)
|
||||||
|
installPackages+=(xcb-util-devel)
|
||||||
|
installPackages+=(xcb-util-image-devel)
|
||||||
|
installPackages+=(xcb-util-keysyms-devel)
|
||||||
|
installPackages+=(xcb-util-wm-devel)
|
||||||
|
installPackages+=(xcb-util-renderutil-devel)
|
||||||
|
installPackages+=(xcb-util-cursor)
|
||||||
|
installPackages+=(xcb-util-cursor-devel)
|
||||||
|
|
||||||
|
# ODBC support
|
||||||
|
installPackages+=(unixODBC-devel)
|
||||||
|
installPackages+=(unixODBC)
|
||||||
|
# Vulkan support
|
||||||
|
installPackages+=(vulkan-devel)
|
||||||
|
installPackages+=(vulkan-tools)
|
||||||
|
# Conan: For Python build
|
||||||
|
installPackages+=(xz-devel)
|
||||||
|
installPackages+=(zlib-devel)
|
||||||
|
installPackages+=(libffi-devel)
|
||||||
|
installPackages+=(libsqlite3x-devel)
|
||||||
|
# Build.pl
|
||||||
|
installPackages+=(perl-Data-Dumper)
|
||||||
|
# In RedHat these come with Devtoolset
|
||||||
|
installPackages+=(gcc)
|
||||||
|
installPackages+=(gcc-c++)
|
||||||
|
installPackages+=(make)
|
||||||
|
# RHEL 10.0 has newer toolset
|
||||||
|
#installPackages+=(gcc-toolset-12)
|
||||||
|
# Open source VMware Tools
|
||||||
|
installPackages+=(open-vm-tools)
|
||||||
|
# nfs-utils is needed to make mount work with ci-files01
|
||||||
|
installPackages+=(nfs-utils)
|
||||||
|
# cifs-utils, for mounting smb drive
|
||||||
|
installPackages+=(keyutils)
|
||||||
|
installPackages+=(cifs-utils)
|
||||||
|
# zip, needed for vcpkg caching
|
||||||
|
installPackages+=(zip)
|
||||||
|
# OpenSSL requirement, built by vcpkg
|
||||||
|
installPackages+=(perl-IPC-Cmd)
|
||||||
|
# password management support for Qt Creator
|
||||||
|
installPackages+=(libsecret-devel)
|
||||||
|
# For Firebird in RTA
|
||||||
|
installPackages+=(libtommath-devel)
|
||||||
|
# For tst_license.pl with all the machines generating SBOM
|
||||||
|
installPackages+=(perl-JSON)
|
||||||
|
installPackages+=(perl-Test-Simple) # To install Test::More module for SBOM
|
||||||
|
# For qtgrpc build
|
||||||
|
installPackages+=(zlib-static)
|
||||||
|
# Keep zoneinfo up-to-date (COIN-1282)
|
||||||
|
installPackages+=(tzdata)
|
||||||
|
|
||||||
|
sudo yum -y install "${installPackages[@]}"
|
||||||
|
|
||||||
|
sudo dnf install nodejs-22.19.0-2.el10_0 -y
|
||||||
|
# Required by QtCore
|
||||||
|
sudo dnf install 'perl(English)' -y
|
||||||
|
|
||||||
|
# We shouldn't use yum to install virtualenv. The one found from package repo is not
|
||||||
|
# working, but we can use installed pip
|
||||||
|
sudo pip3 install --upgrade pip
|
||||||
|
# Configure pip
|
||||||
|
sudo pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache
|
||||||
|
sudo pip config --user set global.extra-index-url https://pypi.org/simple/
|
||||||
|
|
||||||
|
# Create SBOM virtual env compatible with RHEL 10.0 Python 3.12
|
||||||
|
mkdir "/home/qt/sbom/"
|
||||||
|
python3 -m venv /home/qt/sbom/venv
|
||||||
|
/home/qt/sbom/venv/bin/pip install wheel
|
||||||
|
/home/qt/sbom/venv/bin/pip install -r "${BASH_SOURCE%/*}/../common/shared/requirements.txt"
|
||||||
|
|
||||||
|
# Provisioning during installation says:
|
||||||
|
# 'The script sbom2doc is installed in '/usr/local/bin' which is not on PATH.'
|
||||||
|
# hence the explicit assignment to SBOM_PYTHON_APPS_PATH.
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
|
||||||
|
SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/sbom/venv/bin"
|
||||||
|
|
||||||
|
# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements
|
||||||
|
SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/home/qt/sbom/venv/bin"
|
||||||
|
|
||||||
|
# Make FindPython3.cmake to find python3
|
||||||
|
sudo ln -s /usr/bin/python3 /usr/local/bin/python3
|
||||||
|
|
||||||
|
gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
|
||||||
|
echo "GCC = $gccVersion" >> versions.txt
|
||||||
|
|
||||||
|
glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
|
||||||
|
echo "glibc = $glibcVersion" >> versions.txt
|
||||||
|
|
||||||
|
OpenSSLVersion="$(openssl version |cut -b 9-14)"
|
||||||
|
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||||
|
|
||||||
|
# List all available updates
|
||||||
|
sudo yum -y list updates
|
||||||
15
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/04-p7zip.sh
Executable file
15
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/04-p7zip.sh
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/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
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
name="p7zip"
|
||||||
|
version="7-11"
|
||||||
|
sudo yum -y install "$name"
|
||||||
|
|
||||||
|
# Link 7za to 7z so we can use existing installation scripts
|
||||||
|
sudo ln -s /usr/bin/7za /usr/bin/7z
|
||||||
|
|
||||||
|
echo "$name = $version" >> ~/versions.txt
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/05-install-ninja.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/05-install-ninja.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/install-ninja.sh"
|
||||||
5
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/05-install-patchelf.sh
Executable file
5
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/05-install-patchelf.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/install-patchelf.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/05-libclang-dyn.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/05-libclang-dyn.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
# shellcheck source=../common/unix/libclang-dyn.sh
|
||||||
|
"$BASEDIR/../common/unix/libclang-dyn.sh" "-snld10"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/05-libclang.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/05-libclang.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
# shellcheck source=../common/unix/libclang.sh
|
||||||
|
"$BASEDIR/../common/unix/libclang.sh" "-snld10"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck source=../common/linux/mount-vcpkg-cache-drive.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/mount-vcpkg-cache-drive.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/09-disable_selinux.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/09-disable_selinux.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck source=../common/linux/disable_selinux.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/disable_selinux.sh"
|
||||||
3
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/20-sccache.sh
Executable file
3
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/20-sccache.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/sccache.sh"
|
||||||
6
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/22-mqtt_broker.sh
Executable file
6
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/22-mqtt_broker.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
# shellcheck source=../common/unix/mqtt_broker.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/mqtt_broker.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/30-fbx.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/30-fbx.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/fbx_linux.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/30-install-conan.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/30-install-conan.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/unix/install-conan.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/30-install-git.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/30-install-git.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/install-git.sh"
|
||||||
45
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/30-install_icu.sh
Executable file
45
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/30-install_icu.sh
Executable file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
# shellcheck source=../common/unix/DownloadURL.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# This script will install ICU
|
||||||
|
|
||||||
|
icuVersion="73.2"
|
||||||
|
icuLocation="/usr/lib64"
|
||||||
|
sha1="d2bbb7b2a9a9ee00dba5cc6a68137f6c8a98c27e"
|
||||||
|
baseBinaryPackageURL="http://ci-files01-hki.ci.qt.io/input/icu/$icuVersion/icu-linux-g++-Rhel8.6-x64.7z"
|
||||||
|
baseBinaryPackageExternalURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel8.6-x64.7z"
|
||||||
|
|
||||||
|
sha1Dev="edc9cba31ffeac28bf7360c52b85b5e4d2f39043"
|
||||||
|
develPackageURL="http://ci-files01-hki.ci.qt.io/input/icu/$icuVersion/icu-linux-g++-Rhel8.6-x64-devel.7z"
|
||||||
|
develPackageExternalURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel8.6-x64-devel.7z"
|
||||||
|
|
||||||
|
echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation"
|
||||||
|
|
||||||
|
targetFile=$(mktemp)
|
||||||
|
DownloadURL "$baseBinaryPackageURL" "$baseBinaryPackageExternalURL" "$sha1" "$targetFile"
|
||||||
|
sudo 7z x -snld10 -y -o/usr/lib64 "$targetFile"
|
||||||
|
sudo rm "$targetFile"
|
||||||
|
|
||||||
|
echo "Installing custom ICU devel packages on RHEL"
|
||||||
|
|
||||||
|
tempDir=$(mktemp -d)
|
||||||
|
|
||||||
|
targetFile=$(mktemp)
|
||||||
|
DownloadURL "$develPackageURL" "$develPackageExternalURL" "$sha1Dev" "$targetFile"
|
||||||
|
7z x -snld10 -y -o"$tempDir" "$targetFile"
|
||||||
|
|
||||||
|
sudo cp -a "$tempDir"/lib/* /usr/lib64
|
||||||
|
sudo cp -a "$tempDir"/* /usr/
|
||||||
|
|
||||||
|
sudo rm "$targetFile"
|
||||||
|
sudo rm -fr "$tempDir"
|
||||||
|
|
||||||
|
sudo /sbin/ldconfig
|
||||||
|
|
||||||
|
echo "ICU = $icuVersion" >> ~/versions.txt
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/35-install-breakpad.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/35-install-breakpad.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck source=../common/unix/install-breakpad.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/install-breakpad.sh"
|
||||||
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/38-maven.sh
Executable file
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/38-maven.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/install-maven.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/40-android_linux.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/40-android_linux.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck source=../common/linux/android_linux.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/android_linux.sh"
|
||||||
12
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/40-install-cmake.sh
Executable file
12
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/40-install-cmake.sh
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
# This script installs CMake 3.6.2
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# CMake is needed for autotests that verify that Qt can be built with CMake
|
||||||
|
|
||||||
|
# shellcheck source=../common/linux/cmake_linux.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/cmake_linux.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/41-install-bundletool.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/41-install-bundletool.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck source=../common/linux/install-android-bundletool.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/install-android-bundletool.sh"
|
||||||
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/41-install-golang.sh
Executable file
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/41-install-golang.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/install-golang.sh" "linux"
|
||||||
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/41-install-upx.sh
Executable file
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/41-install-upx.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/install-upx.sh"
|
||||||
6
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/41-install-vcpkg.sh
Executable file
6
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/41-install-vcpkg.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/install-vcpkg.sh"
|
||||||
6
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/42-install-vcpkg-ports.sh
Executable file
6
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/42-install-vcpkg-ports.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/install-vcpkg-ports.sh" x64-linux-qt
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck source=../common/unix/openssl_for_android.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/openssl_for_android.sh"
|
||||||
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/51-openapi.sh
Executable file
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/51-openapi.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/unix/install_openapi.sh"
|
||||||
|
|
||||||
9
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/60-install_protobuf.sh
Executable file
9
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/60-install_protobuf.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck source=../common/unix/install_protobuf.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/install_protobuf.sh"
|
||||||
|
|
||||||
9
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/61-install_grpc.sh
Executable file
9
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/61-install_grpc.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck source=../common/unix/install_grpc.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
|
||||||
|
|
||||||
10
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/70-install_QemuGA.sh
Executable file
10
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/70-install_QemuGA.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
# This script installs QEMU Guest Agent
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
sudo yum -y install qemu-guest-agent
|
||||||
|
sudo systemctl start qemu-guest-agent
|
||||||
11
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/70-install_dwz.sh
Executable file
11
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/70-install_dwz.sh
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 Konstantin Tokarev <annulen@yandex.ru>
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
sudo yum -y install elfutils-libelf-devel
|
||||||
|
|
||||||
|
# shellcheck source=../common/linux/install_dwz.sh
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/install_dwz.sh"
|
||||||
|
|
||||||
3
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-bootstrap-autostart.sh
Executable file
3
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-bootstrap-autostart.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/bootstrap-autostart.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-firebird.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-firebird.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/install-firebird.sh"
|
||||||
5
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-install-ffmpeg.sh
Executable file
5
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-install-ffmpeg.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64" "use_16kb_page_size"
|
||||||
|
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86" "use_4kb_page_size"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-install-oracle.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-install-oracle.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/install-oracle.sh"
|
||||||
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-mimer.sh
Executable file
8
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/90-mimer.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/mimersql.sh" "openssl-3" "rpm"
|
||||||
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-cleanup.sh
Executable file
7
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-cleanup.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (C) 2026 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
"$(dirname "$0")"/../common/linux/cleanup_cache.sh
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#Copyright (C) 2026 The Qt Company Ltd
|
||||||
|
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR"/../common/linux/enable_test_stacktraces.sh
|
||||||
3
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-network-test.sh
Executable file
3
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-network-test.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
"$BASEDIR/../common/linux/install-network-test.sh" "--warn-only"
|
||||||
17
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-version.sh
Executable file
17
coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-version.sh
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
# This script needs to be called last during provisioning so that the software information will show up last in provision log.
|
||||||
|
|
||||||
|
# Storage installed RPM packages information
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# shellcheck disable=SC2129
|
||||||
|
echo "*********************************************" >> ~/versions.txt
|
||||||
|
echo "***** All installed RPM packages *****" >> ~/versions.txt
|
||||||
|
rpm -q -a | sort >> ~/versions.txt
|
||||||
|
echo "*********************************************" >> ~/versions.txt
|
||||||
|
|
||||||
|
"$(dirname "$0")/../common/linux/version.sh"
|
||||||
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-disable-automounting.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-disable-automounting.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-disable_net_lso.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-disable_net_lso.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-install_telegraf.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-install_telegraf.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-refresh-subscription-manager.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-refresh-subscription-manager.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-remove_network_manager_secret_key.sh
Normal file → Executable file
0
coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-remove_network_manager_secret_key.sh
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user