Coin: Enable Oracle Instant Client provisioning

Enable OCI provisioning for
 - Windows 10 22H2
 - Windows 11 23H2
 - Ubuntu 22.04 x86_64
 - RHEL 9.2 x86_64
 - SLES 15 SP5 x86_64
 - openSUSE 15.5 x86_64

Task-number: QTBUG-128873
Change-Id: I8d0886f9059cd5941ac9f9174f899b1e125168e3
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
This commit is contained in:
Christian Ehrlicher
2024-08-24 19:29:30 +02:00
parent e1015f2718
commit 2beda8e695
9 changed files with 133 additions and 2 deletions

View File

@@ -157,7 +157,7 @@ Configurations:
Template: 'qtci-windows-11_22H2-aarch64-54'
Compiler: 'MSVC2022'
Features: ['Packaging', 'DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -no-sql-psql -no-opengl'
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -no-opengl -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_arm64}}\..',
'NON_QTBASE_CMAKE_ARGS= -DFEATURE_clangcpp=OFF -DFEATURE_qdoc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
@@ -171,7 +171,7 @@ Configurations:
Features: ['Sccache', 'DisableTests', 'TargetBuildOnly', 'Packaging', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Platform dependency: 'windows-11_23H2-msvc2022'
Environment variables: [
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -no-sql-ibase',
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}}',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
'OPENSSL_CONF_x64={{.Env.OPENSSL_CONF_x64_arm64}}',

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -e
PROVISIONING_DIR="$(dirname "$0")/../../"
# shellcheck source=../unix/common.sourced.sh
source "${BASH_SOURCE%/*}/../unix/common.sourced.sh"
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
# https://download.oracle.com/otn_software/linux/instantclient/2350000/instantclient-basiclite-linux.x64-23.5.0.24.07.zip
# https://download.oracle.com/otn_software/linux/instantclient/2350000/instantclient-sdk-linux.x64-23.5.0.24.07.zip
version=23.5.0.24.07
distdir=instantclient_23_5
installFolder=/opt/oracle
upstreamRepo=https://download.oracle.com/otn_software/linux/instantclient/2350000
localRepo=http://ci-files01-hki.ci.qt.io/input/oracle
if [ -d "${installFolder}" ]; then
sudo rm -rf ${installFolder};
fi
sudo mkdir ${installFolder}
# basic files (libs) - maybe not even needed for compilation only
echo "Fetching files..."
packageFile=instantclient-basiclite-linux.x64-${version}.zip
sha=c663ca78e64d5ba9d25cc73ede79defecb4776c0
DownloadURL $localRepo/$packageFile $upstreamRepo/$packageFile $sha /tmp/$packageFile
echo "Unpacking ${packageFile}"
sudo unzip -o -q /tmp/${packageFile} -d ${installFolder}
echo "Remove downloaded ${packageFile} ..."
rm -rf /tmp/${packageFile}
packageFile=instantclient-sdk-linux.x64-${version}.zip
sha=7cb72cda0b89c3488afd4b7b30af5fc8444483a3
DownloadURL $localRepo/$packageFile $upstreamRepo/$packageFile $sha /tmp/$packageFile
echo "Unpacking ${packageFile}"
sudo unzip -o -q /tmp/${packageFile} -d ${installFolder}
echo "Remove downloaded ${packageFile} ..."
rm -rf /tmp/${packageFile}
SetEnvVar "Oracle_ROOT" "${installFolder}/${distdir}/sdk/"
echo "Oracle Instant Client = $version" >> ~/versions.txt

View File

@@ -0,0 +1,46 @@
# 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
. "$PSScriptRoot\helpers.ps1"
# This script installs oci (Oracle Instant Client) $version.
# https://download.oracle.com/otn_software/nt/instantclient/2340000/instantclient-basiclite-windows.x64-23.4.0.24.05.zip
# https://download.oracle.com/otn_software/nt/instantclient/2340000/instantclient-sdk-windows.x64-23.4.0.24.05.zip
$version = "23.4.0.24.05"
$distdir = "instantclient_23_4"
$tmpdir = "C:\Windows\temp"
$installFolder = "C:\Utils\oracle"
$baseurl_ext = "https://download.oracle.com/otn_software/nt/instantclient/2340000"
$baseurl_int = "\\ci-files01-hki.ci.qt.io\provisioning\windows\oracle"
# basic files (dlls) - maybe not even needed for compilation only
$zipfile = "instantclient-basiclite-windows.x64-${version}.zip"
$package = "${tmpdir}\${zipfile}"
$sha1 = "05b22e6d17daad5c3e5908a2bd9d59e4aa457a30"
Write-Host "Fetching from URL ..."
Download "${baseurl_ext}/${zipfile}" "${baseurl_int}\${zipfile}" $package
Verify-Checksum $package $sha1
Write-Host "Installing $package ..."
Extract-7Zip $package $installFolder
Write-Host "Remove downloaded $package ..."
Remove $package
# SDK (lib + header)
$zipfile = "instantclient-sdk-windows.x64-${version}.zip"
$package = "C:\Windows\temp\${zipfile}"
$sha1 = "37305fd653cf52850237ddff4ed71ad61d04a5ee"
Write-Host "Fetching from URL ..."
Download "${baseurl_ext}/${zipfile}" "${baseurl_int}\${zipfile}" $package
Verify-Checksum $package $sha1
Write-Host "Installing $package ..."
Extract-7Zip $package $installFolder
Write-Host "Remove downloaded $package ..."
Remove $package
Set-EnvironmentVariable "Oracle_ROOT" "$installFolder\${distdir}\sdk\"
# Store version information to ~/versions.txt, which is used to print version information to provision log.
Write-Output "Oracle Instant Client = $version" >> ~/versions.txt

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2022 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"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2022 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"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2022 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"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2022 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"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\windows\install-oracle.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\windows\install-oracle.ps1"