summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-03-07 16:21:05 -0500
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2022-03-08 14:49:45 +0000
commit6cce1d8fcff72bd429a6f0aea23fc5666fd67878 (patch)
tree3d9992258a8877afcc5bb90a0def2706a83816ab
parent8e02ea4d58b42e6d1bad629399b25713e34e55e9 (diff)
Restore cluster and telematics demo images
Changes: - Restore the image recipes for the agl-cluster-demo-platform and agl-telematics-demo-platform images, with updates to them and their associated packagegroups for the app framework removal. - Restore updated recipes required for the above, including: * cluster-dashboard * cluster-receiver * qt-cluster-receiver * tbtnavi - Simple systemd unit files have been added for the cluster applications and are installed as user session units. Starting of cluster-dashboard (the XDG version) and cluster-receiver in the AGL user session is enabled by default. - The recipes to install the dedicated network configuration for the cluster demo have been restored so that the agl-cluster-demo-support and agl-demo-preload features will do what is expected again. Known outstanding issues: - The previous signal-composer binding support has been removed from cluster-dashboard, so related functionality (i.e. driving it from CAN) is disabled until replacement is worked out. - While tbtnavi builds, the previous use of the navigation binding is stubbed out in libqtappfw, so it will not receive location and route information from ondemandnavi. - Nothing has been added yet to start tbtnavi in the AGL user session, the plan is to do so with a systemd user unit once a new mechanism for controlling it from ondemandnavi has been implemented. - The telematics-recorder application has not yet been updated to replace its signal-composer, gps, and network binding use. The intent is to address these issues in the 13.0.x point releases. Bug-AGL: SPEC-4283 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I520c23775b21504cb7dd92538319cc5bf826ff64
-rw-r--r--recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb33
-rw-r--r--recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh17
-rw-r--r--recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service12
-rw-r--r--recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service20
-rw-r--r--recipes-demo/cluster-dashboard/cluster-dashboard_git.bb46
-rw-r--r--recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service20
-rw-r--r--recipes-demo/cluster-receiver/cluster-receiver_git.bb38
-rw-r--r--recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service20
-rw-r--r--recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb40
-rw-r--r--recipes-demo/navigation/tbtnavi_git.bb36
-rw-r--r--recipes-platform/images/agl-cluster-demo-platform.bb18
-rw-r--r--recipes-platform/images/agl-telematics-demo-platform.bb13
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb30
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb8
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb1
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb1
16 files changed, 351 insertions, 2 deletions
diff --git a/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb b/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb
new file mode 100644
index 00000000..8d737282
--- /dev/null
+++ b/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Setting files for cluster network for the AGL Demonstrator"
+DESCRIPTION = "Setting files for cluster network for the AGL Demonstrator"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+inherit systemd allarch
+
+SRC_URI = "file://cluster-demo-network-conf@.service \
+ file://cluster-demo-network-conf.sh \
+"
+
+# Network device for dedicated connection to cluster
+AGL_CLUSTER_NET_DEVICE ?= "eth1"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ # Install helper script
+ install -d ${D}${sbindir}
+ install -m 0755 ${WORKDIR}/cluster-demo-network-conf.sh ${D}${sbindir}/
+
+ # Install service unit
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/cluster-demo-network-conf@.service ${D}${systemd_system_unitdir}/
+
+ # Add symlink to network.target.wants
+ install -d ${D}${sysconfdir}/systemd/system/network.target.wants
+ ln -s ${systemd_system_unitdir}/cluster-demo-network-conf@.service \
+ ${D}${sysconfdir}/systemd/system/network.target.wants/cluster-demo-network-conf@${AGL_CLUSTER_NET_DEVICE}.service
+}
+
+FILES:${PN} += "${systemd_system_unitdir}"
diff --git a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh
new file mode 100644
index 00000000..3f538175
--- /dev/null
+++ b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+CONNMAN_CONF=/etc/connman/main.conf
+CLUSTER_ADDRESS=192.168.20.93
+
+if [ -z "$1" ]; then
+ echo "Usage: $0 <network device>"
+ exit 1
+fi
+
+# Need to blacklist given device with connman if it isn't already,
+# otherwise connman will over-ride address configuration.
+if ! grep '^NetworkInterfaceBlacklist=' ${CONNMAN_CONF} | grep -q $1; then
+ sed -i "s/^\(NetworkInterfaceBlacklist=.*\)/\1,$1/" ${CONNMAN_CONF}
+fi
+
+/sbin/ifconfig $1 ${CLUSTER_ADDRESS}
diff --git a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service
new file mode 100644
index 00000000..5fc29b7a
--- /dev/null
+++ b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Configure dedicated link for cluster demo network
+After=sys-subsystem-net-devices-%i.device
+Requires=sys-subsystem-net-devices-%i.device
+Before=network.target
+
+[Service]
+ExecStart=/usr/sbin/cluster-demo-network-conf.sh %i
+Type=oneshot
+
+[Install]
+WantedBy=network.target
diff --git a/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service b/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service
new file mode 100644
index 00000000..d96c738b
--- /dev/null
+++ b/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=cluster-dashboard
+
+Requires=agl-compositor.service
+After=agl-compositor.service
+
+# Since we are part of the agl session, make sure we are started before
+# it is complete.
+Before=agl-session.target
+
+[Service]
+ExecStart=/usr/bin/cluster-dashboard
+
+Restart=always
+
+StandardOutput=journal
+StandardError=journal
+
+[Install]
+WantedBy=agl-session.target
diff --git a/recipes-demo/cluster-dashboard/cluster-dashboard_git.bb b/recipes-demo/cluster-dashboard/cluster-dashboard_git.bb
new file mode 100644
index 00000000..2f5bbecf
--- /dev/null
+++ b/recipes-demo/cluster-dashboard/cluster-dashboard_git.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Instrument Cluster Dashboard application"
+DESCRIPTION = "AGL demonstration instrument cluster dashboard application"
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-cluster-demo-dashboard"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0 & BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984 \
+ file://app/cluster-gauges.qml;beginline=9;endline=48;md5=54187d50b29429abee6095fe8b7c1a78"
+
+DEPENDS = " \
+ qtquickcontrols2 \
+ libqtappfw \
+ glib-2.0 \
+ wayland wayland-native \
+ qtwayland qtwayland-native \
+"
+
+PV = "1.0+git${SRCPV}"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-cluster-demo-dashboard;protocol=https;branch=${AGL_BRANCH} \
+ file://cluster-dashboard.service \
+"
+SRCREV = "${AGL_APP_REVISION}"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake_qt5
+
+do_install:append() {
+ install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
+ install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service
+ ln -s ../${BPN}.service ${D}${systemd_user_unitdir}/agl-session.target.wants/${BPN}.service
+}
+
+FILES:${PN} += " ${systemd_user_unitdir}"
+
+RDEPENDS:${PN} += " \
+ qtwayland \
+ qtbase-qmlplugins \
+ qtquickcontrols \
+ qtquickcontrols-qmlplugins \
+ qtquickcontrols2 \
+ qtquickcontrols2-qmlplugins \
+ qtgraphicaleffects-qmlplugins \
+ qtsvg-plugins \
+"
diff --git a/recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service b/recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service
new file mode 100644
index 00000000..e544e25f
--- /dev/null
+++ b/recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=cluster-receiver
+
+Requires=agl-compositor.service
+After=agl-compositor.service
+
+# Since we are part of the agl session, make sure we are started before
+# it is complete.
+Before=agl-session.target
+
+[Service]
+ExecStart=/usr/bin/xdg-cluster-receiver
+
+Restart=always
+
+StandardOutput=journal
+StandardError=journal
+
+[Install]
+WantedBy=agl-session.target
diff --git a/recipes-demo/cluster-receiver/cluster-receiver_git.bb b/recipes-demo/cluster-receiver/cluster-receiver_git.bb
new file mode 100644
index 00000000..3b1dd6a0
--- /dev/null
+++ b/recipes-demo/cluster-receiver/cluster-receiver_git.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Instrument Cluster receiver application"
+DESCRIPTION = "AGL demonstration instrument cluster XDG remote display application"
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-cluster-demo-receiver"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=374fee6a7817f1e1a5a7bfb7b7989553"
+
+DEPENDS = " \
+ wayland wayland-native \
+ agl-compositor \
+ gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+"
+
+PV = "1.0+git${SRCPV}"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-cluster-demo-receiver;protocol=https;branch=${AGL_BRANCH} \
+ file://cluster-receiver.service \
+"
+SRCREV = "${AGL_APP_REVISION}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+do_install:append() {
+ install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service
+ install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
+ ln -s ../${BPN}.service ${D}${systemd_user_unitdir}/agl-session.target.wants/${BPN}.service
+}
+
+FILES:${PN} += " ${systemd_user_unitdir}"
+
+RDEPENDS:${PN} += " \
+ gstreamer1.0-plugins-base \
+ gstreamer1.0-plugins-good \
+ gstreamer1.0-plugins-bad \
+"
diff --git a/recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service b/recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service
new file mode 100644
index 00000000..bc328f9e
--- /dev/null
+++ b/recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=qt-cluster-receiver
+
+Requires=agl-compositor.service
+After=agl-compositor.service
+
+# Since we are part of the agl session, make sure we are started before
+# it is complete.
+Before=agl-session.target
+
+[Service]
+ExecStart=/usr/bin/qt-cluster-receiver
+
+Restart=always
+
+StandardOutput=journal
+StandardError=journal
+
+[Install]
+WantedBy=agl-session.target
diff --git a/recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb b/recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb
new file mode 100644
index 00000000..d43ab437
--- /dev/null
+++ b/recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Instrument Cluster receiver application"
+DESCRIPTION = "AGL demonstration instrument cluster Qt remote display application"
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/admin/repos/apps/agl-qt-cluster-demo-receiver"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984 \
+ file://app/surface.hpp;beginline=5;endline=21;md5=5351c531a191f0e3463aafcd0a6a00a3"
+
+DEPENDS = " \
+ wayland wayland-native \
+ qtwayland qtwayland-native \
+ qtquickcontrols2 qtwebsockets qtbase qtdeclarative \
+ gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+"
+
+PV = "1.0+git${SRCPV}"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-qt-cluster-demo-receiver;protocol=https;branch=${AGL_BRANCH} \
+ file://qt-cluster-receiver.service \
+"
+SRCREV = "${AGL_APP_REVISION}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake_qt5 pkgconfig
+
+do_install:append() {
+ # Only install unit, do not enable it by default
+ install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service
+}
+
+FILES:${PN} += " ${systemd_user_unitdir}"
+
+RDEPENDS:${PN} += " \
+ qtwayland \
+ gstreamer1.0-plugins-base \
+ gstreamer1.0-plugins-good \
+ gstreamer1.0-plugins-bad \
+"
diff --git a/recipes-demo/navigation/tbtnavi_git.bb b/recipes-demo/navigation/tbtnavi_git.bb
new file mode 100644
index 00000000..5981cc58
--- /dev/null
+++ b/recipes-demo/navigation/tbtnavi_git.bb
@@ -0,0 +1,36 @@
+SUMMARY = "AGL Reference Navigation Cluster Streaming application"
+DESCRIPTION = "Demo AGL turn by turn cluster navigation application based on QtLocation widget."
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/admin/repos/apps/tbtnavi"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0 & ISC & BSD-3-Clause & BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984 \
+ file://LICENSE.mapbox-cheap-ruler-cpp;md5=761263ee6bdc98e8697d9fbc897021ba \
+ file://LICENSE.mapbox-geometry.hpp;md5=6e44f5d6aeec54f40fc84eebe3c6fc6c \
+ file://LICENSE.mapbox-variant;md5=79558839a9db3e807e4ae6f8cd100c1c \
+ file://include/mapbox/recursive_wrapper.hpp;beginline=4;endline=13;md5=cd3341aae76c0cf8345935abd20f0051 \
+"
+
+DEPENDS = " \
+ qtbase \
+ qtquickcontrols2 \
+ qtlocation \
+ libqtappfw \
+ wayland-native \
+ qtwayland-native \
+"
+
+PV = "2.0+git${SRCPV}"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/tbtnavi;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "${AGL_APP_REVISION}"
+
+S = "${WORKDIR}/git"
+
+inherit qmake5 pkgconfig
+
+RDEPENDS:${PN} += " \
+ qtlocation \
+ ondemandnavi-config \
+ libqtappfw \
+"
diff --git a/recipes-platform/images/agl-cluster-demo-platform.bb b/recipes-platform/images/agl-cluster-demo-platform.bb
new file mode 100644
index 00000000..d5c92742
--- /dev/null
+++ b/recipes-platform/images/agl-cluster-demo-platform.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "AGL Cluster Demo Platform image currently contains a simple cluster interface."
+
+LICENSE = "MIT"
+
+require recipes-platform/images/agl-image-boot.inc
+
+IMAGE_FEATURES += "splash package-management ssh-server-openssh"
+
+inherit features_check
+
+REQUIRED_DISTRO_FEATURES = "wayland"
+
+# add packages for cluster demo platform (include demo apps) here
+IMAGE_INSTALL:append = " \
+ packagegroup-agl-cluster-demo-platform \
+ ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "cluster-dashboard-demo-config", "", d)} \
+ ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "weston-ini-conf-landscape-inverted", "weston-ini-conf-landscape", d)} \
+ "
diff --git a/recipes-platform/images/agl-telematics-demo-platform.bb b/recipes-platform/images/agl-telematics-demo-platform.bb
new file mode 100644
index 00000000..b8a99617
--- /dev/null
+++ b/recipes-platform/images/agl-telematics-demo-platform.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "AGL Telematics Demo Platform image."
+
+LICENSE = "MIT"
+
+require recipes-platform/images/agl-image-boot.inc
+
+inherit features_check
+
+REQUIRED_DISTRO_FEATURES = "3g"
+
+IMAGE_INSTALL:append = " \
+ packagegroup-agl-telematics-demo-platform \
+"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb b/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb
new file mode 100644
index 00000000..c414adf4
--- /dev/null
+++ b/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb
@@ -0,0 +1,30 @@
+SUMMARY = "The software for demo platform of AGL cluster profile"
+DESCRIPTION = "A set of packages belong to AGL Cluster Demo Platform"
+
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-agl-cluster-demo-platform \
+ "
+
+ALLOW_EMPTY:${PN} = "1"
+
+RDEPENDS:${PN} += "\
+ packagegroup-agl-profile-cluster-qt5 \
+ packagegroup-agl-ttf-fonts \
+ packagegroup-agl-source-han-sans-ttf-fonts \
+ packagegroup-agl-networking \
+ "
+
+AGL_APPS = " \
+ cluster-dashboard \
+ cluster-receiver \
+ qt-cluster-receiver \
+ "
+
+RDEPENDS:${PN}:append = " \
+ can-utils \
+ ${AGL_APPS} \
+"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb b/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb
index a86da2e2..9c4553f2 100644
--- a/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb
+++ b/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb
@@ -34,6 +34,13 @@ AGL_APPS = " \
radio \
"
+# Cluster demo support.
+CLUSTER_SUPPORT_PACKAGES = " \
+ tbtnavi \
+ cluster-demo-network-config \
+"
+CLUSTER_SUPPORT = "${@bb.utils.contains("AGL_FEATURES", "agl-cluster-demo-support", "${CLUSTER_SUPPORT_PACKAGES}", "",d)}"
+
# Hook for demo platform configuration
# ATM used for:
# 1) Adding udev configuration and scripts for supporting USB attached
@@ -49,5 +56,6 @@ RDEPENDS:${PN}:append = " \
qtquickcontrols2-agl-style \
${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip mpc' , '', d)} \
${AGL_APPS} \
+ ${CLUSTER_SUPPORT} \
${DEMO_PRELOAD} \
"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
index aeef45da..39b0c373 100644
--- a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
+++ b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
@@ -15,7 +15,6 @@ RDEPENDS:${PN} += "\
packagegroup-agl-image-boot \
packagegroup-agl-core-security \
packagegroup-agl-graphical-weston \
- packagegroup-agl-appfw-native-qt5 \
"
RDEPENDS:profile-cluster-qt5 = "${PN}"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb b/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb
index 17b5c8b2..d598de4e 100644
--- a/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb
+++ b/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb
@@ -30,4 +30,3 @@ RDEPENDS:${PN}:append = " \
${AGL_APPS} \
${AGL_APIS} \
"
-# packagegroup-agl-core-navigation? (brings in geoclue...)