From bca788b0e5dc96ec8f8d3bf6ddf3fd0fd9c0f92c Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Mon, 21 Mar 2022 17:03:07 -0400 Subject: Restore Qt compositor cluster demo image Changes: - Added the required backend plugin options for running with Qt's compositor to the PACKAGECONFIG variable in the qtbase recipe bbappend. - Restore an updated recipe for the agl-cluster-demo-qtcompositor image, with updates to the associated packagegroups for the app framework removal. - As part of the above, the duplication of the profile-cluster-qt5 package naming has been clarified in the qt5 versus qtcompositor packagegroups with new -wayland and -egl suffixes, with the previous plain -qt5 name aliasing the wayland option to maintain expected behavior. This avoids packaging conflict errors if building both types of cluster demo image in the same tree. - Restore updated cluster-gauges-qtcompositor recipe required for the image. - A simple systemd unit file has been added for the cluster-gauges application and is currently installed as a system session unit. Some rework of the agl-session scheme is required to run as a user unit, the intent is to address that in one of the 13.0.x point releases. Bug-AGL: SPEC-4283 Signed-off-by: Scott Murray Change-Id: Id79484c025fef067d7d47eaf783768e700a9dc8d --- .../cluster-gauges-qtcompositor.service | 14 ++++++++ .../cluster-gauges-qtcompositor_git.bb | 40 ++++++++++++++++++++++ .../images/agl-cluster-demo-qtcompositor.bb | 23 +++++++++++++ .../packagegroup-agl-cluster-demo-qtcompositor.bb | 32 +++++++++++++++++ .../packagegroup-agl-profile-cluster-qt5.bb | 4 ++- ...ackagegroup-agl-profile-cluster-qtcompositor.bb | 7 ++-- recipes-qt/qt/qtbase_agldemo.inc | 4 +++ 7 files changed, 118 insertions(+), 6 deletions(-) create mode 100644 recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service create mode 100644 recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb create mode 100644 recipes-platform/images/agl-cluster-demo-qtcompositor.bb create mode 100644 recipes-platform/packagegroups/packagegroup-agl-cluster-demo-qtcompositor.bb diff --git a/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service b/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service new file mode 100644 index 000000000..cedad0e8a --- /dev/null +++ b/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service @@ -0,0 +1,14 @@ +[Unit] +Description=cluster-gauges-qtcompositor + +[Service] +Environment=XDG_RUNTIME_DIR=/run/user/0 +ExecStart=/usr/bin/cluster-gauges + +Restart=always + +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=graphical.target diff --git a/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb b/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb new file mode 100644 index 000000000..4210754f8 --- /dev/null +++ b/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb @@ -0,0 +1,40 @@ +SUMMARY = "Minimal cluster demo gauges that can be used standalone" +DESCRIPTION = "AGL HMI Application for demonstrating instrument cluster gauges as a wayland compositor" +HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-cluster-demo-gauges" +SECTION = "apps" + +LICENSE = "Apache-2.0 & BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984 \ + file://app/cluster-gauges.qml;beginline=10;endline=49;md5=54187d50b29429abee6095fe8b7c1a78" + +DEPENDS = "qtquickcontrols2 qtwebsockets" + +PV = "1.0+git${SRCPV}" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-cluster-demo-gauges;protocol=https;branch=${AGL_BRANCH} \ + file://cluster-gauges-qtcompositor.service \ +" + +SRCREV = "${AGL_APP_REVISION}" + +S = "${WORKDIR}/git" + +inherit pkgconfig cmake_qt5 systemd + +SYSTEMD_SERVICE:${PN} = "${BPN}.service" + +do_install:append() { + install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service +} + +FILES:${PN} += " ${systemd_user_unitdir}" + +RDEPENDS:${PN} += " \ + qtquickcontrols \ + qtquickcontrols-qmlplugins \ + qtquickcontrols2 \ + qtquickcontrols2-qmlplugins \ + qtwebsockets \ + qtwebsockets-qmlplugins \ + kms-conf \ +" diff --git a/recipes-platform/images/agl-cluster-demo-qtcompositor.bb b/recipes-platform/images/agl-cluster-demo-qtcompositor.bb new file mode 100644 index 000000000..a9da97639 --- /dev/null +++ b/recipes-platform/images/agl-cluster-demo-qtcompositor.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "AGL Cluster Demo Qtwayland Compositor image currently contains a \ +simple cluster interface and some AGL service." + +LICENSE = "MIT" + +require recipes-platform/images/agl-image-boot.inc + +IMAGE_FEATURES += "splash package-management ssh-server-dropbear" + +inherit features_check + +REQUIRED_DISTRO_FEATURES = "wayland" + +# add packages for cluster demo qtcompositor +IMAGE_INSTALL:append = " \ + packagegroup-agl-cluster-demo-qtcompositor \ +" + +# NOTE: This should be revisited after upgrading to hardknott or later, +# as it may no longer be required. However, since Wayland is not +# being used, the new "weston" image feature may not be a viable +# option. +SYSTEMD_DEFAULT_TARGET = "graphical.target" diff --git a/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-qtcompositor.bb b/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-qtcompositor.bb new file mode 100644 index 000000000..a5c8b78e3 --- /dev/null +++ b/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-qtcompositor.bb @@ -0,0 +1,32 @@ +SUMMARY = "The software for AGL Cluster Demo Qtwayland Compositor" +DESCRIPTION = "A set of packages belong to AGL Cluster Demo Qtwayland Compositor" + +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-cluster-demo-qtcompositor \ + " + +ALLOW_EMPTY:${PN} = "1" + +RDEPENDS:${PN} += "\ + packagegroup-agl-profile-cluster-qtcompositor \ + packagegroup-agl-ttf-fonts \ + packagegroup-agl-networking \ + " + +AGL_SERVICE = " \ + " + +AGL_APPS = " \ + cluster-gauges-qtcompositor \ + " + +RDEPENDS:${PN}:append = " \ + linux-firmware-ralink \ + can-utils \ + ${AGL_SERVICE} \ + ${AGL_APPS} \ +" diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb index 39b0c3739..1cf20937c 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb @@ -6,6 +6,7 @@ inherit packagegroup PACKAGES = "\ packagegroup-agl-profile-cluster-qt5 \ + profile-cluster-qt5-wayland \ profile-cluster-qt5 \ " @@ -17,4 +18,5 @@ RDEPENDS:${PN} += "\ packagegroup-agl-graphical-weston \ " -RDEPENDS:profile-cluster-qt5 = "${PN}" +RDEPENDS:profile-cluster-qt5-wayland = "${PN}" +RDEPENDS:profile-cluster-qt5 = "profile-cluster-qt5-wayland" diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb index ae1ad96be..ba66b60d5 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb @@ -6,7 +6,7 @@ inherit packagegroup PACKAGES = "\ packagegroup-agl-profile-cluster-qtcompositor \ - profile-cluster-qt5 \ + profile-cluster-qt5-egl \ " ALLOW_EMPTY:${PN} = "1" @@ -23,13 +23,10 @@ QT_LITE = " \ qtwayland \ qtgraphicaleffects-qmlplugins \ qtsvg-plugins \ - qtwebsockets \ - qtwebsockets-qmlplugins \ - qtcompositor-conf \ " RDEPENDS:${PN}:append = " \ ${QT_LITE} \ " -RDEPENDS:profile-cluster-qt5 = "${PN}" +RDEPENDS:profile-cluster-qt5-egl = "${PN}" diff --git a/recipes-qt/qt/qtbase_agldemo.inc b/recipes-qt/qt/qtbase_agldemo.inc index 5e6477985..48d96b2dc 100644 --- a/recipes-qt/qt/qtbase_agldemo.inc +++ b/recipes-qt/qt/qtbase_agldemo.inc @@ -1 +1,5 @@ +# Enable EGL and KMS platform plugins to allow demos of Qt compositor +# without Wayland +PACKAGECONFIG_GL:append = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', ' eglfs kms gbm', '', d)}" + PACKAGECONFIG:append = " icu fontconfig sql-sqlite" -- cgit 1.2.3-korg