Update vehicle signal using app recipes 13/27613/1
authorScott Murray <scott.murray@konsulko.com>
Tue, 7 Jun 2022 20:12:25 +0000 (16:12 -0400)
committerScott Murray <scott.murray@konsulko.com>
Tue, 7 Jun 2022 20:22:44 +0000 (16:22 -0400)
Update the recipes for the Qt demo applications that were previously
using signal-composer either directly or indirectly to work with the
new VehicleSignals API in libqtappfw.  For most of them this means
installing the new configuration file and associated JSON web token
file for KUKSA.val authorization.  At present all the apps are using
one of the default read-write tokens from the KUKSA.val install, but
ideally this will end up migrated to app specific tokens with
appropriate permissions JSON down the road, potentially obtained
via OAuth or similar mechanism.

Additionally, the tbtnavi recipe has been updated to install a
systemd unit to start it at boot.

Bug-AGL: SPEC-4409, SPEC-4426

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

16 files changed:
recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.conf [new file with mode: 0644]
recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.token [new file with mode: 0644]
recipes-demo/cluster-dashboard/cluster-dashboard_git.bb
recipes-demo/dashboard/dashboard/dashboard.conf [new file with mode: 0644]
recipes-demo/dashboard/dashboard/dashboard.token [new file with mode: 0644]
recipes-demo/dashboard/dashboard_git.bb
recipes-demo/mediaplayer/mediaplayer/mediaplayer.conf [new file with mode: 0644]
recipes-demo/mediaplayer/mediaplayer/mediaplayer.token [new file with mode: 0644]
recipes-demo/mediaplayer/mediaplayer_git.bb
recipes-demo/navigation/ondemandnavi/navigation.conf [new file with mode: 0644]
recipes-demo/navigation/ondemandnavi/navigation.token [new file with mode: 0644]
recipes-demo/navigation/ondemandnavi_git.bb
recipes-demo/navigation/tbtnavi/tbtnavi.conf [new file with mode: 0644]
recipes-demo/navigation/tbtnavi/tbtnavi.service [new file with mode: 0644]
recipes-demo/navigation/tbtnavi/tbtnavi.token [new file with mode: 0644]
recipes-demo/navigation/tbtnavi_git.bb

diff --git a/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.conf b/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.conf
new file mode 100644 (file)
index 0000000..b24c64e
--- /dev/null
@@ -0,0 +1,3 @@
+[vis-client]
+server = "192.168.20.93"
+authorization = "/etc/xdg/AGL/cluster-dashboard/cluster-dashboard.token"
diff --git a/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.token b/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.token
new file mode 100644 (file)
index 0000000..770aadc
--- /dev/null
@@ -0,0 +1 @@
+eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJrdWtzYS52YWwiLCJpc3MiOiJFY2xpcHNlIEtVS1NBIERldiIsImFkbWluIjp0cnVlLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTc2NzIyNTU5OSwia3Vrc2EtdnNzIjp7IioiOiJydyJ9fQ.QQcVR0RuRJIoasPXYsMGZhdvhLjUalk4GcRaxhh3-0_j3CtVSZ0lTbv_Z3As5BfIYzaMlwUzFGvCVOq2MXVjRK81XOAZ6wIsyKOxva16zjbZryr2V_m3yZ4twI3CPEzJch11_qnhInirHltej-tGg6ySfLaTYeAkw4xYGwENMBBhN5t9odANpScZP_xx5bNfwdW1so6FkV1WhpKlCywoxk_vYZxo187d89bbiu-xOZUa5D-ycFkd1-1rjPXLGE_g5bc4jcQBvNBc-5FDbvt4aJlTQqjpdeppxhxn_gjkPGIAacYDI7szOLC-WYajTStbksUju1iQCyli11kPx0E66me_ZVwOX07f1lRF6D2brWm1LcMAHM3bQUK0LuyVwWPxld64uSAEsvSKsRyJERc7nZUgLf7COnUrrkxgIUNjukbdT2JVN_I-3l3b4YXg6JVD7Y5g0QYBKgXEFpZrDbBVhzo7PXPAhJD6-c3DcUQyRZExbrnFV56RwWuExphw8lYnbMvxPWImiVmB9nRVgFKD0TYaw1sidPSSlZt8Uw34VZzHWIZQAQY0BMjR33fefg42XQ1YzIwPmDx4GYXLl7HNIIVbsRsibKaJnf49mz2qnLC1K272zXSPljO11Ke1MNnsnKyUH7mcwEs9nhTsnMgEOx_TyMLRYo-VEHBDLuEOiBo
\ No newline at end of file
index 2f5bbec..e50fb10 100644 (file)
@@ -19,6 +19,8 @@ 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 \
+           file://cluster-dashboard.conf \
+           file://cluster-dashboard.token \
 "
 SRCREV  = "${AGL_APP_REVISION}"
 
@@ -30,6 +32,14 @@ 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
+
+    # VIS authorization token file for KUKSA.val should ideally not
+    # be readable by other users, but currently that's not doable
+    # 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/cluster-dashboard
+    install -m 0644 ${WORKDIR}/cluster-dashboard.conf ${D}${sysconfdir}/xdg/AGL/
+    install -m 0644 ${WORKDIR}/cluster-dashboard.token ${D}${sysconfdir}/xdg/AGL/cluster-dashboard/
 }
 
 FILES:${PN} += " ${systemd_user_unitdir}"
@@ -43,4 +53,5 @@ RDEPENDS:${PN} += " \
     qtquickcontrols2-qmlplugins \
     qtgraphicaleffects-qmlplugins \
     qtsvg-plugins \
+    kuksa-val-client-certificates \
 "
diff --git a/recipes-demo/dashboard/dashboard/dashboard.conf b/recipes-demo/dashboard/dashboard/dashboard.conf
new file mode 100644 (file)
index 0000000..23695db
--- /dev/null
@@ -0,0 +1,2 @@
+[vis-client]
+authorization = "/etc/xdg/AGL/dashboard/dashboard.token"
diff --git a/recipes-demo/dashboard/dashboard/dashboard.token b/recipes-demo/dashboard/dashboard/dashboard.token
new file mode 100644 (file)
index 0000000..770aadc
--- /dev/null
@@ -0,0 +1 @@
+eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJrdWtzYS52YWwiLCJpc3MiOiJFY2xpcHNlIEtVS1NBIERldiIsImFkbWluIjp0cnVlLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTc2NzIyNTU5OSwia3Vrc2EtdnNzIjp7IioiOiJydyJ9fQ.QQcVR0RuRJIoasPXYsMGZhdvhLjUalk4GcRaxhh3-0_j3CtVSZ0lTbv_Z3As5BfIYzaMlwUzFGvCVOq2MXVjRK81XOAZ6wIsyKOxva16zjbZryr2V_m3yZ4twI3CPEzJch11_qnhInirHltej-tGg6ySfLaTYeAkw4xYGwENMBBhN5t9odANpScZP_xx5bNfwdW1so6FkV1WhpKlCywoxk_vYZxo187d89bbiu-xOZUa5D-ycFkd1-1rjPXLGE_g5bc4jcQBvNBc-5FDbvt4aJlTQqjpdeppxhxn_gjkPGIAacYDI7szOLC-WYajTStbksUju1iQCyli11kPx0E66me_ZVwOX07f1lRF6D2brWm1LcMAHM3bQUK0LuyVwWPxld64uSAEsvSKsRyJERc7nZUgLf7COnUrrkxgIUNjukbdT2JVN_I-3l3b4YXg6JVD7Y5g0QYBKgXEFpZrDbBVhzo7PXPAhJD6-c3DcUQyRZExbrnFV56RwWuExphw8lYnbMvxPWImiVmB9nRVgFKD0TYaw1sidPSSlZt8Uw34VZzHWIZQAQY0BMjR33fefg42XQ1YzIwPmDx4GYXLl7HNIIVbsRsibKaJnf49mz2qnLC1K272zXSPljO11Ke1MNnsnKyUH7mcwEs9nhTsnMgEOx_TyMLRYo-VEHBDLuEOiBo
\ No newline at end of file
index 60ff637..5a56ff7 100644 (file)
@@ -9,17 +9,34 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
 DEPENDS = " \
     qttools-native \
     qtquickcontrols2 \
+    libqtappfw \
 "
 
 PV = "2.0+git${SRCPV}"
 
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/dashboard;protocol=https;branch=${AGL_BRANCH}"
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/dashboard;protocol=https;branch=${AGL_BRANCH} \
+           file://dashboard.conf \
+           file://dashboard.token \
+"
 SRCREV  = "${AGL_APP_REVISION}"
 
 S = "${WORKDIR}/git"
 
 inherit qmake5 pkgconfig
 
+do_install:append() {
+    # Currently using default global client and CA certificates
+    # for KUKSA.val SSL, installing app specific ones would go here.
+
+    # VIS authorization token file for KUKSA.val should ideally not
+    # be readable by other users, but currently that's not doable
+    # 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/dashboard
+    install -m 0644 ${WORKDIR}/dashboard.conf ${D}${sysconfdir}/xdg/AGL/
+    install -m 0644 ${WORKDIR}/dashboard.token ${D}${sysconfdir}/xdg/AGL/dashboard/
+}
+
 FILES:${PN} += "${datadir}/icons/"
 
 RDEPENDS:${PN} += " \
diff --git a/recipes-demo/mediaplayer/mediaplayer/mediaplayer.conf b/recipes-demo/mediaplayer/mediaplayer/mediaplayer.conf
new file mode 100644 (file)
index 0000000..bc9e0d8
--- /dev/null
@@ -0,0 +1,2 @@
+[vis-client]
+authorization = "/etc/xdg/AGL/mediaplayer/mediaplayer.token"
diff --git a/recipes-demo/mediaplayer/mediaplayer/mediaplayer.token b/recipes-demo/mediaplayer/mediaplayer/mediaplayer.token
new file mode 100644 (file)
index 0000000..770aadc
--- /dev/null
@@ -0,0 +1 @@
+eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJrdWtzYS52YWwiLCJpc3MiOiJFY2xpcHNlIEtVS1NBIERldiIsImFkbWluIjp0cnVlLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTc2NzIyNTU5OSwia3Vrc2EtdnNzIjp7IioiOiJydyJ9fQ.QQcVR0RuRJIoasPXYsMGZhdvhLjUalk4GcRaxhh3-0_j3CtVSZ0lTbv_Z3As5BfIYzaMlwUzFGvCVOq2MXVjRK81XOAZ6wIsyKOxva16zjbZryr2V_m3yZ4twI3CPEzJch11_qnhInirHltej-tGg6ySfLaTYeAkw4xYGwENMBBhN5t9odANpScZP_xx5bNfwdW1so6FkV1WhpKlCywoxk_vYZxo187d89bbiu-xOZUa5D-ycFkd1-1rjPXLGE_g5bc4jcQBvNBc-5FDbvt4aJlTQqjpdeppxhxn_gjkPGIAacYDI7szOLC-WYajTStbksUju1iQCyli11kPx0E66me_ZVwOX07f1lRF6D2brWm1LcMAHM3bQUK0LuyVwWPxld64uSAEsvSKsRyJERc7nZUgLf7COnUrrkxgIUNjukbdT2JVN_I-3l3b4YXg6JVD7Y5g0QYBKgXEFpZrDbBVhzo7PXPAhJD6-c3DcUQyRZExbrnFV56RwWuExphw8lYnbMvxPWImiVmB9nRVgFKD0TYaw1sidPSSlZt8Uw34VZzHWIZQAQY0BMjR33fefg42XQ1YzIwPmDx4GYXLl7HNIIVbsRsibKaJnf49mz2qnLC1K272zXSPljO11Ke1MNnsnKyUH7mcwEs9nhTsnMgEOx_TyMLRYo-VEHBDLuEOiBo
\ No newline at end of file
index 7962f76..b4fa58c 100644 (file)
@@ -10,13 +10,29 @@ DEPENDS = "qtquickcontrols2 libqtappfw"
 
 PV = "2.0+git${SRCPV}"
 
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/mediaplayer;protocol=https;branch=${AGL_BRANCH}"
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/mediaplayer;protocol=https;branch=${AGL_BRANCH} \
+           file://mediaplayer.conf \
+           file://mediaplayer.token \
+"
 SRCREV  = "${AGL_APP_REVISION}"
 
 S  = "${WORKDIR}/git"
 
 inherit qmake5
 
+do_install:append() {
+    # Currently using default global client and CA certificates
+    # for KUKSA.val SSL, installing app specific ones would go here.
+
+    # VIS authorization token file for KUKSA.val should ideally not
+    # be readable by other users, but currently that's not doable
+    # 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/mediaplayer
+    install -m 0644 ${WORKDIR}/mediaplayer.conf ${D}${sysconfdir}/xdg/AGL/
+    install -m 0644 ${WORKDIR}/mediaplayer.token ${D}${sysconfdir}/xdg/AGL/mediaplayer/
+}
+
 FILES:${PN} += "${datadir}/icons/"
 
 RDEPENDS:${PN} += "libqtappfw mpd"
diff --git a/recipes-demo/navigation/ondemandnavi/navigation.conf b/recipes-demo/navigation/ondemandnavi/navigation.conf
new file mode 100644 (file)
index 0000000..fca29cd
--- /dev/null
@@ -0,0 +1,2 @@
+[vis-client]
+authorization = "/etc/xdg/AGL/navigation/navigation.token"
diff --git a/recipes-demo/navigation/ondemandnavi/navigation.token b/recipes-demo/navigation/ondemandnavi/navigation.token
new file mode 100644 (file)
index 0000000..770aadc
--- /dev/null
@@ -0,0 +1 @@
+eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJrdWtzYS52YWwiLCJpc3MiOiJFY2xpcHNlIEtVS1NBIERldiIsImFkbWluIjp0cnVlLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTc2NzIyNTU5OSwia3Vrc2EtdnNzIjp7IioiOiJydyJ9fQ.QQcVR0RuRJIoasPXYsMGZhdvhLjUalk4GcRaxhh3-0_j3CtVSZ0lTbv_Z3As5BfIYzaMlwUzFGvCVOq2MXVjRK81XOAZ6wIsyKOxva16zjbZryr2V_m3yZ4twI3CPEzJch11_qnhInirHltej-tGg6ySfLaTYeAkw4xYGwENMBBhN5t9odANpScZP_xx5bNfwdW1so6FkV1WhpKlCywoxk_vYZxo187d89bbiu-xOZUa5D-ycFkd1-1rjPXLGE_g5bc4jcQBvNBc-5FDbvt4aJlTQqjpdeppxhxn_gjkPGIAacYDI7szOLC-WYajTStbksUju1iQCyli11kPx0E66me_ZVwOX07f1lRF6D2brWm1LcMAHM3bQUK0LuyVwWPxld64uSAEsvSKsRyJERc7nZUgLf7COnUrrkxgIUNjukbdT2JVN_I-3l3b4YXg6JVD7Y5g0QYBKgXEFpZrDbBVhzo7PXPAhJD6-c3DcUQyRZExbrnFV56RwWuExphw8lYnbMvxPWImiVmB9nRVgFKD0TYaw1sidPSSlZt8Uw34VZzHWIZQAQY0BMjR33fefg42XQ1YzIwPmDx4GYXLl7HNIIVbsRsibKaJnf49mz2qnLC1K272zXSPljO11Ke1MNnsnKyUH7mcwEs9nhTsnMgEOx_TyMLRYo-VEHBDLuEOiBo
\ No newline at end of file
index 3b9fce4..2cc972a 100644 (file)
@@ -10,13 +10,29 @@ DEPENDS = "qtquickcontrols2 qtlocation libqtappfw"
 
 PV = "2.0+git${SRCPV}"
 
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/ondemandnavi;protocol=https;branch=${AGL_BRANCH}"
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/ondemandnavi;protocol=https;branch=${AGL_BRANCH} \
+           file://navigation.conf \
+           file://navigation.token \
+"
 SRCREV = "${AGL_APP_REVISION}"
 
 S = "${WORKDIR}/git"
 
 inherit qmake5 pkgconfig
 
+do_install:append() {
+    # Currently using default global client and CA certificates
+    # for KUKSA.val SSL, installing app specific ones would go here.
+
+    # VIS authorization token file for KUKSA.val should ideally not
+    # be readable by other users, but currently that's not doable
+    # 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.token ${D}${sysconfdir}/xdg/AGL/navigation/
+}
+
 FILES:${PN} += "${datadir}/icons/"
 
 RDEPENDS:${PN} += " \
diff --git a/recipes-demo/navigation/tbtnavi/tbtnavi.conf b/recipes-demo/navigation/tbtnavi/tbtnavi.conf
new file mode 100644 (file)
index 0000000..c962f30
--- /dev/null
@@ -0,0 +1,2 @@
+[vis-client]
+authorization = "/etc/xdg/AGL/tbtnavi/tbtnavi.token"
diff --git a/recipes-demo/navigation/tbtnavi/tbtnavi.service b/recipes-demo/navigation/tbtnavi/tbtnavi.service
new file mode 100644 (file)
index 0000000..cc04000
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Requires=agl-compositor.service
+After=agl-compositor.service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/tbtnavi
+Restart=on-failure
+
+[Install]
+WantedBy=agl-session.target
diff --git a/recipes-demo/navigation/tbtnavi/tbtnavi.token b/recipes-demo/navigation/tbtnavi/tbtnavi.token
new file mode 100644 (file)
index 0000000..770aadc
--- /dev/null
@@ -0,0 +1 @@
+eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJrdWtzYS52YWwiLCJpc3MiOiJFY2xpcHNlIEtVS1NBIERldiIsImFkbWluIjp0cnVlLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTc2NzIyNTU5OSwia3Vrc2EtdnNzIjp7IioiOiJydyJ9fQ.QQcVR0RuRJIoasPXYsMGZhdvhLjUalk4GcRaxhh3-0_j3CtVSZ0lTbv_Z3As5BfIYzaMlwUzFGvCVOq2MXVjRK81XOAZ6wIsyKOxva16zjbZryr2V_m3yZ4twI3CPEzJch11_qnhInirHltej-tGg6ySfLaTYeAkw4xYGwENMBBhN5t9odANpScZP_xx5bNfwdW1so6FkV1WhpKlCywoxk_vYZxo187d89bbiu-xOZUa5D-ycFkd1-1rjPXLGE_g5bc4jcQBvNBc-5FDbvt4aJlTQqjpdeppxhxn_gjkPGIAacYDI7szOLC-WYajTStbksUju1iQCyli11kPx0E66me_ZVwOX07f1lRF6D2brWm1LcMAHM3bQUK0LuyVwWPxld64uSAEsvSKsRyJERc7nZUgLf7COnUrrkxgIUNjukbdT2JVN_I-3l3b4YXg6JVD7Y5g0QYBKgXEFpZrDbBVhzo7PXPAhJD6-c3DcUQyRZExbrnFV56RwWuExphw8lYnbMvxPWImiVmB9nRVgFKD0TYaw1sidPSSlZt8Uw34VZzHWIZQAQY0BMjR33fefg42XQ1YzIwPmDx4GYXLl7HNIIVbsRsibKaJnf49mz2qnLC1K272zXSPljO11Ke1MNnsnKyUH7mcwEs9nhTsnMgEOx_TyMLRYo-VEHBDLuEOiBo
\ No newline at end of file
index 5981cc5..66cafe6 100644 (file)
@@ -22,12 +22,35 @@ DEPENDS = " \
 
 PV = "2.0+git${SRCPV}"
 
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/tbtnavi;protocol=https;branch=${AGL_BRANCH}"
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/tbtnavi;protocol=https;branch=${AGL_BRANCH} \
+           file://tbtnavi.service \
+           file://tbtnavi.conf \
+           file://tbtnavi.token \
+"
 SRCREV = "${AGL_APP_REVISION}"
 
 S = "${WORKDIR}/git"
 
-inherit qmake5 pkgconfig
+inherit qmake5 systemd pkgconfig
+
+do_install:append() {
+    install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
+    install -m0644 ${WORKDIR}/tbtnavi.service ${D}${systemd_user_unitdir}/tbtnavi.service
+    ln -s ../tbtnavi.service ${D}${systemd_user_unitdir}/agl-session.target.wants/tbtnavi.service
+
+    # Currently using default global client and CA certificates
+    # for KUKSA.val SSL, installing app specific ones would go here.
+
+    # VIS authorization token file for KUKSA.val should ideally not
+    # be readable by other users, but currently that's not doable
+    # 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.token ${D}${sysconfdir}/xdg/AGL/tbtnavi/
+}
+
+FILES:${PN} += " ${systemd_user_unitdir}"
 
 RDEPENDS:${PN} += " \
     qtlocation \