From cce52591f8e00ae41ae380a597d620b0856d004d Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Fri, 2 Jun 2023 10:52:32 -0400 Subject: [PATCH] Do not hard-code Flutter version and runtime type Rework the flutter-homescreen and flutter-cluster-dashboard systemd units to get the Flutter version and runtime type from the environment file installed by the new agl-flutter-env recipe, and update their JSON configuration files to remove the hardcoding of their bundle paths. Bug-AGL: SPEC-4819 Change-Id: I841db2cbb3acfe4aad173e9b8aa25ff2e201c2e2 Signed-off-by: Scott Murray --- .../files/flutter-cluster-dashboard.service | 4 ++- .../files/flutter_cluster_dashboard_on_bg.json | 1 - .../flutter-cluster-dashboard_git.bb | 32 +++++++++++----------- .../files/flutter-homescreen.json | 1 - .../files/flutter-homescreen.service | 4 ++- .../flutter-homescreen/flutter-homescreen_git.bb | 9 +++--- 6 files changed, 27 insertions(+), 24 deletions(-) diff --git a/recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service b/recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service index 71ab791dd..b79092e28 100644 --- a/recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service +++ b/recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service @@ -3,7 +3,9 @@ Requires=agl-compositor.service After=agl-compositor.service [Service] -ExecStart=/usr/bin/flutter-auto --j=/usr/share/flutter/default.json +EnvironmentFile=/etc/default/flutter +EnvironmentFile=-/etc/default/flutter-cluster-dashboard +ExecStart=/usr/bin/flutter-auto --b=/usr/share/flutter/flutter_cluster_dashboard/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} --j=/usr/share/flutter/flutter-cluster-dashboard.json Restart=on-failure [Install] diff --git a/recipes-demo/flutter-cluster-dashboard/files/flutter_cluster_dashboard_on_bg.json b/recipes-demo/flutter-cluster-dashboard/files/flutter_cluster_dashboard_on_bg.json index 4bd7429a3..c90e5e3ae 100644 --- a/recipes-demo/flutter-cluster-dashboard/files/flutter_cluster_dashboard_on_bg.json +++ b/recipes-demo/flutter-cluster-dashboard/files/flutter_cluster_dashboard_on_bg.json @@ -2,7 +2,6 @@ "view": [ { "window_type": "BG", - "bundle_path": "/usr/share/flutter/flutter_cluster_dashboard/3.3.7/release", "width": 1920, "height": 1080, "fullscreen": true 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 2effcfedc..b3076494d 100644 --- a/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb +++ b/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb @@ -33,38 +33,38 @@ CLUSTER_DEMO_VISS_HOSTNAME ??= "192.168.10.2" APP_CONFIG = "flutter_cluster_dashboard_on_bg.json" do_install:append() { - install -D -m 0644 ${WORKDIR}/flutter-cluster-dashboard.service ${D}${systemd_user_unitdir}/flutter-cluster-dashboard.service + install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service install -d ${D}${systemd_user_unitdir}/agl-session.target.wants - ln -s ../flutter-cluster-dashboard.service ${D}${systemd_user_unitdir}/agl-session.target.wants/flutter-cluster-dashboard.service + ln -s ../${BPN}.service ${D}${systemd_user_unitdir}/agl-session.target.wants/${BPN}.service - install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/default.json + install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/${BPN}.json install -d ${D}${sysconfdir}/xdg/AGL - install -m 0644 ${WORKDIR}/flutter-cluster-dashboard.yaml \ - ${D}${sysconfdir}/xdg/AGL/flutter-cluster-dashboard.yaml.default - install -m 0644 ${WORKDIR}/flutter-cluster-dashboard.yaml.demo ${D}${sysconfdir}/xdg/AGL/ - sed -i "s/^hostname: .*/hostname: ${CLUSTER_DEMO_VISS_HOSTNAME}/" ${D}${sysconfdir}/xdg/AGL/flutter-cluster-dashboard.yaml.demo + install -m 0644 ${WORKDIR}/${BPN}.yaml ${D}${sysconfdir}/xdg/AGL/${BPN}.yaml.default + install -m 0644 ${WORKDIR}/${BPN}.yaml.demo ${D}${sysconfdir}/xdg/AGL/ + sed -i "s/^hostname: .*/hostname: ${CLUSTER_DEMO_VISS_HOSTNAME}/" ${D}${sysconfdir}/xdg/AGL/${BPN}.yaml.demo install -m 0755 -d ${D}${sysconfdir}/default/ echo 'OPENROUTE_API_KEY:${OPENROUTE_API_KEY}' >> ${D}${sysconfdir}/default/openroutekey } -ALTERNATIVE_LINK_NAME[flutter-cluster-dashboard.yaml] = "${sysconfdir}/xdg/AGL/flutter-cluster-dashboard.yaml" +ALTERNATIVE_LINK_NAME[flutter-cluster-dashboard.yaml] = "${sysconfdir}/xdg/AGL/${BPN}.yaml" FILES:${PN} += "${datadir} ${systemd_user_unitdir} ${sysconfdir}/default/" +RDEPENDS:${PN} += "flutter-auto agl-flutter-env" PACKAGE_BEFORE_PN += "${PN}-conf ${PN}-conf-demo" -FILES:${PN}-conf += "${sysconfdir}/xdg/AGL/flutter-cluster-dashboard.yaml.default" +FILES:${PN}-conf += "${sysconfdir}/xdg/AGL/${BPN}.yaml.default" RDEPENDS:${PN}-conf = "${PN}" -RPROVIDES:${PN}-conf = "flutter-cluster-dashboard.yaml" +RPROVIDES:${PN}-conf = "${BPN}.yaml" RCONFLICTS:${PN}-conf = "${PN}-conf-demo" -ALTERNATIVE:${PN}-conf = "flutter-cluster-dashboard.yaml" -ALTERNATIVE_TARGET_${PN}-conf = "${sysconfdir}/xdg/AGL/flutter-cluster-dashboard.yaml.default" +ALTERNATIVE:${PN}-conf = "${BPN}.yaml" +ALTERNATIVE_TARGET_${PN}-conf = "${sysconfdir}/xdg/AGL/${BPN}.yaml.default" -FILES:${PN}-conf-demo += "${sysconfdir}/xdg/AGL/flutter-cluster-dashboard.yaml.demo" +FILES:${PN}-conf-demo += "${sysconfdir}/xdg/AGL/${BPN}.yaml.demo" RDEPENDS:${PN}-conf-demo = "${PN}" -RPROVIDES:${PN}-conf-demo = "flutter-cluster-dashboard.yaml" +RPROVIDES:${PN}-conf-demo = "${BPN}.yaml" RCONFLICTS:${PN}-conf-demo = "${PN}-conf" -ALTERNATIVE:${PN}-conf-demo = "flutter-cluster-dashboard.yaml" -ALTERNATIVE_TARGET_${PN}-conf-demo = "${sysconfdir}/xdg/AGL/flutter-cluster-dashboard.yaml.demo" +ALTERNATIVE:${PN}-conf-demo = "${BPN}.yaml" +ALTERNATIVE_TARGET_${PN}-conf-demo = "${sysconfdir}/xdg/AGL/${BPN}.yaml.demo" diff --git a/recipes-demo/flutter-homescreen/files/flutter-homescreen.json b/recipes-demo/flutter-homescreen/files/flutter-homescreen.json index 29308d3ea..63babcfab 100644 --- a/recipes-demo/flutter-homescreen/files/flutter-homescreen.json +++ b/recipes-demo/flutter-homescreen/files/flutter-homescreen.json @@ -1,7 +1,6 @@ { "view" : [ { "window_type" : "BG", - "bundle_path" : "/usr/share/flutter/flutter_homescreen/3.3.7/release", "width" : 1920, "height": 1080, "fullscreen": true diff --git a/recipes-demo/flutter-homescreen/files/flutter-homescreen.service b/recipes-demo/flutter-homescreen/files/flutter-homescreen.service index 300fb22d3..a57fc5cc5 100644 --- a/recipes-demo/flutter-homescreen/files/flutter-homescreen.service +++ b/recipes-demo/flutter-homescreen/files/flutter-homescreen.service @@ -3,7 +3,9 @@ Requires=agl-compositor.service After=agl-compositor.service [Service] -ExecStart=/usr/bin/flutter-auto --j=/usr/share/flutter/flutter-homescreen.json --xdg-shell-app-id=homescreen +EnvironmentFile=/etc/default/flutter +EnvironmentFile=-/etc/default/flutter-homescreen +ExecStart=/usr/bin/flutter-auto --b=/usr/share/flutter/flutter_homescreen/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} --j=/usr/share/flutter/flutter-homescreen.json --xdg-shell-app-id=homescreen Restart=on-failure [Install] diff --git a/recipes-demo/flutter-homescreen/flutter-homescreen_git.bb b/recipes-demo/flutter-homescreen/flutter-homescreen_git.bb index c4142774e..0bd1ae19b 100644 --- a/recipes-demo/flutter-homescreen/flutter-homescreen_git.bb +++ b/recipes-demo/flutter-homescreen/flutter-homescreen_git.bb @@ -22,17 +22,18 @@ FLUTTER_BUILD_ARGS = "bundle -v" inherit flutter-app -APP_CONFIG = "flutter-homescreen.json" +APP_CONFIG = "${BPN}.json" do_install:append() { - install -D -m 0644 ${WORKDIR}/flutter-homescreen.service ${D}${systemd_user_unitdir}/flutter-homescreen.service + install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service install -d ${D}${systemd_user_unitdir}/agl-session.target.wants - ln -s ../flutter-homescreen.service ${D}${systemd_user_unitdir}/agl-session.target.wants/flutter-homescreen.service + ln -s ../${BPN}.service ${D}${systemd_user_unitdir}/agl-session.target.wants/${BPN}.service - install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/flutter-homescreen.json + install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/${BPN}.json install -d ${D}${sysconfdir}/xdg/AGL install -m 0644 ${WORKDIR}/homescreen_config.yaml ${D}${sysconfdir}/xdg/AGL/ } FILES:${PN} += "${datadir} ${systemd_user_unitdir} ${sysconfdir}/xdg/AGL" +RDEPENDS:${PN} += "flutter-auto agl-flutter-env" -- 2.16.6