From a45b13ab6ba8008a461c70078ef885f7c29452a8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lisandro=20P=C3=A9rez=20Meyer?= Date: Tue, 14 Nov 2023 17:53:42 -0300 Subject: [PATCH] Add flutter-ics-homescreen recipe. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Bug-AGL: SPEC-4969 Change-Id: I5792df93372160e85d524dc81c3de8d2f523501e Signed-off-by: Lisandro Pérez Meyer Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29409 Reviewed-by: Scott Murray Tested-by: Jan-Simon Moeller Reviewed-by: Jan-Simon Moeller --- .../files/change_grpc_port.patch | 21 ++++++++++ .../files/flutter-ics-homescreen.json | 9 +++++ .../files/flutter-ics-homescreen.service | 14 +++++++ .../files/ics-homescreen.token | 1 + .../files/ics-homescreen.yaml | 2 + .../flutter-ics-homescreen_git.bb | 46 ++++++++++++++++++++++ 6 files changed, 93 insertions(+) create mode 100644 recipes-demo/flutter-ics-homescreen/files/change_grpc_port.patch create mode 100644 recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.json create mode 100644 recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.service create mode 100644 recipes-demo/flutter-ics-homescreen/files/ics-homescreen.token create mode 100644 recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml create mode 100644 recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb 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 index 000000000..2c0488b96 --- /dev/null +++ b/recipes-demo/flutter-ics-homescreen/files/change_grpc_port.patch @@ -0,0 +1,21 @@ +From 7a7dfd8756c8c742aa3cd829a3644e6ec977aa8b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Lisandro=20P=C3=A9rez=20Meyer?= +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 index 000000000..56ab1d35a --- /dev/null +++ b/recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.json @@ -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 index 000000000..a61b4a1de --- /dev/null +++ b/recipes-demo/flutter-ics-homescreen/files/flutter-ics-homescreen.service @@ -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 index 000000000..110d3c413 --- /dev/null +++ b/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.token @@ -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 index 000000000..f73418a81 --- /dev/null +++ b/recipes-demo/flutter-ics-homescreen/files/ics-homescreen.yaml @@ -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 index 000000000..aa3e923ea --- /dev/null +++ b/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb @@ -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" -- 2.16.6