Restore Qt compositor cluster demo image 72/27272/2
authorScott Murray <scott.murray@konsulko.com>
Mon, 21 Mar 2022 21:03:07 +0000 (17:03 -0400)
committerScott Murray <scott.murray@konsulko.com>
Mon, 21 Mar 2022 21:17:00 +0000 (17:17 -0400)
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 <scott.murray@konsulko.com>
Change-Id: Id79484c025fef067d7d47eaf783768e700a9dc8d

recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service [new file with mode: 0644]
recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb [new file with mode: 0644]
recipes-platform/images/agl-cluster-demo-qtcompositor.bb [new file with mode: 0644]
recipes-platform/packagegroups/packagegroup-agl-cluster-demo-qtcompositor.bb [new file with mode: 0644]
recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb
recipes-qt/qt/qtbase_agldemo.inc

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 (file)
index 0000000..cedad0e
--- /dev/null
@@ -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 (file)
index 0000000..4210754
--- /dev/null
@@ -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 (file)
index 0000000..a9da976
--- /dev/null
@@ -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 (file)
index 0000000..a5c8b78
--- /dev/null
@@ -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} \
+"
index 39b0c37..1cf2093 100644 (file)
@@ -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"
index ae1ad96..ba66b60 100644 (file)
@@ -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}"
index 5e64779..48d96b2 100644 (file)
@@ -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"