summaryrefslogtreecommitdiffstats
path: root/recipes-demo
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2024-02-20 15:17:17 -0500
committerScott Murray <scott.murray@konsulko.com>2024-03-19 14:10:19 +0000
commita048283b5d63452f1a752769a690b53ef884e70f (patch)
tree724bea2d0c5cc4ead366c8fa967f4605293f2a2e /recipes-demo
parentcdb8cbef1ff2bbf188918f7d5a37763b57873f66 (diff)
Enable running audio services on host for KVM demo
Changes: - Add agl-kvm-host-audio feature for configuring other changes. - Make installation of packagegroup-agl-ivi-service-platform in the KVM host versus IVI images dependent on the agl-kvm-host-audio feature. Some recipe dependencies are tweaked by the feature being specified to avoid accidentally pulling things into the IVI guest images. - Add KVM demo specific configuration for applications affected by running the databroker on the host versus in the IVI guest, and use it if the agl-kvm-host-kuksa feature is enabled. Bug-AGL: SPEC-5082 Change-Id: I3a6e6216a90e4d260c20f0b048e6332466aef4ff Signed-off-by: Scott Murray <scott.murray@konsulko.com> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29702 ci-image-boot-test: Jenkins Job builder account ci-image-build: Jenkins Job builder account Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Tested-by: Jenkins Job builder account (cherry picked from commit 49a85681e52d1f568a5bb6086d7e14af701ac6dc) Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29762
Diffstat (limited to 'recipes-demo')
-rw-r--r--recipes-demo/agl-service-radio/agl-service-radio_git.bb19
-rw-r--r--recipes-demo/agl-service-radio/files/radio.conf.kvm-demo2
-rw-r--r--recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.demo1
-rw-r--r--recipes-demo/flutter-cluster-dashboard/files/kvm.conf3
-rw-r--r--recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb8
-rw-r--r--recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml.kvm-demo10
-rw-r--r--recipes-demo/flutter-ics-homescreen/files/kvm.conf3
-rw-r--r--recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb33
-rw-r--r--recipes-demo/libqtappfw/libqtappfw_git.bb6
-rw-r--r--recipes-demo/navigation/ondemandnavi/navigation.conf.kvm-demo4
-rw-r--r--recipes-demo/navigation/ondemandnavi_git.bb24
-rw-r--r--recipes-demo/navigation/tbtnavi/kvm.conf3
-rw-r--r--recipes-demo/navigation/tbtnavi/tbtnavi.conf.kvm-demo4
-rw-r--r--recipes-demo/navigation/tbtnavi_git.bb30
14 files changed, 139 insertions, 11 deletions
diff --git a/recipes-demo/agl-service-radio/agl-service-radio_git.bb b/recipes-demo/agl-service-radio/agl-service-radio_git.bb
index 7664e5ab4..89c18ae72 100644
--- a/recipes-demo/agl-service-radio/agl-service-radio_git.bb
+++ b/recipes-demo/agl-service-radio/agl-service-radio_git.bb
@@ -17,7 +17,8 @@ DEPENDS = " \
libusb-compat \
"
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-radio;protocol=https;branch=${AGL_BRANCH}"
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-radio;protocol=https;branch=${AGL_BRANCH} \
+ file://radio.conf.kvm-demo"
SRCREV = "7f26a2d06410fd3a2768612b9c9daf869778e480"
PV = "2.0+git${SRCPV}"
@@ -27,4 +28,20 @@ inherit meson pkgconfig systemd
SYSTEMD_SERVICE:${PN} = "agl-service-radio.service"
+do_install:append() {
+ install -D -m 0644 ${WORKDIR}/radio.conf.kvm-demo ${D}${sysconfdir}/xdg/AGL.conf
+}
+
+PACKAGE_BEFORE_PN += "${PN}-conf-kvm-demo"
+
FILES:${PN} += "${systemd_system_unitdir}"
+
+FILES:${PN}-conf-kvm-demo += " \
+ ${sysconfdir}/xdg/AGL.conf \
+"
+
+RDEPENDS:${PN} += " \
+ gstreamer1.0 \
+ gstreamer1.0-plugins-base \
+ gstreamer1.0-pipewire \
+"
diff --git a/recipes-demo/agl-service-radio/files/radio.conf.kvm-demo b/recipes-demo/agl-service-radio/files/radio.conf.kvm-demo
new file mode 100644
index 000000000..d855eb4b9
--- /dev/null
+++ b/recipes-demo/agl-service-radio/files/radio.conf.kvm-demo
@@ -0,0 +1,2 @@
+[radio]
+bind=0.0.0.0
diff --git a/recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.demo b/recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.demo
index bab0a6bb7..32545c2bf 100644
--- a/recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.demo
+++ b/recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.demo
@@ -1,3 +1,4 @@
hostname: 192.168.10.2
authorization : "/etc/xdg/AGL/cluster-dashboard/cluster-dashboard.token"
use-tls : true
+tls-server-name : "localhost"
diff --git a/recipes-demo/flutter-cluster-dashboard/files/kvm.conf b/recipes-demo/flutter-cluster-dashboard/files/kvm.conf
new file mode 100644
index 000000000..0a38143e9
--- /dev/null
+++ b/recipes-demo/flutter-cluster-dashboard/files/kvm.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=network-online.target
+After=network-online.target
diff --git a/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb b/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb
index 925a2860f..c45e28084 100644
--- a/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb
+++ b/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb
@@ -14,6 +14,7 @@ SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/flutter-instrument-clust
file://cluster-dashboard.yaml \
file://cluster-dashboard.yaml.demo \
file://cluster-dashboard.token \
+ file://kvm.conf \
"
PV = "1.0+git${SRCPV}"
@@ -36,6 +37,8 @@ SYSTEMD_SERVICE:${PN} = "flutter-cluster-dashboard.service"
do_install:append() {
install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+ install -D -m 0644 ${WORKDIR}/kvm.conf ${D}${systemd_system_unitdir}/${BPN}.service.d/kvm.conf
+
install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/${BPN}.json
install -d ${D}${sysconfdir}/xdg/AGL/cluster-dashboard
@@ -60,7 +63,10 @@ RCONFLICTS:${PN}-conf = "${PN}-conf-demo"
ALTERNATIVE:${PN}-conf = "cluster-dashboard.yaml"
ALTERNATIVE_TARGET_${PN}-conf = "${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.default"
-FILES:${PN}-conf-demo += "${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.demo"
+FILES:${PN}-conf-demo += " \
+ ${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.demo \
+ ${systemd_system_unitdir}/flutter-cluster-dashboard.service.d/kvm.conf \
+"
RDEPENDS:${PN}-conf-demo = "${PN}"
RPROVIDES:${PN}-conf-demo = "cluster-dashboard.yaml"
RCONFLICTS:${PN}-conf-demo = "${PN}-conf"
diff --git a/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml.kvm-demo b/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml.kvm-demo
new file mode 100644
index 000000000..22e7e3908
--- /dev/null
+++ b/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml.kvm-demo
@@ -0,0 +1,10 @@
+kuksa:
+ hostname : 172.16.10.1
+ port : 55555
+ authorization : "/etc/xdg/AGL/ics-homescreen/ics-homescreen.token"
+ use-tls : true
+ tls-server-name : localhost
+radio:
+ hostname : 172.16.10.1
+mpd:
+ hostname : 172.16.10.1
diff --git a/recipes-demo/flutter-ics-homescreen/files/kvm.conf b/recipes-demo/flutter-ics-homescreen/files/kvm.conf
new file mode 100644
index 000000000..0a38143e9
--- /dev/null
+++ b/recipes-demo/flutter-ics-homescreen/files/kvm.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=network-online.target
+After=network-online.target
diff --git a/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb b/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb
index dd50df72f..6dacebb57 100644
--- a/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb
+++ b/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb
@@ -10,8 +10,10 @@ SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/flutter-ics-homescreen;p
file://flutter-ics-homescreen.json \
file://flutter-ics-homescreen.service \
file://ics-homescreen.yaml \
+ file://ics-homescreen.yaml.kvm-demo \
file://ics-homescreen.token \
file://radio-presets.yaml \
+ file://kvm.conf \
"
SRCREV = "5587c6ae79b482fbff26442bb239d7d7eb55a337"
@@ -22,7 +24,7 @@ FLUTTER_APPLICATION_INSTALL_PREFIX = "/flutter"
FLUTTER_BUILD_ARGS = "bundle -v"
-inherit flutter-app systemd
+inherit flutter-app systemd update-alternatives
APP_CONFIG = "${BPN}.json"
@@ -36,6 +38,8 @@ APP_AOT_EXTRA:append = " ${DISABLE_BG_ANIMATION}"
do_install:append() {
install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+ install -D -m 0644 ${WORKDIR}/kvm.conf ${D}${systemd_system_unitdir}/${BPN}.service.d/kvm.conf
+
install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/${BPN}.json
# VIS authorization token file for KUKSA.val should ideally not
@@ -43,17 +47,38 @@ do_install:append() {
# until a packaging/sandboxing/MAC scheme is (re)implemented or
# something like OAuth is plumbed in as an alternative.
install -d ${D}${sysconfdir}/xdg/AGL/ics-homescreen
- install -m 0644 ${WORKDIR}/ics-homescreen.yaml ${D}${sysconfdir}/xdg/AGL/
+ install -m 0644 ${WORKDIR}/ics-homescreen.yaml ${D}${sysconfdir}/xdg/AGL/ics-homescreen.yaml.default
+ install -m 0644 ${WORKDIR}/ics-homescreen.yaml.kvm-demo ${D}${sysconfdir}/xdg/AGL/
install -m 0644 ${WORKDIR}/ics-homescreen.token ${D}${sysconfdir}/xdg/AGL/ics-homescreen/
install -m 0644 ${WORKDIR}/radio-presets.yaml ${D}${sysconfdir}/xdg/AGL/ics-homescreen/
}
+ALTERNATIVE_LINK_NAME[ics-homescreen.yaml] = "${sysconfdir}/xdg/AGL/ics-homescreen.yaml"
+
FILES:${PN} += "${datadir} ${sysconfdir}/xdg/AGL"
RDEPENDS:${PN} += " \
flutter-auto \
agl-flutter-env \
applaunchd \
- agl-service-radio \
- mpd \
+ ${@bb.utils.contains('AGL_FEATURES', 'agl-kvm-host-audio', '', 'agl-service-radio mpd', d)} \
+"
+
+PACKAGE_BEFORE_PN += "${PN}-conf ${PN}-conf-kvm-demo"
+
+FILES:${PN}-conf += "${sysconfdir}/xdg/AGL/ics-homescreen.yaml.default"
+RDEPENDS:${PN}-conf = "${PN}"
+RPROVIDES:${PN}-conf = "ics-homescreen.yaml"
+RCONFLICTS:${PN}-conf = "${PN}-conf-kvm-demo"
+ALTERNATIVE:${PN}-conf = "ics-homescreen.yaml"
+ALTERNATIVE_TARGET_${PN}-conf = "${sysconfdir}/xdg/AGL/ics-homescreen.yaml.default"
+
+FILES:${PN}-conf-kvm-demo += " \
+ ${sysconfdir}/xdg/AGL/ics-homescreen.yaml.kvm-demo \
+ ${systemd_system_unitdir}/flutter-ics-homescreen.service.d/kvm.conf \
"
+RDEPENDS:${PN}-conf-kvm-demo = "${PN}"
+RPROVIDES:${PN}-conf-kvm-demo = "ics-homescreen.yaml"
+RCONFLICTS:${PN}-conf-kvm-demo = "${PN}-conf"
+ALTERNATIVE:${PN}-conf-kvm-demo = "ics-homescreen.yaml"
+ALTERNATIVE_TARGET_${PN}-conf-kvm-demo = "${sysconfdir}/xdg/AGL/ics-homescreen.yaml.kvm-demo"
diff --git a/recipes-demo/libqtappfw/libqtappfw_git.bb b/recipes-demo/libqtappfw/libqtappfw_git.bb
index 6c9080848..85d20f41b 100644
--- a/recipes-demo/libqtappfw/libqtappfw_git.bb
+++ b/recipes-demo/libqtappfw/libqtappfw_git.bb
@@ -32,6 +32,10 @@ inherit meson pkgconfig
EXTRA_OEMESON += "-Dprotos=${STAGING_INCDIR}"
-RRECOMMENDS:${PN} += "bluez5 connman mpd"
+RRECOMMENDS:${PN} += " \
+ bluez5 \
+ connman \
+ ${@bb.utils.contains('AGL_FEATURES', 'agl-kvm-host-audio', '', 'mpd', d)} \
+"
BBCLASSEXTEND = "nativesdk"
diff --git a/recipes-demo/navigation/ondemandnavi/navigation.conf.kvm-demo b/recipes-demo/navigation/ondemandnavi/navigation.conf.kvm-demo
new file mode 100644
index 000000000..6da2579dc
--- /dev/null
+++ b/recipes-demo/navigation/ondemandnavi/navigation.conf.kvm-demo
@@ -0,0 +1,4 @@
+[kuksa-client]
+hostname = "172.16.10.1"
+tls-server-name = "localhost"
+authorization = "/etc/xdg/AGL/navigation/navigation.token"
diff --git a/recipes-demo/navigation/ondemandnavi_git.bb b/recipes-demo/navigation/ondemandnavi_git.bb
index 5fa27aa5f..7bfa00078 100644
--- a/recipes-demo/navigation/ondemandnavi_git.bb
+++ b/recipes-demo/navigation/ondemandnavi_git.bb
@@ -12,13 +12,14 @@ PV = "2.0+git${SRCPV}"
SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/ondemandnavi;protocol=https;branch=${AGL_BRANCH} \
file://navigation.conf \
+ file://navigation.conf.kvm-demo \
file://navigation.token \
"
SRCREV = "d6b883ef6bdb63fb501b03d64c9a32bc29b7b2c7"
S = "${WORKDIR}/git"
-inherit qmake5 pkgconfig agl-app
+inherit qmake5 pkgconfig agl-app update-alternatives
AGL_APP_ID = "navigation"
AGL_APP_NAME = "Navigation"
@@ -32,10 +33,29 @@ do_install:append() {
# until a packaging/sandboxing/MAC scheme is (re)implemented or
# something like OAuth is plumbed in as an alternative.
install -d ${D}${sysconfdir}/xdg/AGL/navigation
- install -m 0644 ${WORKDIR}/navigation.conf ${D}${sysconfdir}/xdg/AGL/
+ install -m 0644 ${WORKDIR}/navigation.conf ${D}${sysconfdir}/xdg/AGL/navigation.conf.default
+ install -m 0644 ${WORKDIR}/navigation.conf.kvm-demo ${D}${sysconfdir}/xdg/AGL/
install -m 0644 ${WORKDIR}/navigation.token ${D}${sysconfdir}/xdg/AGL/navigation/
}
+ALTERNATIVE_LINK_NAME[navigation.conf] = "${sysconfdir}/xdg/AGL/navigation.conf"
+
+PACKAGE_BEFORE_PN += "${PN}-conf ${PN}-conf-kvm-demo"
+
+FILES:${PN}-conf += "${sysconfdir}/xdg/AGL/navigation.conf.default"
+RDEPENDS:${PN}-conf = "${PN}"
+RPROVIDES:${PN}-conf = "navigation.conf"
+RCONFLICTS:${PN}-conf = "${PN}-conf-kvm-demo"
+ALTERNATIVE:${PN}-conf = "navigation.conf"
+ALTERNATIVE_TARGET_${PN}-conf = "${sysconfdir}/xdg/AGL/navigation.conf.default"
+
+FILES:${PN}-conf-kvm-demo += "${sysconfdir}/xdg/AGL/navigation.conf.kvm-demo"
+RDEPENDS:${PN}-conf-kvm-demo = "${PN}"
+RPROVIDES:${PN}-conf-kvm-demo = "navigation.conf"
+RCONFLICTS:${PN}-conf-kvm-demo = "${PN}-conf"
+ALTERNATIVE:${PN}-conf-kvm-demo = "navigation.conf"
+ALTERNATIVE_TARGET_${PN}-conf-kvm-demo = "${sysconfdir}/xdg/AGL/navigation.conf.kvm-demo"
+
RDEPENDS:${PN} += " \
qtwayland \
qtbase-qmlplugins \
diff --git a/recipes-demo/navigation/tbtnavi/kvm.conf b/recipes-demo/navigation/tbtnavi/kvm.conf
new file mode 100644
index 000000000..324bac372
--- /dev/null
+++ b/recipes-demo/navigation/tbtnavi/kvm.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=network-online.target flutter-ics-homescreen.service
+After=network-online.target flutter-ics-homescreen.service
diff --git a/recipes-demo/navigation/tbtnavi/tbtnavi.conf.kvm-demo b/recipes-demo/navigation/tbtnavi/tbtnavi.conf.kvm-demo
new file mode 100644
index 000000000..6e891faf6
--- /dev/null
+++ b/recipes-demo/navigation/tbtnavi/tbtnavi.conf.kvm-demo
@@ -0,0 +1,4 @@
+[kuksa-client]
+hostname = "172.16.10.1"
+tls-server-name = "localhost"
+authorization = "/etc/xdg/AGL/tbtnavi/tbtnavi.token"
diff --git a/recipes-demo/navigation/tbtnavi_git.bb b/recipes-demo/navigation/tbtnavi_git.bb
index b6213813c..b3703c53d 100644
--- a/recipes-demo/navigation/tbtnavi_git.bb
+++ b/recipes-demo/navigation/tbtnavi_git.bb
@@ -27,19 +27,23 @@ PV = "2.0+git${SRCPV}"
SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/tbtnavi;protocol=https;branch=${AGL_BRANCH} \
file://tbtnavi.service \
file://tbtnavi.conf \
+ file://tbtnavi.conf.kvm-demo \
file://tbtnavi.token \
+ file://kvm.conf \
"
SRCREV = "f00c1e19f5c4cbcd185c8043f3062612bf1537f7"
S = "${WORKDIR}/git"
-inherit meson systemd pkgconfig
+inherit meson systemd pkgconfig update-alternatives
SYSTEMD_SERVICE:${PN} = "${BPN}.service"
do_install:append() {
install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+ install -D -m 0644 ${WORKDIR}/kvm.conf ${D}${systemd_system_unitdir}/${BPN}.service.d/kvm.conf
+
# Currently using default global client and CA certificates
# for KUKSA.val SSL, installing app specific ones would go here.
@@ -48,10 +52,13 @@ do_install:append() {
# until a packaging/sandboxing/MAC scheme is (re)implemented or
# something like OAuth is plumbed in as an alternative.
install -d ${D}${sysconfdir}/xdg/AGL/tbtnavi
- install -m 0644 ${WORKDIR}/tbtnavi.conf ${D}${sysconfdir}/xdg/AGL/
+ install -m 0644 ${WORKDIR}/tbtnavi.conf ${D}${sysconfdir}/xdg/AGL/tbtnavi.conf.default
+ install -m 0644 ${WORKDIR}/tbtnavi.conf.kvm-demo ${D}${sysconfdir}/xdg/AGL/
install -m 0644 ${WORKDIR}/tbtnavi.token ${D}${sysconfdir}/xdg/AGL/tbtnavi/
}
+ALTERNATIVE_LINK_NAME[tbtnavi.conf] = "${sysconfdir}/xdg/AGL/tbtnavi.conf"
+
RDEPENDS:${PN} += " \
qtwayland \
qtbase-qmlplugins \
@@ -60,3 +67,22 @@ RDEPENDS:${PN} += " \
ondemandnavi-config \
libqtappfw \
"
+
+PACKAGE_BEFORE_PN += "${PN}-conf ${PN}-conf-kvm-demo"
+
+FILES:${PN}-conf += "${sysconfdir}/xdg/AGL/tbtnavi.conf.default"
+RDEPENDS:${PN}-conf = "${PN}"
+RPROVIDES:${PN}-conf = "tbtnavi.conf"
+RCONFLICTS:${PN}-conf = "${PN}-conf-kvm-demo"
+ALTERNATIVE:${PN}-conf = "tbtnavi.conf"
+ALTERNATIVE_TARGET_${PN}-conf = "${sysconfdir}/xdg/AGL/tbtnavi.conf.default"
+
+FILES:${PN}-conf-kvm-demo += " \
+ ${sysconfdir}/xdg/AGL/tbtnavi.conf.kvm-demo \
+ ${systemd_system_unitdir}/tbtnavi.service.d/kvm.conf \
+"
+RDEPENDS:${PN}-conf-kvm-demo = "${PN}"
+RPROVIDES:${PN}-conf-kvm-demo = "tbtnavi.conf"
+RCONFLICTS:${PN}-conf-kvm-demo = "${PN}-conf"
+ALTERNATIVE:${PN}-conf-kvm-demo = "tbtnavi.conf"
+ALTERNATIVE_TARGET_${PN}-conf-kvm-demo = "${sysconfdir}/xdg/AGL/tbtnavi.conf.kvm-demo"