From 1a9ad4899efb2f3054ec0d676e41a85e01d8f806 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Thu, 10 Nov 2016 10:06:11 +0200 Subject: Add support for creating QBSP package QBSP is a Qt specific Board Support Package that can be installed with the Qt SDK or MaintenanceTool and contains a system image and a toolchain. The toolchain is automatically registered to the QtCreator. The recipes used for creating the system image and the toolchain can be configured with QBSP_IMAGE_TASK and QBSP_SDK_TASK. The files wanted for the system image can be further configured with QBSP_IMAGE_CONTENT, with a list of files located in DEPLOY_DIR_IMAGE folder. By default, .img and .conf files are used from the selected image recipe. QBSP_INSTALLER_COMPONENT defines the location in the Qt installer tree where the QBSP is shown and QBSP_VERSION defines the version for the components. The QBSP is installed to path defined by QBSP_INSTALL_PATH. The regular SDK creation can now reuse the same image package .7z, so update upload script to use it instead of creating new package. Task-number: QTBUG-57018 Change-Id: Id1e7cc4ab3998a7d450f23ed603b8e676b314d63 Reviewed-by: Iikka Eklund Reviewed-by: Teemu Holappa --- classes/qbsp-image.bbclass | 53 ++++++++ classes/qbsp.bbclass | 151 +++++++++++++++++++++ conf/distro/b2qt.conf | 5 + conf/distro/include/emulator.conf | 2 + conf/distro/include/tegra-t18x.conf | 5 + files/qbsp/base_package.xml | 8 ++ files/qbsp/image_package.xml | 8 ++ files/qbsp/toolchain_installscript.qs | 107 +++++++++++++++ files/qbsp/toolchain_package.xml | 10 ++ recipes-qt/images/b2qt-automotive-qt5-image.bb | 2 +- recipes-qt/images/b2qt-embedded-qt5-image.bb | 2 +- recipes-qt/meta/meta-b2qt-automotive-qbsp.bb | 47 +++++++ recipes-qt/meta/meta-b2qt-embedded-qbsp.bb | 48 +++++++ recipes-qt/qt5-addons/installer-framework_2.0.3.bb | 48 +++++++ scripts/upload.sh | 34 ++--- 15 files changed, 504 insertions(+), 26 deletions(-) create mode 100644 classes/qbsp-image.bbclass create mode 100644 classes/qbsp.bbclass create mode 100644 files/qbsp/base_package.xml create mode 100644 files/qbsp/image_package.xml create mode 100644 files/qbsp/toolchain_installscript.qs create mode 100644 files/qbsp/toolchain_package.xml create mode 100644 recipes-qt/meta/meta-b2qt-automotive-qbsp.bb create mode 100644 recipes-qt/meta/meta-b2qt-embedded-qbsp.bb create mode 100644 recipes-qt/qt5-addons/installer-framework_2.0.3.bb diff --git a/classes/qbsp-image.bbclass b/classes/qbsp-image.bbclass new file mode 100644 index 0000000..c80aa23 --- /dev/null +++ b/classes/qbsp-image.bbclass @@ -0,0 +1,53 @@ +############################################################################ +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the Boot to Qt meta layer. +## +## $QT_BEGIN_LICENSE:GPL$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 or (at your option) any later version +## approved by the KDE Free Qt Foundation. The licenses are as published by +## the Free Software Foundation and appearing in the file LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################ + +QBSP_IMAGE_CONTENT ??= "" + +fakeroot do_qbsp_image () { + if [ -z "${QBSP_IMAGE_CONTENT}" ]; then + exit 0 + fi + + mkdir -p ${S}/qbsp + + for item in ${QBSP_IMAGE_CONTENT}; do + src=`echo $item | awk -F':' '{ print $1 }'` + dst=`echo $item | awk -F':' '{ print $2 }'` + + install -D -m 0755 ${DEPLOY_DIR_IMAGE}/$src ${S}/qbsp/$dst + done + + cd ${S}/qbsp + 7z a ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.7z . + + rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.7z + ln -s ${IMAGE_NAME}.7z ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.7z +} + +IMAGE_POSTPROCESS_COMMAND += "do_qbsp_image;" diff --git a/classes/qbsp.bbclass b/classes/qbsp.bbclass new file mode 100644 index 0000000..6707ce3 --- /dev/null +++ b/classes/qbsp.bbclass @@ -0,0 +1,151 @@ +############################################################################ +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the Boot to Qt meta layer. +## +## $QT_BEGIN_LICENSE:GPL$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 or (at your option) any later version +## approved by the KDE Free Qt Foundation. The licenses are as published by +## the Free Software Foundation and appearing in the file LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################ + +inherit meta nopackages abi-arch + +FILESEXTRAPATHS_prepend := "${B2QTBASE}/files/qbsp:" + +SRC_URI = "\ + file://base_package.xml \ + file://image_package.xml \ + file://toolchain_package.xml \ + file://toolchain_installscript.qs \ + " + +INHIBIT_DEFAULT_DEPS = "1" +do_qbsp[depends] += "\ + installer-framework:do_populate_sysroot \ + ${QBSP_SDK_TASK}:do_populate_sdk \ + ${QBSP_IMAGE_TASK}:do_image_complete \ + " + +QBSP_VERSION ?= "${PV}${VERSION_AUTO_INCREMENT}" +QBSP_INSTALLER_COMPONENT ?= "${MACHINE}" +QBSP_INSTALL_PATH ?= "/Extras/${MACHINE}" + +QBSP_LICENSE_DEPENDENCY ?= "" +QBSP_LICENSE_DEPENDENCY_imx = "qt.embedded.b2qt.freescalelicense" + +VERSION_AUTO_INCREMENT = "-0-${DATETIME}" +VERSION_AUTO_INCREMENT[vardepsexclude] = "DATETIME" + +DEPLOY_CONF_NAME ?= "${MACHINE}" +RELEASEDATE = "${@time.strftime('%Y-%m-%d',time.gmtime())}" + +IMAGE_PACKAGE = "${QBSP_IMAGE_TASK}-${MACHINE}.7z" +SDK_NAME = "${DISTRO}-${SDK_MACHINE}-${QBSP_SDK_TASK}-${MACHINE}.${SDK_POSTFIX}" +SDK_POSTFIX = "sh" +SDK_POSTFIX_sdkmingw32 = "7z" +REAL_MULTIMACH_TARGET_SYS = "${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}" +SDK_MACHINE = "${@d.getVar('SDKMACHINE', True) or '${SDK_ARCH}'}" + +B = "${WORKDIR}/build" + +patch_installer_files() { + sed -e 's#@NAME@#${DEPLOY_CONF_NAME}#' \ + -e 's#@VERSION@#${QBSP_VERSION}#' \ + -e 's#@RELEASEDATE@#${RELEASEDATE}#' \ + -e 's#@MACHINE@#${MACHINE}#' \ + -e 's#@SYSROOT@#${REAL_MULTIMACH_TARGET_SYS}#' \ + -e 's#@TARGET@#${TARGET_SYS}#' \ + -e 's#@ABI@#${ABI}#' \ + -e 's#@INSTALLPATH@#${QBSP_INSTALL_PATH}#' \ + -e 's#@SDKPATH@#${SDKPATH}#' \ + -e 's#@SDKFILE@#${SDK_NAME}#' \ + -e 's#@LICENSEDEPENDENCY@#${QBSP_LICENSE_DEPENDENCY}#' \ + -i ${1}/* +} + +prepare_qbsp() { + # Toolchain component + TOOLCHAIN_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}.toolchain" + mkdir -p ${TOOLCHAIN_PATH}/meta + mkdir -p ${TOOLCHAIN_PATH}/data + + cp ${WORKDIR}/toolchain_package.xml ${TOOLCHAIN_PATH}/meta/package.xml + cp ${WORKDIR}/toolchain_installscript.qs ${TOOLCHAIN_PATH}/meta/installscript.qs + patch_installer_files ${TOOLCHAIN_PATH}/meta + + mkdir -p ${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain + if [ "${SDK_POSTFIX}" == "7z" ]; then + 7z x ${DEPLOY_DIR}/sdk/${SDK_NAME} -o${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain/ + else + cp ${DEPLOY_DIR}/sdk/${SDK_NAME} ${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain/ + fi + + cd ${B}/toolchain + archivegen ${TOOLCHAIN_PATH}/data/toolchain.7z * + + # Image component + IMAGE_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}.system" + mkdir -p ${IMAGE_PATH}/meta + mkdir -p ${IMAGE_PATH}/data + + cp ${WORKDIR}/image_package.xml ${IMAGE_PATH}/meta/package.xml + patch_installer_files ${IMAGE_PATH}/meta + + mkdir -p ${B}/images/${QBSP_INSTALL_PATH}/images + 7z x ${DEPLOY_DIR_IMAGE}/${IMAGE_PACKAGE} -o${B}/images/${QBSP_INSTALL_PATH}/images/ + + cd ${B}/images + archivegen ${IMAGE_PATH}/data/image.7z * + + # Base component + BASE_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}" + mkdir -p ${BASE_PATH}/meta + + cp ${WORKDIR}/base_package.xml ${BASE_PATH}/meta/package.xml + patch_installer_files ${BASE_PATH}/meta +} + +create_qbsp() { + prepare_qbsp + + # Repository creation + repogen -p ${B}/pkg ${B}/repository + + mkdir -p ${DEPLOY_DIR}/qbsp + rm -f ${DEPLOY_DIR}/qbsp/${PN}-${MACHINE}.qbsp + + cd ${B}/repository + archivegen ${DEPLOY_DIR}/qbsp/${PN}-${SDK_MACHINE}-${MACHINE}.qbsp * +} + +python do_qbsp() { + bb.build.exec_func('create_qbsp', d) +} + +addtask qbsp after do_unpack before do_build + +do_qbsp[cleandirs] += "${B}" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" +do_populate_sysroot[noexec] = "1" +do_populate_lic[noexec] = "1" diff --git a/conf/distro/b2qt.conf b/conf/distro/b2qt.conf index de7381e..4a8f73b 100644 --- a/conf/distro/b2qt.conf +++ b/conf/distro/b2qt.conf @@ -80,6 +80,11 @@ PACKAGE_EXCLUDE_COMPLEMENTARY ?= "qtquickcompiler" IMAGE_FSTYPES = "conf" IMAGE_CLASSES += "image_types_sdcard deploy-conf" +QBSP_IMAGE_CONTENT ?= "\ + ${IMAGE_LINK_NAME}.img \ + ${IMAGE_LINK_NAME}.conf \ + " + LICENSE_CREATE_PACKAGE = "1" COPY_LIC_MANIFEST = "1" diff --git a/conf/distro/include/emulator.conf b/conf/distro/include/emulator.conf index d7cb2c3..a5b95b5 100644 --- a/conf/distro/include/emulator.conf +++ b/conf/distro/include/emulator.conf @@ -32,6 +32,8 @@ IMAGE_ROOTFS_ALIGNMENT = "1048576" ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3" IMAGE_FSTYPES = "ext3" +QBSP_IMAGE_CONTENT = "${IMAGE_LINK_NAME}.hdd" + MACHINE_EXTRA_RRECOMMENDS += "\ kernel-module-snd-intel8x0 \ " diff --git a/conf/distro/include/tegra-t18x.conf b/conf/distro/include/tegra-t18x.conf index ebdb63b..80f4d57 100644 --- a/conf/distro/include/tegra-t18x.conf +++ b/conf/distro/include/tegra-t18x.conf @@ -33,6 +33,11 @@ TARGET_CFLAGS += " -DWIN_INTERFACE_CUSTOM" DISTRO_FEATURES_DEFAULT += "wayland" IMAGE_FSTYPES += "tar.gz" +QBSP_IMAGE_CONTENT = "\ + ${IMAGE_LINK_NAME}.tar.gz \ + Image \ + " + KERN_DIR ?= '${@os.path.normpath("${TOPDIR}/../sources/vibrante-t186/kernel")}' PLATFORM_TOPDIR ?= '${@os.path.normpath("${TOPDIR}/../sources/vibrante-t186")}' NVLAYER_DIR ?= "${TOPDIR}/../sources/nvidia-layer" diff --git a/files/qbsp/base_package.xml b/files/qbsp/base_package.xml new file mode 100644 index 0000000..28261d5 --- /dev/null +++ b/files/qbsp/base_package.xml @@ -0,0 +1,8 @@ + + + @VERSION@ + @RELEASEDATE@ + @NAME@ + Boot to Qt for @NAME@ with Embedded Linux baselayer + @LICENSEDEPENDENCY@ + diff --git a/files/qbsp/image_package.xml b/files/qbsp/image_package.xml new file mode 100644 index 0000000..1eaf69c --- /dev/null +++ b/files/qbsp/image_package.xml @@ -0,0 +1,8 @@ + + + @VERSION@ + @RELEASEDATE@ + @NAME@ Linux System + SD-Card image for @NAME@ hardware with Embedded Linux baselayer + image.7z + diff --git a/files/qbsp/toolchain_installscript.qs b/files/qbsp/toolchain_installscript.qs new file mode 100644 index 0000000..bcf9cd1 --- /dev/null +++ b/files/qbsp/toolchain_installscript.qs @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Boot to Qt meta layer. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +function Component() +{ +} + +Component.prototype.createOperations = function() +{ + component.createOperations(); + + var device = "@MACHINE@" + var platform = "@NAME@" + var sysroot = "@SYSROOT@" + var target = "@TARGET@" + var abi = "@ABI@" + var installPath = "@INSTALLPATH@/toolchain" + var sdkPath = "@SDKPATH@" + var sdkFile = "@SDKFILE@" + + var path = installer.value("TargetDir") + installPath; + if (systemInfo.kernelType !== "winnt") { + var script = path + "/" + sdkFile; + component.addOperation("Execute", "{0}", "chmod", "+x", script); + component.addOperation("Execute", "{0}", script, "-y", "-d", path, "UNDOEXECUTE", "rm", "-rf", path); + component.addOperation("Execute", "{0}", "/bin/rm", script); + } else { + var search = sdkPath; + path = path.replace(/\\/g,"/"); + component.addOperation("Replace", + path + "/sysroots/i686-pokysdk-mingw32/usr/bin/qt.conf", + search, path); + } + // qt.embedded.b2qt.xx + var baseid = component.name.substring(17,19); + var basecomponent = component.name.substring(0, component.name.lastIndexOf(".")); + var toolchainId = "ProjectExplorer.ToolChain.Gcc:" + component.name; + var qtId = basecomponent + ".qt"; + var icon = installer.value("B2QtDeviceIcon"); + var executableExt = ""; + var hostSysroot = "x86_64-pokysdk-linux"; + if (systemInfo.kernelType === "winnt") { + executableExt = ".exe"; + hostSysroot = "i686-pokysdk-mingw32"; + } + var deviceType = "Boot2Qt.HwDevice" + + component.addOperation("Execute", + ["@SDKToolBinary@", "addTC", + "--id", toolchainId, + "--name", "GCC (Boot2Qt " + platform + ")", + "--path", path + "/sysroots/" + hostSysroot + "/usr/bin/" + target + "/" + target + "-g++" + executableExt, + "--abi", abi, + "UNDOEXECUTE", + "@SDKToolBinary@", "rmTC", "--id", toolchainId]); + + component.addOperation("Execute", + ["@SDKToolBinary@", "addQt", + "--id", qtId, + "--name", "Boot2Qt %{Qt:Version} " + platform, + "--type", "Boot2Qt.QtVersionType", + "--qmake", path + "/sysroots/" + hostSysroot + "/usr/bin/qmake" + executableExt, + "UNDOEXECUTE", + "@SDKToolBinary@", "rmQt", "--id", qtId]); + + var addKitOperations = ["@SDKToolBinary@", "addKit", + "--id", basecomponent, + "--name", "Boot2Qt %{Qt:Version} " + platform, + "--mkspec", "devices/linux-oe-generic-g++", + "--qt", qtId, + "--debuggerengine", "1", + "--debugger", path + "/sysroots/" + hostSysroot + "/usr/bin/" + target + "/" + target + "-gdb" + executableExt, + "--sysroot", path + "/sysroots/" + sysroot, + "--devicetype", deviceType, + "--toolchain", toolchainId, + "--icon", icon]; + + addKitOperations.push("UNDOEXECUTE", "@SDKToolBinary@", "rmKit", "--id", basecomponent); + + component.addOperation("Execute", addKitOperations); +} diff --git a/files/qbsp/toolchain_package.xml b/files/qbsp/toolchain_package.xml new file mode 100644 index 0000000..85a2c67 --- /dev/null +++ b/files/qbsp/toolchain_package.xml @@ -0,0 +1,10 @@ + + + @VERSION@ + @RELEASEDATE@ + @NAME@ Linux Toolchain + Toolchain and system root for @NAME@ with Embedded Linux baselayer + toolchain.7z + qt.tools.qtcreator + + diff --git a/recipes-qt/images/b2qt-automotive-qt5-image.bb b/recipes-qt/images/b2qt-automotive-qt5-image.bb index d0e13d5..179831a 100644 --- a/recipes-qt/images/b2qt-automotive-qt5-image.bb +++ b/recipes-qt/images/b2qt-automotive-qt5-image.bb @@ -42,7 +42,7 @@ IMAGE_FEATURES += "\ hwcodecs \ " -inherit core-image +inherit core-image qbsp-image inherit consistent_timestamps IMAGE_INSTALL += "\ diff --git a/recipes-qt/images/b2qt-embedded-qt5-image.bb b/recipes-qt/images/b2qt-embedded-qt5-image.bb index 970d30f..4d0bfa4 100644 --- a/recipes-qt/images/b2qt-embedded-qt5-image.bb +++ b/recipes-qt/images/b2qt-embedded-qt5-image.bb @@ -42,7 +42,7 @@ IMAGE_FEATURES += "\ hwcodecs \ " -inherit core-image +inherit core-image qbsp-image inherit consistent_timestamps IMAGE_INSTALL += "\ diff --git a/recipes-qt/meta/meta-b2qt-automotive-qbsp.bb b/recipes-qt/meta/meta-b2qt-automotive-qbsp.bb new file mode 100644 index 0000000..ebd12c5 --- /dev/null +++ b/recipes-qt/meta/meta-b2qt-automotive-qbsp.bb @@ -0,0 +1,47 @@ +############################################################################ +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the Boot to Qt meta layer. +## +## $QT_BEGIN_LICENSE:GPL$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 or (at your option) any later version +## approved by the KDE Free Qt Foundation. The licenses are as published by +## the Free Software Foundation and appearing in the file LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################ + +DESCRIPTION = "Meta task for QBSP creation" + +LICENSE = "The-Qt-Company-DCLA-2.1" +LIC_FILES_CHKSUM = "file://${QT_LICENSE};md5=80e06902b5f0e94ad0a78ee4f7fcb74b" + +# get Qt version number +require recipes-qt/qt5/qt5-git.inc +S = "${WORKDIR}" + +inherit qbsp + +PV = "1.1" + +QBSP_INSTALLER_COMPONENT = "qt.automotive.10.yocto.${MACHINE}" +QBSP_INSTALL_PATH = "/${QT_MODULE_BRANCH}/Automotive/${MACHINE}" + +QBSP_SDK_TASK = "meta-toolchain-b2qt-automotive-qt5-sdk" +QBSP_IMAGE_TASK = "b2qt-automotive-qt5-image" diff --git a/recipes-qt/meta/meta-b2qt-embedded-qbsp.bb b/recipes-qt/meta/meta-b2qt-embedded-qbsp.bb new file mode 100644 index 0000000..56da506 --- /dev/null +++ b/recipes-qt/meta/meta-b2qt-embedded-qbsp.bb @@ -0,0 +1,48 @@ +############################################################################ +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the Boot to Qt meta layer. +## +## $QT_BEGIN_LICENSE:GPL$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 or (at your option) any later version +## approved by the KDE Free Qt Foundation. The licenses are as published by +## the Free Software Foundation and appearing in the file LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################ + +DESCRIPTION = "Meta task for QBSP creation" + +LICENSE = "The-Qt-Company-DCLA-2.1" +LIC_FILES_CHKSUM = "file://${QT_LICENSE};md5=80e06902b5f0e94ad0a78ee4f7fcb74b" + +# get Qt version number +require recipes-qt/qt5/qt5-git.inc +S = "${WORKDIR}" + +inherit qbsp + +PV := "${@d.getVar('PV', True)[0:5]}" + +VERSION_SHORT = "${@d.getVar('QT_MODULE_BRANCH', True).replace('.','')}" +QBSP_INSTALLER_COMPONENT = "qt.embedded.b2qt.${VERSION_SHORT}.yocto.${MACHINE}" +QBSP_INSTALL_PATH = "/${QT_MODULE_BRANCH}/Boot2Qt/${MACHINE}" + +QBSP_SDK_TASK = "meta-toolchain-b2qt-embedded-qt5-sdk" +QBSP_IMAGE_TASK = "b2qt-embedded-qt5-image" diff --git a/recipes-qt/qt5-addons/installer-framework_2.0.3.bb b/recipes-qt/qt5-addons/installer-framework_2.0.3.bb new file mode 100644 index 0000000..03cba46 --- /dev/null +++ b/recipes-qt/qt5-addons/installer-framework_2.0.3.bb @@ -0,0 +1,48 @@ +############################################################################ +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the Boot to Qt meta layer. +## +## $QT_BEGIN_LICENSE:GPL$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 or (at your option) any later version +## approved by the KDE Free Qt Foundation. The licenses are as published by +## the Free Software Foundation and appearing in the file LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################ + +DESCRIPTION = "Qt Installer Framework" +LICENSE = "The-Qt-Company-DCLA-2.1" +LIC_FILES_CHKSUM = "file://${QT_LICENSE};md5=80e06902b5f0e94ad0a78ee4f7fcb74b" + +inherit bin_package native + +SRC_URI = "http://ci-files02-hki.ci.local/packages/jenkins/opensource/ifw/installer-framework/installer-framework-build-stripped-linux-x64.7z" + +SRC_URI[md5sum] = "08beb5450c3938fcfd1b380f6aaec75d" +SRC_URI[sha256sum] = "91bfef896db58f28e4c2c6db437b958101a59e87aa880c38b6ddc40ebe6c38e6" + +S = "${WORKDIR}/ifw-pkg" + +do_install() { + install -d ${D}${bindir} + install -m 0755 -t ${D}${bindir} ${S}/bin/* +} + +INSANE_SKIP_${PN} += "already-stripped" diff --git a/scripts/upload.sh b/scripts/upload.sh index 5048797..14d45c8 100755 --- a/scripts/upload.sh +++ b/scripts/upload.sh @@ -33,28 +33,14 @@ set -e RELEASE=5.8 UPLOADPATH=QT@ci-files02-hki.ci.local:/srv/jenkins_data/enterprise/b2qt/yocto/${RELEASE}/ +UPLOADS="\ + tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.7z \ + tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.sh \ + tmp/deploy/sdk/b2qt-i686-mingw32-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.7z \ + " -if [ -e tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.hdd ]; then - 7z a -l b2qt-${PROJECT}-qt5-image-${MACHINE}.7z \ - $PWD/tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.hdd -elif [ -e tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.img ]; then - 7z a -l b2qt-${PROJECT}-qt5-image-${MACHINE}.7z \ - $PWD/tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.img \ - $PWD/tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.conf -elif ([ ${MACHINE} = "tegra-x1" ] || [ ${MACHINE} = "tegra-t18x" ]) \ - && [ -e tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.tar.gz ]; then - 7z a -l b2qt-${PROJECT}-qt5-image-${MACHINE}.7z \ - $PWD/tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.tar.gz \ - $PWD/tmp/deploy/images/${MACHINE}/*Image -fi - -if [ -e b2qt-${PROJECT}-qt5-image-${MACHINE}.7z ]; then - rsync b2qt-${PROJECT}-qt5-image-${MACHINE}.7z ${UPLOADPATH}/ -fi - -if [ -e tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.sh ]; then - rsync tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.sh ${UPLOADPATH}/ -fi -if [ -e tmp/deploy/sdk/b2qt-i686-mingw32-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.7z ]; then - rsync tmp/deploy/sdk/b2qt-i686-mingw32-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.7z ${UPLOADPATH}/ -fi +for f in ${UPLOADS}; do + if [ -e ${f} ]; then + rsync -L ${f} ${UPLOADPATH}/ + fi +done -- cgit v1.2.3-54-g00ecf