Rework demo packagegroup and images 12/27712/1
authorScott Murray <scott.murray@konsulko.com>
Mon, 6 Jun 2022 22:06:42 +0000 (18:06 -0400)
committerScott Murray <scott.murray@konsulko.com>
Wed, 6 Jul 2022 18:00:05 +0000 (14:00 -0400)
Rework the agl-ivi-demo-platform* images to reduce duplication,
and move the additions for the agl-demo-cluster-support and
agl-demo-preload features.

Changes:
- Pull in agl-image-ivi.bb in the crosssdk image rather than
  duplicating its contents.  This means the package additions
  from the demo features will be reflected in the SDK, which
  seems more in line with general expectations of how Yocto SDKs
  work.
- New packagegroups are created for the agl-demo-cluster-support
  and agl-demo-preload features, and they are pulled into the
  agl-ivi-demo-platform / agl-demo-platform image using features
  in IMAGE_FEATURES.  This avoids changing the contents of various
  packagegroups based on AGL_FEATURES and seems more futureproof
  with respect to binary packaging.
- ALLOW_EMPTY has been removed in a few packagegroup recipes, as
  it does not seem to make sense if the packagegroup will never
  be empty.
- The cluster-dashboard-demo-config recipe pulled into the
  agl-demo-cluster-support packagegroup has been added back, it
  was accidentally removed in the application framework cleanup.

Bug-AGL: SPEC-4424

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: Icaa38651a1d29de09bb40576c773e3f93ee87098

recipes-config/cluster-dashboard-demo-config/cluster-dashboard-demo-config_1.0.bb [new file with mode: 0644]
recipes-config/cluster-dashboard-demo-config/files/AGL.conf.cluster [new file with mode: 0644]
recipes-platform/images/agl-ivi-demo-platform-crosssdk.bb
recipes-platform/images/agl-ivi-demo-platform-html5.bb
recipes-platform/images/agl-ivi-demo-platform.bb
recipes-platform/packagegroups/packagegroup-agl-demo-cluster-support.bb [new file with mode: 0644]
recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb
recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb
recipes-platform/packagegroups/packagegroup-agl-demo-preload.bb [new file with mode: 0644]

diff --git a/recipes-config/cluster-dashboard-demo-config/cluster-dashboard-demo-config_1.0.bb b/recipes-config/cluster-dashboard-demo-config/cluster-dashboard-demo-config_1.0.bb
new file mode 100644 (file)
index 0000000..f1fce78
--- /dev/null
@@ -0,0 +1,11 @@
+SUMMARY = "AGL cluster demo dashboard configuration file"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI += "file://AGL.conf.cluster"
+
+inherit allarch
+
+do_install() {
+    install -D -m 0644 ${WORKDIR}/AGL.conf.cluster ${D}${sysconfdir}/xdg/AGL.conf
+}
diff --git a/recipes-config/cluster-dashboard-demo-config/files/AGL.conf.cluster b/recipes-config/cluster-dashboard-demo-config/files/AGL.conf.cluster
new file mode 100644 (file)
index 0000000..dd8a912
--- /dev/null
@@ -0,0 +1,2 @@
+[dashboard]
+animation=false
index 45db0e3..03bc3c4 100644 (file)
@@ -1,19 +1,11 @@
+require agl-ivi-demo-platform.bb
+
 SUMMARY = "Cross SDK of Full AGL Distribution for IVI profile"
 
 DESCRIPTION = "SDK image for full AGL Distribution for IVI profile. \
 It includes the full meta-toolchain, plus developement headers and libraries \
 to form a standalone cross SDK."
 
-
-require agl-image-ivi.bb
-
-# add packages for demo platform (include demo apps) here
-IMAGE_INSTALL:append = " \
-    packagegroup-agl-demo-platform \
-    "
-
-LICENSE = "MIT"
-
 require recipes-platform/images/agl-image-minimal-crosssdk.inc
 
 # Add wayland-scanner to SDK (SPEC-945)
@@ -50,10 +42,10 @@ TOOLCHAIN_TARGET_TASK += "waltham-dev"
 
 TOOLCHAIN_HOST_TASK += " \
     nativesdk-lua \
-    "
+"
 
 # Required dependencies for app and test builds
 TOOLCHAIN_TARGET_TASK += " \
     lua-dev \
     lua-staticdev \
-    "
+"
index bef66eb..805e239 100644 (file)
@@ -1,14 +1,9 @@
-SUMMARY = "DEMO platform of AGL HTML5 profile"
-DESCRIPTION = "Contains the web runtime and sample web apps"
-
 require agl-image-ivi.bb
 
-LICENSE = "MIT"
-
-IMAGE_FEATURES:append = " \
-    "
+SUMMARY = "DEMO platform of AGL HTML5 profile"
+DESCRIPTION = "Contains the web runtime and sample web apps"
 
 # add packages for demo platform (include demo apps) here
 IMAGE_INSTALL:append = " \
     packagegroup-agl-demo-platform-html5 \
-    "
+"
index 78a6b2c..d3bda6a 100644 (file)
@@ -1,13 +1,15 @@
+require agl-image-ivi.bb
+
 DESCRIPTION = "AGL Demo Platform image currently contains a simple HMI and \
 demos."
 
-require agl-image-ivi.bb
-
+FEATURE_PACKAGES_agl-demo-preload = "packagegroup-agl-demo-preload"
+FEATURE_PACKAGES_agl-demo-cluster-support = "packagegroup-agl-demo-cluster-support"
 
-LICENSE = "MIT"
+IMAGE_FEATURES += "${@bb.utils.filter("AGL_FEATURES", "agl-demo-preload agl-demo-cluster-support", d)}"
 
 # add packages for demo platform (include demo apps) here
 IMAGE_INSTALL:append = " \
     packagegroup-agl-demo-platform \
-    "
+"
 
diff --git a/recipes-platform/packagegroups/packagegroup-agl-demo-cluster-support.bb b/recipes-platform/packagegroups/packagegroup-agl-demo-cluster-support.bb
new file mode 100644 (file)
index 0000000..8c3fe3b
--- /dev/null
@@ -0,0 +1,16 @@
+SUMMARY = "Extra software and configuration for cluster demo with AGL IVI profile demo platform"
+
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = "\
+    packagegroup-agl-demo-cluster-support \
+"
+
+RDEPENDS:${PN} += "\
+    packagegroup-agl-demo-platform \
+    tbtnavi \
+    cluster-demo-network-config \
+"
index 7c5851c..06df05e 100644 (file)
@@ -8,26 +8,14 @@ inherit packagegroup
 PROVIDES = "${PACKAGES}"
 PACKAGES = "\
     packagegroup-agl-demo-platform-html5 \
-    packagegroup-agl-demo-platform-html5-devel \
     "
 
-ALLOW_EMPTY:${PN} = "1"
-
 RDEPENDS:${PN} += "\
     packagegroup-agl-image-ivi \
-    "
-
-RDEPENDS:${PN} += "\
     packagegroup-agl-profile-graphical-html5 \
     packagegroup-agl-demo \
     "
 
-
-RDEPENDS:${PN}:append = " \
-    weston-ini-conf-landscape \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip' , '', d)} \
-    "
-
 # TODO(jdapena): replace this with HTML5 apps.
 AGL_APPS = " \
     html5-dashboard \
@@ -39,21 +27,10 @@ AGL_APPS = " \
     html5-settings \
     "
 
-# TODO(jdapena): review if we still need the demo-i2c stuff.
-
-# Hook for demo platform configuration
-# ATM used for:
-# 1) Adding udev configuration and scripts for supporting USB attached
-#    I2C devices for RTC and HVAC LED support.
-DEMO_UNIT_CONF ?= "demo-i2c-udev-conf"
-
-# Preload only if agl-demo-preload is set
-DEMO_PRELOAD = "${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "${DEMO_UNIT_CONF}", "",d)}"
-
 RDEPENDS:${PN}:append = " \
+    weston-ini-conf-landscape \
     ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip' , '', d)} \
     qtquickcontrols2-agl \
     qtquickcontrols2-agl-style \
     ${AGL_APPS} \
-    ${DEMO_PRELOAD} \
     "
index fdebd24..c7db035 100644 (file)
@@ -8,16 +8,10 @@ inherit packagegroup
 PROVIDES = "${PACKAGES}"
 PACKAGES = "\
     packagegroup-agl-demo-platform \
-    packagegroup-agl-demo-platform-devel \
     "
 
-ALLOW_EMPTY:${PN} = "1"
-
 RDEPENDS:${PN} += "\
     packagegroup-agl-image-ivi \
-    "
-
-RDEPENDS:${PN} += "\
     packagegroup-agl-profile-graphical-qt5 \
     packagegroup-hmi-framework \
     packagegroup-agl-demo \
@@ -34,28 +28,10 @@ AGL_APPS = " \
     radio \
     "
 
-# Cluster demo support.
-CLUSTER_SUPPORT_PACKAGES = " \
-       tbtnavi \
-       cluster-demo-network-config \
-"
-CLUSTER_SUPPORT = "${@bb.utils.contains("AGL_FEATURES", "agl-demo-cluster-support", "${CLUSTER_SUPPORT_PACKAGES}", "",d)}"
-
-# Hook for demo platform configuration
-# ATM used for:
-# 1) Adding udev configuration and scripts for supporting USB attached
-#    I2C devices for RTC and HVAC LED support.
-DEMO_UNIT_CONF ?= "demo-i2c-udev-conf"
-
-# Preload only if agl-demo-preload is set
-DEMO_PRELOAD = "${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "${DEMO_UNIT_CONF}", "",d)}"
-
 RDEPENDS:${PN}:append = " \
     launcher \
     qtquickcontrols2-agl \
     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-demo-preload.bb b/recipes-platform/packagegroups/packagegroup-agl-demo-preload.bb
new file mode 100644 (file)
index 0000000..5a9178a
--- /dev/null
@@ -0,0 +1,29 @@
+SUMMARY = "Extra software and configuration for tradeshow demo with AGL IVI profile demo platform"
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = " \
+    packagegroup-agl-demo-preload \
+"
+
+# NOTES:
+# - demo-i2x-udev-conf:
+#     Adds udev configuration and scripts for supporting USB attached
+#     I2C devices for RTC and HVAC LED support.
+# - sllin-demo:
+#     Adds systemd unit and scripting to drive configuring sllin
+#     driver with lin-config utility, enabling HVAC fan control and
+#     steering wheel controls in the demo.
+# - simple-can-simulator:
+#     CAN message simulator for vehicle and engine speed message
+#     generation, with some support for the cruise control events from
+#     the steering wheel used in the demo setup.
+#
+RDEPENDS:${PN} = "\
+    packagegroup-agl-demo-platform \
+    demo-i2c-udev-conf \
+    sllin-demo \
+    simple-can-simulator \
+"