aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPasi Petäjäjärvi <pasi.petajajarvi@qt.io>2021-09-27 17:54:01 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-10-28 06:48:49 +0000
commit1c7bb0892a18e2f189cf4e03ab510c468f32a52e (patch)
tree9a713ab7ae60872666c60c1c79706130589051fc
parentf30c29dd88b0bb8eb7980b077c5ab0c183425ea2 (diff)
CI: Add QNX QEMU image build package
* Define env variables needed * Add build files only to create qemu image Task-number: QTBUG-87628 Change-Id: I26fd10b3e7950c7226c3c66f0b385b1acf0ac118 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io> (cherry picked from commit fe0b819588622b244a3b035f74598a192a427040) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rwxr-xr-xcoin/provisioning/common/linux/qnx_710.sh12
-rwxr-xr-xcoin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt46
-rw-r--r--coin/provisioning/common/linux/qnx_qemu_build_files/local/options88
-rw-r--r--coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/data_files.custom10
-rw-r--r--coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/passwd_file.builtin3
-rw-r--r--coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/shadow_file.builtin2
-rw-r--r--coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom29
7 files changed, 190 insertions, 0 deletions
diff --git a/coin/provisioning/common/linux/qnx_710.sh b/coin/provisioning/common/linux/qnx_710.sh
index 6b164d58..134cf02a 100755
--- a/coin/provisioning/common/linux/qnx_710.sh
+++ b/coin/provisioning/common/linux/qnx_710.sh
@@ -57,10 +57,17 @@ DownloadAndExtract () {
aarch64le_toolchain="${BASH_SOURCE%/*}/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake"
armv7le_toolchain="${BASH_SOURCE%/*}/cmake_toolchain_files/qnx-toolchain-armv7le.cmake"
x8664_toolchain="${BASH_SOURCE%/*}/cmake_toolchain_files/qnx-toolchain-x8664.cmake"
+QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/"
targetFolder="/opt/"
folderName="qnx710"
targetPath="$targetFolder$folderName"
+qemuTargetPath="$HOME/QNX"
+qemuIpAddress="172.31.1.10"
+qemuNetwork="172.31.1.1"
+qemuSSHuser="root"
+qemuSSHurl="$qemuSSHuser@$qemuIpAddress"
+qemuLDpath="/proc/boot:/system/lib:/system/lib/dll:/home/qt/work/install/target/lib"
if [ ! -d "$targetFolder" ]; then
mkdir -p $targetFolder
@@ -75,6 +82,7 @@ DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
sudo cp $aarch64le_toolchain $targetPath
sudo cp $armv7le_toolchain $targetPath
sudo cp $x8664_toolchain $targetPath
+cp -R $QNX_qemu_bld_files_dir $qemuTargetPath
sudo chown -R qt:users "$targetPath"
@@ -87,5 +95,9 @@ fi
# Set env variables
SetEnvVar "QNX_710" "$targetPath"
+SetEnvVar "QNX_QEMU" "$qemuTargetPath"
+SetEnvVar "QNX_QEMU_IPADDR" "$qemuIpAddress"
+SetEnvVar "QNX_QEMU_SSH" "$qemuSSHurl"
+SetEnvVar "QNX_QEMU_LD_LIBRARY_PATH" "$qemuLDpath"
echo "QNX SDP = 7.1.0" >> ~/versions.txt
diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt b/coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt
new file mode 100755
index 00000000..53063373
--- /dev/null
+++ b/coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+function brief()
+{
+ echo "--nfs=[<mount>|no]"
+}
+
+function help()
+{
+ brief
+ cat <<EOF
+ If yes, the given nfs share "<mount>" will be mounted at <mount>
+
+ The default is no.
+EOF
+}
+
+function validate() {
+ exit 0
+}
+
+function configure()
+{
+ if [ "$OPT_NFS_QT" != no ]; then
+ cat >output/option_files/post_start.opt_nfs <<EOF
+
+echo "---> Starting NFS"
+STARTU_P(fs_nfs3_t,__FS_NFS3_ID__) fs-nfs3 172.31.1.1:$OPT_NFS_QT $OPT_NFS_QT
+EOF
+ fi
+
+ exit 0
+}
+
+case "$1" in
+ brief)
+ brief;;
+ help)
+ help;;
+ validate)
+ validate;;
+ configure)
+ configure;;
+ default)
+ echo no;;
+esac
diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/options b/coin/provisioning/common/linux/qnx_qemu_build_files/local/options
new file mode 100644
index 00000000..a124af1e
--- /dev/null
+++ b/coin/provisioning/common/linux/qnx_qemu_build_files/local/options
@@ -0,0 +1,88 @@
+OPT_ABLELOCK='no'
+DEF_OPT_ABLELOCK='no'
+OPT_ARCH='x86_64'
+DEF_OPT_ARCH='x86_64'
+OPT_ASLR='yes'
+DEF_OPT_ASLR='yes'
+OPT_CERTICOM='no'
+DEF_OPT_CERTICOM='no'
+OPT_CRYPTODEV='no'
+DEF_OPT_CRYPTODEV='no'
+OPT_DATA_INODES='3000'
+DEF_OPT_DATA_INODES='3000'
+OPT_DATA_SIZE='60'
+DEF_OPT_DATA_SIZE='60'
+OPT_EXTRA_DIRS='none'
+DEF_OPT_EXTRA_DIRS='none'
+OPT_GRAPHICS='no'
+DEF_OPT_GRAPHICS='no'
+OPT_GUEST='none'
+DEF_OPT_GUEST='none'
+OPT_HOSTNAME='qnx_QEMU_CI'
+DEF_OPT_HOSTNAME='noname'
+OPT_IP='172.31.1.69'
+DEF_OPT_IP='dhcp'
+OPT_MACADDR='52:54:00:f1:c4:92'
+DEF_OPT_MACADDR='generate'
+OPT_NFS='no'
+DEF_OPT_NFS='no'
+OPT_NFS_QT='/home/qt/work'
+DEF_OPT_NFS_QT='/home/qt/work'
+OPT_PATHTRUST='no'
+DEF_OPT_PATHTRUST='no'
+OPT_PERL='no'
+DEF_OPT_PERL='no'
+OPT_POLICY='none'
+DEF_OPT_POLICY='none'
+OPT_PYTHON='no'
+DEF_OPT_PYTHON='no'
+OPT_QAUDIT='no'
+DEF_OPT_QAUDIT='no'
+OPT_QFIM='no'
+DEF_OPT_QFIM='no'
+OPT_QTD='no'
+DEF_OPT_QTD='no'
+OPT_QVM='no'
+DEF_OPT_QVM='no'
+OPT_REPOS='$QNX_STAGE_nto:$QNX_TARGET'
+DEF_OPT_REPOS='$QNX_STAGE_nto:$QNX_TARGET'
+OPT_ROOT='no'
+DEF_OPT_ROOT='no'
+OPT_SAFE='no'
+DEF_OPT_SAFE='no'
+OPT_SECPOL='no'
+DEF_OPT_SECPOL='no'
+OPT_SECURE_DATA='no'
+DEF_OPT_SECURE_DATA='no'
+OPT_SECURE_PROCFS='yes'
+DEF_OPT_SECURE_PROCFS='yes'
+OPT_SLM='no'
+DEF_OPT_SLM='no'
+OPT_SSHD_PREGEN='yes'
+DEF_OPT_SSHD_PREGEN='yes'
+OPT_SSH_IDENT='prompt'
+DEF_OPT_SSH_IDENT='prompt'
+OPT_SYS_INODES='1000'
+DEF_OPT_SYS_INODES='1000'
+OPT_SYS_SIZE='20'
+DEF_OPT_SYS_SIZE='20'
+OPT_TCG='no'
+DEF_OPT_TCG='no'
+OPT_TELNET='no'
+DEF_OPT_TELNET='no'
+OPT_TOMCRYPT='no'
+DEF_OPT_TOMCRYPT='no'
+OPT_TOYBOX='no'
+DEF_OPT_TOYBOX='no'
+OPT_TYPE='qemu'
+DEF_OPT_TYPE='qemu'
+OPT_TZ='UTC0'
+DEF_OPT_TZ='UTC0'
+OPT_UNION='yes'
+DEF_OPT_UNION='yes'
+OPT_USB='no'
+DEF_OPT_USB='no'
+OPT_VALGRIND='no'
+DEF_OPT_VALGRIND='no'
+OPT_ZONEINFO='no'
+DEF_OPT_ZONEINFO='no'
diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/data_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/data_files.custom
new file mode 100644
index 00000000..7d6bd542
--- /dev/null
+++ b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/data_files.custom
@@ -0,0 +1,10 @@
+# local/snippets/data_files.custom
+# Placeholder for local list of files to add to data partition
+
+home/root/.ssh/environment = {
+TERM=qansi
+PATH=__IFS_PATH__:/system/xbin
+#LD_LIBRARY_PATH=__PROC_LIB__:/home/qt/work/install/target/lib
+#QSG_RHI_BACKEND=software
+#QT_QPA_PLATFORM=offscreen
+}
diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/passwd_file.builtin b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/passwd_file.builtin
new file mode 100644
index 00000000..142fd04e
--- /dev/null
+++ b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/passwd_file.builtin
@@ -0,0 +1,3 @@
+root:x:0:0:Superuser:/data/home/root:/bin/sh
+sshd:x:15:6:sshd:/data/var/chroot/sshd:/bin/false
+qnxuser:x:__QNXUSER_UID__:__QNXUSER_GID__:User9:/data/home/qnxuser:/bin/sh
diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/shadow_file.builtin b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/shadow_file.builtin
new file mode 100644
index 00000000..e362b971
--- /dev/null
+++ b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/shadow_file.builtin
@@ -0,0 +1,2 @@
+root::1475759054:0:0
+qnxuser:@S@f0J4xZibUbKllVqPMzetauCHLRi+9C8wTsxYXE5r7Pfhda5FI7zkObEmKogy01pAX5f/1niG2S2eLXbLs3xoww==@YjBmOTQwNzZiNzYwMzY3N2RkMGQ1NTZmNzA5MDFhMWY=:1476890273:0:0
diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom
new file mode 100644
index 00000000..26c16912
--- /dev/null
+++ b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom
@@ -0,0 +1,29 @@
+# local/snippets/system_files.custom
+# Placeholder for local list of files to add to system partition
+
+[perms=444] etc/ssh/sshd_config={
+HostKey /data/var/ssh/ssh_host_rsa_key
+HostKey /data/var/ssh/ssh_host_ed25519_key
+AuthorizedKeysFile .ssh/authorized_keys
+PermitUserEnvironment yes
+AuthenticationMethods none
+PermitEmptyPasswords yes
+PermitRootLogin yes
+PidFile none
+Subsystem sftp /system/xbin/sftp-server
+}
+
+# libraries Qt requires
+lib/libicuuc.so.64=usr/lib/libicuuc.so.64
+lib/libicudata.so.64=usr/lib/libicudata.so.64
+lib/libicui18n.so.64=usr/lib/libicui18n.so.64
+lib/libGLESv2.so.1=usr/lib/libGLESv2.so.1
+lib/libEGL.so.1=usr/lib/libEGL.so.1
+lib/libfontconfig.so.1=usr/lib/libfontconfig.so.1
+lib/libz.so.2=usr/lib/libz.so.2
+lib/libxml2.so.2=usr/lib/libxml2.so.2
+lib/libfreetype.so.1=usr/lib/libfreetype.so.1
+lib/libpng16.so.16=usr/lib/libpng16.so.16
+lib/liblzma.so.5=usr/lib/liblzma.so.5
+lib/libbacktrace.so.1=usr/lib/libbacktrace.so.1
+lib/libm.so.3=lib/libm.so.3