Add flutter-ics-homescreen recipe. 09/29409/4
authorLisandro Pérez Meyer <lpmeyer@ics.com>
Tue, 14 Nov 2023 20:53:42 +0000 (17:53 -0300)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tue, 14 Nov 2023 21:11:23 +0000 (21:11 +0000)
Bug-AGL: SPEC-4969

Change-Id: I5792df93372160e85d524dc81c3de8d2f523501e
Signed-off-by: Lisandro Pérez Meyer <lpmeyer@ics.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29409
Reviewed-by: Scott Murray <scott.murray@konsulko.com>
Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
recipes-demo/flutter-ics-homescreen/files/change_grpc_port.patch [new file with mode: 0644]
recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.json [new file with mode: 0644]
recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.service [new file with mode: 0644]
recipes-demo/flutter-ics-homescreen/files/ics-homescreen.token [new file with mode: 0644]
recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml [new file with mode: 0644]
recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb [new file with mode: 0644]

diff --git a/recipes-demo/flutter-ics-homescreen/files/change_grpc_port.patch b/recipes-demo/flutter-ics-homescreen/files/change_grpc_port.patch
new file mode 100644 (file)
index 0000000..2c0488b
--- /dev/null
@@ -0,0 +1,21 @@
+From 7a7dfd8756c8c742aa3cd829a3644e6ec977aa8b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Lisandro=20P=C3=A9rez=20Meyer?= <lperezmeyer@ics.com>
+Date: Tue, 14 Nov 2023 14:59:45 +0000
+Subject: [PATCH] Set the default port to 55555.
+
+The Docker images seems to be using 55556.
+---
+ config/config.yaml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config/config.yaml b/config/config.yaml
+index 138fe4b..a552299 100644
+--- a/config/config.yaml
++++ b/config/config.yaml
+@@ -1,2 +1,2 @@
+ hostname: localhost
+-port: 55556
++port: 55555
+--
+2.25.1
+
diff --git a/recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.json b/recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.json
new file mode 100644 (file)
index 0000000..56ab1d3
--- /dev/null
@@ -0,0 +1,9 @@
+{
+        "view" : [ {
+                "window_type" : "BG",
+                "width" : 1080,
+                "height": 1920,
+                "fullscreen": true
+                }
+        ]
+}
diff --git a/recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.service b/recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.service
new file mode 100644 (file)
index 0000000..a61b4a1
--- /dev/null
@@ -0,0 +1,14 @@
+[Unit]
+Requires=agl-compositor.service applaunchd.service
+After=agl-compositor.service applaunchd.service
+
+[Service]
+User=agl-driver
+EnvironmentFile=/etc/default/flutter
+EnvironmentFile=-/etc/default/flutter-ics-homescreen
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
+ExecStart=/usr/bin/flutter-auto --b=/usr/share/flutter/flutter_ics_homescreen/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} --j=/usr/share/flutter/flutter-ics-homescreen.json --xdg-shell-app-id=homescreen
+Restart=on-failure
+
+[Install]
+WantedBy=graphical.target
diff --git a/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.token b/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.token
new file mode 100644 (file)
index 0000000..110d3c4
--- /dev/null
@@ -0,0 +1 @@
+eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJsb2NhbCBkZXYiLCJpc3MiOiJjcmVhdGVUb2tlbi5weSIsImF1ZCI6WyJrdWtzYS52YWwiXSwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE3NjcyMjU1OTksInNjb3BlIjoiYWN0dWF0ZSBwcm92aWRlIn0.x-bUZwDCC663wGYrWCYjQZwQWhN1CMuKgxuIN5dUF_izwMutiqF6Xc-tnXgZa93BbT3I74WOMk4awKHBUSTWekGs3-qF6gajorbat6n5180TOqvNu4CXuIPZN5zpngf4id3smMkKOT699tPnSEbmlkj4vk-mIjeOAU-FcYA-VbkKBTsjvfFgKa2OdB5h9uZARBg5Rx7uBN3JsH1I6j9zoLid184Ewa6bhU2qniFt5iPsGJniNsKsRrrndN1KzthO13My44s56yvwSHIOrgDGbXdja_eLuOVOq9pHCjCtorPScgEuUUE4aldIuML-_j397taNP9Y3VZYVvofEK7AuiePTbzwxrZ1RAjK74h1-4ued3A2gUTjr5BsRlc9b7eLZzxLJkrqdfGAzBh_rtrB7p32TbvpjeFP30NW6bB9JS43XACUUm_S_RcyI7BLuUdnFyQDQr6l6sRz9XayYXceilHdCxbAVN0HVnBeui5Bb0mUZYIRZeY8k6zcssmokANTD8ZviDMpKlOU3t5AlXJ0nLkgyMhV9IUTwPUv6F8BTPc-CquJCUNbTyo4ywTSoODWbm3PmQ3Y46gWF06xqnB4wehLscBdVk3iAihQp3tckGhMnx5PI_Oy7utIncr4pRCMos63TnBkfrl7d43cHQTuK0kO76EWtv4ODEHgLvEAv4HA
\ No newline at end of file
diff --git a/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml b/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml
new file mode 100644 (file)
index 0000000..f73418a
--- /dev/null
@@ -0,0 +1,2 @@
+authorization : "/etc/xdg/AGL/homescreen/ics-homescreen.token"
+use-tls : true
diff --git a/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb b/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb
new file mode 100644 (file)
index 0000000..aa3e923
--- /dev/null
@@ -0,0 +1,46 @@
+SUMMARY = "AGL ICS Flutter Homescreen"
+DESCRIPTION = "Demo Flutter homescreen for Automotive Grade Linux by ICS."
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/apps/flutter-ics-homescreen"
+SECTION = "graphics"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/flutter-ics-homescreen;protocol=https;branch=${AGL_BRANCH} \
+  file://change_grpc_port.patch \
+  file://flutter-ics-homescreen.json \
+  file://flutter-ics-homescreen.service \
+  file://ics-homescreen.yaml \
+  file://ics-homescreen.token \
+"
+SRCREV = "70ec8a79a121471a004e7e4c23157d10157e136f"
+
+S = "${WORKDIR}/git"
+
+PUBSPEC_APPNAME = "flutter_ics_homescreen"
+FLUTTER_APPLICATION_INSTALL_PREFIX = "/flutter"
+
+FLUTTER_BUILD_ARGS = "bundle -v"
+
+inherit flutter-app systemd
+
+APP_CONFIG = "${BPN}.json"
+
+SYSTEMD_SERVICE:${PN} = "flutter-ics-homescreen.service"
+
+do_install:append() {
+  install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+
+  install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/${BPN}.json
+
+  # 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/homescreen
+  install -m 0644 ${WORKDIR}/ics-homescreen.yaml ${D}${sysconfdir}/xdg/AGL/
+  install -m 0644 ${WORKDIR}/ics-homescreen.token ${D}${sysconfdir}/xdg/AGL/homescreen/
+}
+
+FILES:${PN} += "${datadir} ${sysconfdir}/xdg/AGL"
+RDEPENDS:${PN} += "flutter-auto agl-flutter-env"