Add KUKSA.val databroker image features 99/29699/2
authorScott Murray <scott.murray@konsulko.com>
Tue, 20 Feb 2024 17:29:24 +0000 (12:29 -0500)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 8 Mar 2024 18:27:03 +0000 (18:27 +0000)
Rework inclusion of KUKSA.val databroker server and client support
into image features that can be specified via IMAGE_FEATURES, and
use that in our demo image definitions.  As well, add a new
agl-kvm-host-kuksa feature that allows configuring the KVM demo
build to run the databroker on the host instead of in the IVI
guest.  Some further application configuration changes are
required for that to fully work, those will come in follow up
commits.

Bug-AGL: SPEC-5082

Change-Id: Ice931fe924c1bf49709999eeabcb998ee191fc80
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29699
ci-image-boot-test: Jenkins Job builder account
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tested-by: Jenkins Job builder account
ci-image-build: Jenkins Job builder account

recipes-platform/images/agl-cluster-demo-platform-flutter.bb
recipes-platform/images/agl-cluster-demo-platform.bb
recipes-platform/images/agl-demo-features.inc
recipes-platform/images/agl-ivi-demo-base.bb
recipes-platform/images/agl-ivi-demo-features.inc [new file with mode: 0644]
recipes-platform/images/agl-kvm-demo-platform.bb
recipes-platform/packagegroups/packagegroup-agl-demo-platform-flutter.bb
recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb
templates/feature/agl-kvm-host-kuksa/50_local.conf.inc [new file with mode: 0644]
templates/feature/agl-kvm-host-kuksa/README_feature_agl-kvm-host-kuksa.md [new file with mode: 0644]
templates/feature/agl-kvm-host-kuksa/included.dep [new file with mode: 0644]

index ff3816d..5cf3daf 100644 (file)
@@ -3,19 +3,19 @@ SUMMARY = "Baseline Flutter Image for Release"
 LICENSE = "MIT"
 
 require recipes-platform/images/agl-image-compositor.bb
+require agl-demo-features.inc
 
 IMAGE_FEATURES += "splash package-management ssh-server-openssh"
 
-# Break out KUKSA.val packages, as demo unit configuration
-# points at KUKSA.val server on the IVI board in full demo
-# builds with the "agl-demo-preload" feature enabled.
-KUKSA_DATABROKER_PACKAGES = " \
-    packagegroup-agl-kuksa-val-databroker \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'packagegroup-agl-kuksa-val-databroker-devel' , '', d)} \
+# KUKSA.val databroker is not installed with "agl-demo-preload"
+# feature enabled, since demo unit configuration points at the
+# databroker on the IVI board in that setup.
+IMAGE_FEATURES += " \
+    kuksa-val-databroker-client \
+    ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "", "kuksa-val-databroker", d)} \
 "
 
-
-# generic
+# Generic
 IMAGE_INSTALL += "\
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "psplash-inverted-config", "", d)} \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "weston-ini-conf-landscape-inverted", "weston-ini-conf-landscape", d)} \
@@ -23,8 +23,6 @@ IMAGE_INSTALL += "\
     packagegroup-agl-networking \
     cluster-receiver \
     \
-    kuksa-certificates-agl-ca \
-    ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "", "${KUKSA_DATABROKER_PACKAGES}", d)} \
     simple-can-simulator \
     "
 
index a499246..c427af6 100644 (file)
@@ -3,6 +3,7 @@ DESCRIPTION = "AGL Cluster Demo Platform image currently contains a simple clust
 LICENSE = "MIT"
 
 require recipes-platform/images/agl-image-compositor.bb
+require agl-demo-features.inc
 
 IMAGE_FEATURES += "splash package-management ssh-server-openssh"
 
@@ -10,12 +11,12 @@ inherit features_check
 
 REQUIRED_DISTRO_FEATURES = "wayland"
 
-# Break out KUKSA.val packages, as demo unit configuration
-# points at KUKSA.val server on the IVI board in full demo
-# builds with the "agl-demo-preload" feature enabled.
-KUKSA_DATABROKER_PACKAGES = " \
-    packagegroup-agl-kuksa-val-databroker \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'packagegroup-agl-kuksa-val-databroker-devel' , '', d)} \
+# KUKSA.val databroker is not installed with "agl-demo-preload"
+# feature enabled, since demo unit configuration points at the
+# databroker on the IVI board in that setup.
+IMAGE_FEATURES += " \
+    kuksa-val-databroker-client \
+    ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "", "kuksa-val-databroker", d)} \
 "
 
 # add packages for cluster demo platform (include demo apps) here
@@ -24,6 +25,5 @@ IMAGE_INSTALL += " \
     kuksa-certificates-agl-ca \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "cluster-demo-config", "", d)} \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "weston-ini-conf-landscape-inverted", "weston-ini-conf-landscape", d)} \
-    ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "", "${KUKSA_DATABROKER_PACKAGES}", d)} \
     ${@bb.utils.contains("AGL_FEATURES", "AGLCI", "qemu-set-display", "", d)} \
     "
index beaad0b..b337497 100644 (file)
@@ -1,4 +1,5 @@
-FEATURE_PACKAGES_agl-demo-preload = "packagegroup-agl-demo-preload"
-FEATURE_PACKAGES_agl-demo-cluster-support = "packagegroup-agl-demo-cluster-support"
-
-IMAGE_FEATURES += "${@bb.utils.filter("AGL_FEATURES", "agl-demo-preload agl-demo-cluster-support", d)}"
+FEATURE_PACKAGES_kuksa-val-databroker-client = " \
+    kuksa-certificates-agl-ca \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'packagegroup-agl-kuksa-val-databroker-devel' , '', d)} \
+"
+FEATURE_PACKAGES_kuksa-val-databroker = "packagegroup-agl-kuksa-val-databroker"
index da8d2ee..da4d268 100644 (file)
@@ -2,11 +2,10 @@ require agl-image-ivi.bb
 
 DESCRIPTION = "AGL demo base image"
 
-require agl-demo-features.inc
+require agl-ivi-demo-features.inc
 require agl-demo-container-guest-integration.inc
 
 AGL_DEVEL_INSTALL += "\
-    packagegroup-agl-kuksa-val-databroker-devel \
     simple-can-simulator \
     unzip \
     mpc \
@@ -18,6 +17,3 @@ IMAGE_INSTALL += " \
     ${AGL_APPS_INSTALL} \
     ${@bb.utils.contains("DISTRO_FEATURES", "agl-devel", "${AGL_DEVEL_INSTALL}" , "", d)} \
 "
-
-
-
diff --git a/recipes-platform/images/agl-ivi-demo-features.inc b/recipes-platform/images/agl-ivi-demo-features.inc
new file mode 100644 (file)
index 0000000..19a7792
--- /dev/null
@@ -0,0 +1,11 @@
+require agl-demo-features.inc
+
+FEATURE_PACKAGES_agl-demo-preload = "packagegroup-agl-demo-preload"
+FEATURE_PACKAGES_agl-demo-cluster-support = "packagegroup-agl-demo-cluster-support"
+
+IMAGE_FEATURES += "${@bb.utils.filter("AGL_FEATURES", "agl-demo-preload agl-demo-cluster-support", d)}"
+
+IMAGE_FEATURES += " \
+    kuksa-val-databroker-client \
+    ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "", "kuksa-val-databroker", d)} \
+"
index 4337ec0..338b3e6 100644 (file)
@@ -3,9 +3,16 @@ DESCRIPTION = "AGL KVM+QEMU Demo Platform image."
 LICENSE = "MIT"
 
 require recipes-platform/images/agl-image-compositor.bb
+require agl-demo-features.inc
 
 IMAGE_FEATURES += "splash package-management ssh-server-openssh"
 
+# If building with "agl-kvm-host-kuksa", the databroker and likely
+# some clients run on the host
+IMAGE_FEATURES += " \
+    ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "kuksa-val-databroker kuksa-val-databroker-client", "", d)} \
+"
+
 # Add packages for KVM+QEMU demo platform here
 IMAGE_INSTALL += " \
     packagegroup-agl-core-connectivity \
index 015cde9..3fba1b8 100644 (file)
@@ -11,7 +11,6 @@ PACKAGES = "\
     "
 
 RDEPENDS:${PN} += "\
-    packagegroup-agl-kuksa-val-databroker \
     packagegroup-agl-demo \
     "
 
index f03229d..28f79cf 100644 (file)
@@ -11,7 +11,6 @@ PACKAGES = "\
     "
 
 RDEPENDS:${PN} += "\
-    packagegroup-agl-kuksa-val-databroker \
     packagegroup-agl-demo \
     "
 
diff --git a/templates/feature/agl-kvm-host-kuksa/50_local.conf.inc b/templates/feature/agl-kvm-host-kuksa/50_local.conf.inc
new file mode 100644 (file)
index 0000000..6259e41
--- /dev/null
@@ -0,0 +1 @@
+AGL_FEATURES += "agl-kvm-host-kuksa"
diff --git a/templates/feature/agl-kvm-host-kuksa/README_feature_agl-kvm-host-kuksa.md b/templates/feature/agl-kvm-host-kuksa/README_feature_agl-kvm-host-kuksa.md
new file mode 100644 (file)
index 0000000..1b607aa
--- /dev/null
@@ -0,0 +1,17 @@
+---
+description: Feature agl-kvm-host-kuksa
+authors: Scott Murray <scott.murray@konsulko.com>
+---
+
+### Feature agl-kvm-host-kuksa
+
+* Enables support for running KUKSA.val databroker on host in KVM+QEMU demo images
+
+### Dependent features pulled by agl-kvm-host-kuksa
+
+The following features are pulled:
+
+* agl-kvm
+
+Note that enabling this feature results in a configuration where building images
+other than agl-kvm-demo-platform will likely not give the desired results.
diff --git a/templates/feature/agl-kvm-host-kuksa/included.dep b/templates/feature/agl-kvm-host-kuksa/included.dep
new file mode 100644 (file)
index 0000000..b2b1014
--- /dev/null
@@ -0,0 +1 @@
+agl-kvm