From 8dd33e2dd286332840652bb13727910861eb4df4 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Fri, 13 Dec 2024 06:42:47 +0000 Subject: [PATCH] Add squish support Cherry-pick all squish changes from 6.7 branch. Change-Id: I1adf38a7bf17e99df07cb1f052c365f01c10009f Reviewed-by: Mikko Gronoff --- coin/test-configs.inc | 2 + licenses/Squish-Commercial-License-Agreement | 149 ++++++++++++++++++ recipes-qt/squish/squish_8.0-20240704-1900.bb | 87 ++++++++++ 3 files changed, 238 insertions(+) create mode 100644 licenses/Squish-Commercial-License-Agreement create mode 100644 recipes-qt/squish/squish_8.0-20240704-1900.bb diff --git a/coin/test-configs.inc b/coin/test-configs.inc index 23f2449..7cb939d 100644 --- a/coin/test-configs.inc +++ b/coin/test-configs.inc @@ -39,6 +39,8 @@ INSANE_SKIP:append:pn-nativesdk-clang = " buildpaths" PREFERRED_ARM_INSTRUCTION_SET ?= "thumb" ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}" +RDEPENDS:${PN}:append:pn-packagegroup-qt6-addons = " squish" + # enable webengine with commercial/proprietary features DISTRO_FEATURES:append = " webengine" PACKAGECONFIG:append:pn-qtwebengine = " proprietary-codecs" diff --git a/licenses/Squish-Commercial-License-Agreement b/licenses/Squish-Commercial-License-Agreement new file mode 100644 index 0000000..f5317f4 --- /dev/null +++ b/licenses/Squish-Commercial-License-Agreement @@ -0,0 +1,149 @@ +Squish Commercial License Agreement +Agreement version 3.1 + +This Squish Commercial License Agreement ("Agreement") is made by and +between The Qt Company Oy ("The Qt Company"), and you (either an +individual or a legal entity) ("Licensee"). + + +IMPORTANT - READ CAREFULLY: + +1. The Qt Company developed and originated Squish including source code, +documentation and example programs ("Licensed Software"). The Licensed +Software is protected by copyright laws and international copyright +treaties, as well as other intellectual property laws and +treaties. The Qt Company retains all rights not expressly granted. + +2. By installing, copying, or otherwise using the Licensed Software, +Licensee agrees to be bound by the terms of this Agreement. If +Licensee does not agree to the terms of this Agreement, Licensee +should not install, copy, or otherwise use the Licensed Software. In +addition, by installing, copying, or otherwise using any updates or +other components of the Licensed Software that Licensee receives +separately as part of the Licensed Software ("Updates"), Licensee +agrees to be bound by any additional license terms that accompany such +Updates. If Licensee does not agree to the additional license terms +that accompany such Updates, Licensee may not install, copy, or +otherwise use such Updates. + +3. Upon Licensee's acceptance of the terms and conditions of this +Agreement, The Qt Company grants Licensee the right to use the Licensed +Software during the agreed validity period as set forth in the +respective License Certificate ("License Term"), solely for Licensee's +internal business purposes in the manner provided below. + +4a. If the license, as specified in the license certificate, is a +Floating Tester Subscription or Floating Execution Subscription, +Licensee may install the Licensed Software on an unlimited amount of +computers. Concurrent use of the installed Licensed Software is +limited to the number of floating seats purchased as specified in the +license certificate and to persons employed or contracted by the +Licensee. If the license is a Floating Execution License, Licensee may +only use the installed Licensed Software for executing tests and +processing test results, but not for developing, debugging and +maintaining tests. + +4b. If the license, as specified in the license certificate, is a User +Node-Locked Subscription, Licensee may install the Licensed Software +for a single user on a single physical computer. Installation and +usage in virtual machines or the use via remote access is prohibited. + +5. Licensee may modify the Licensed Software except for altering or +removing any details of ownership, copyright, trademark or other +property right connected with the Licensed Software. + +6. Licensee may not distribute the Licensed Software, modified or +unmodified, separately or as part of any software package. + +7. Upon expiry of the initially agreed License Term, the respective +License Terms shall be automatically extended to one or more +extensions of previous License Term as agreed between the Parties +("Renewal Term"), unless and until either Party notifies the other +Party in writing, or any other method acceptable to The Qt Company, that it +does not wish to continue the License Term, such notification to be +provided to the other Party no less than thirty (30) days before +expiry of the respective License Term. Unless otherwise agreed between +the Parties, Renewal Term shall be of equal length with the initial +License Term. + +Any such Renewal Term shall be subject to License Fees agreed between +the Parties or, if no advance agreement exists, subject to The Qt Company +standard pricing applicable at the commencement date of any such +Renewal Term. + +Any price or other term specified for a Renewal Term shall be valid +only for the specified time. + + +WARRANTY DISCLAIMER + +8. The Licensed Software is licensed to Licensee "as is". To the +maximum extent permitted by applicable law, The Qt Company on behalf of +itself and its suppliers, disclaims all warranties and conditions, +either expressed or implied, including, but not limited to, implied +warranties of merchantability, fitness for a particular purpose, title +and non-infringement with regard to the Licensed Software. + + +LIMITATION OF LIABILITY + +9. If, The Qt Company's warranty disclaimer notwithstanding, The Qt Company is +held liable to Licensee, whether in contract, tort or any other legal +theory, based on the Licensed Software, The Qt Company's entire liability +to Licensee and Licensee's exclusive remedy shall be, at The Qt Company's +option, either (A) return of the price Licensee paid for the Licensed +Software, or (B) repair or replacement of the Licensed Software, +provided Licensee returns to The Qt Company all copies of the Licensed +Software as originally delivered to Licensee. The Qt Company shall not +under any circumstances be liable to Licensee based on failure of the +Licensed Software if the failure resulted from accident, abuse or +misapplication, nor shall The Qt Company under any circumstances be liable +for special damages, punitive or exemplary damages, damages for loss +of profits or interruption of business or for loss or corruption of +data. Any award of damages from The Qt Company to Licensee shall not exceed +the total amount Licensee has paid to The Qt Company in connection with +this Agreement. + + +SUPPORT AND UPDATES + +10. Licensee will be eligible to receive email based software support +and access to Downloads and Updates to the Licensed Software for the +License Term, in accordance with The Qt Company's then current policies and +procedures, if any. Such policies and procedures may be changed from +time to time. + + +PRIVACY + +11. Licensee acknowledges and agrees that for the purpose of this +agreement, The Qt Company may collect, use, transfer and disclose personal +data pertaining to Users as well as any other employees and directors +of the Licensee and its contractors relevant for carrying out the +intent of this agreement. Such personal data may be collected from the +Licensee or directly from the relevant individuals. The parties +acknowledge that with regard to such personal data processed +hereunder, The Qt Company shall be regarded as the Data Controller under +the applicable data protection legislation. The Qt Company shall process +any such personal data in accordance with its privacy policies and +practices, which will comply with all applicable requirements of the +General Data Protection Regulation (GDPR) and any national +implementing laws and regulations. + + +GENERAL PROVISIONS + +12. This Agreement may only be modified in writing signed by +authorized representatives of Licensee and The Qt Company. In case of a +conflict between this Agreement and the terms of any purchase order or +other ordering document, this Agreement shall prevail. If any provision +of this Agreement is found void or unenforceable, the remainder will +remain valid and enforceable according to its terms. If any remedy +provided is determined to have failed for its essential purpose, all +limitations of liability and exclusions of damages set forth in this +Agreement shall remain in effect. + +13. This Agreement shall be construed, interpreted and governed by the +laws of Finland, the legal venue to be Helsinki District Court. The Qt +Company reserves all rights not specifically granted in this +Agreement. diff --git a/recipes-qt/squish/squish_8.0-20240704-1900.bb b/recipes-qt/squish/squish_8.0-20240704-1900.bb new file mode 100644 index 0000000..caeeefd --- /dev/null +++ b/recipes-qt/squish/squish_8.0-20240704-1900.bb @@ -0,0 +1,87 @@ +LICENSE = "Squish-Commercial-License-Agreement" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=899603087536444c628655da3a982a75" + +EXCLUDE_FROM_WORLD = "1" + +inherit qt6-qmake + +SQUISH_MIRROR ?= "https://ci-files01-hki.ci.qt.io/input/squish/coin/67x" + +SRC_URI = "\ + ${SQUISH_MIRROR}/squish-${PV}-qt67x-linux64.run;name=squish \ + ${SQUISH_MIRROR}/squish-${PV}-qt-embedded-src.tar.gz;name=qt-squish-embedded \ +" + +SRC_URI[squish.sha256sum] = "5a84e611a9bdda23f5fcc3ee08945f99d13629afa695c6bb38c59bf4ad5c3591" +SRC_URI[qt-squish-embedded.sha256sum] = "64fe9a6728c299fa29ee7c03077edd0562e9a79198511e74dd4d89ca9adddf2a" + +S = "${WORKDIR}/squish-${PV}-qt-embedded-src" +B = "${WORKDIR}/build" + +DEPENDS += "\ + qtbase \ + qt5compat \ + qtdeclarative qtdeclarative-native \ + qtapplicationmanager \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland qtwayland-native wayland wayland-native', '', d)} \ +" + +lcl_maybe_fortify = "" +OE_QMAKE_PATH_HOST_LIBEXECS = "${STAGING_DIR_NATIVE}/${QT6_INSTALL_LIBEXECDIR}" + +do_install_squish[cleandirs] = "${WORKDIR}/squish" +do_install_squish[network] = "1" +do_install_squish() { + chmod +x ${WORKDIR}/squish-${PV}-qt67x-linux64.run + TMPDIR=${WORKDIR}/tmp XDG_RUNTIME_DIR=${WORKDIR}/tmp ${WORKDIR}/squish-${PV}-qt67x-linux64.run \ + -platform minimal unattended=1 targetdir=${WORKDIR}/squish ide=0 +} + +do_configure() { + ${S}/configure \ + --disable-all \ + --enable-qmake-config \ + --enable-qt \ + --enable-server \ + --enable-wayland \ + --with-qmake=${STAGING_DIR_NATIVE}${QT6_INSTALL_BINDIR}/qmake \ + --with-squishidl=${WORKDIR}/squish/bin/squishidl +} + +do_compile() { + ./build -j${@oe.utils.cpu_count()} +} + +do_install() { + DESTDIR=${D}/opt/squish + ./build install DESTDIR=${DESTDIR} + + install -d ${D}${QT6_INSTALL_PLUGINSDIR} + mv ${DESTDIR}/plugins/* ${D}${QT6_INSTALL_PLUGINSDIR} + rmdir ${DESTDIR}/plugins + + sed -i -e 's|${RECIPE_SYSROOT}||' ${D}/opt/squish/etc/paths.ini + + install -d ${D}${sysconfdir}/profile.d + echo "export SQUISH_PREFIX=/opt/squish" > ${D}${sysconfdir}/profile.d/squish.sh +} + +FILES:${PN} += "\ + ${QT6_INSTALL_PLUGINSDIR} \ + /opt/squish \ +" +FILES:${PN}-dev += "\ + /opt/squish/qtbuiltinhook.pri \ + /opt/squish/LICENSE.txt \ + /opt/squish/include \ + /opt/squish/lib/cmake \ + /opt/squish/sdk \ +" +FILES:${PN}-dev:remove = "${FILES_SOLIBSDEV}" +FILES:${PN}-staticdev += "\ + ${QT6_INSTALL_PLUGINSDIR}/generic/*.a \ + /opt/squish/lib/*.a \ + /opt/squish/lib/extensions/qt/*.a \ +" + +addtask install_squish after do_unpack before do_configure