summaryrefslogtreecommitdiffstats
path: root/meta-agl-flutter
diff options
context:
space:
mode:
authorJoel Winarske <joel.winarske@gmail.com>2022-08-03 18:19:31 -0700
committerJoel Winarske <joel.winarske@gmail.com>2022-08-03 18:19:31 -0700
commitadbb12626100901bc815deba27733fe1a3ebc3cc (patch)
tree6f70ed31f427b342689b1d7785ac9ae7e5bdc0e8 /meta-agl-flutter
parent9a4f63a3bc70b11bd070989b95ddca2c11920a57 (diff)
meta-agl-flutter refactor
- application rename -> flutter-auto - adopts upstream (meta-flutter) bbclass for runtime selection runtimedebug -> runtime=debug runtimeprofile -> runtime=profile runtimerelease -> runtime=release *This also affects image names* - A discrete json files for each runtime configuration demuxing of runtime config happens in bbappend. - prevent dev host conflict with flutter-auto.service in case of debug and profile. The dev host machine controls homescreen in these scenarios. - simplifies inc and recipes Dependent on https://gerrit.automotivelinux.org/gerrit/c/AGL/AGL-repo/+/27850 Bug-AGL: SPEC-4326 Signed-off-by: Joel Winarske <joel.winarske@gmail.com> Change-Id: I877811417e3befab4d48a906058dcb52c81be4ce
Diffstat (limited to 'meta-agl-flutter')
-rw-r--r--meta-agl-flutter/classes/flutterdebug.bbclass1
-rw-r--r--meta-agl-flutter/classes/flutterprofile.bbclass1
-rw-r--r--meta-agl-flutter/classes/flutterrelease.bbclass1
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/files/0001-Allow-the-embedder-to-run-as-a-regular-normal-applic.patch181
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/files/0002-shell-configuration-Obey-json-configuration-file.patch44
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/files/0003-shell-configuration-Fixes-to-general-options.patch52
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/files/0004-Add-app-id-command-line-argument.patch38
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/files/flutter-auto.service10
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-debug.json11
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-profile.json11
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-release.json (renamed from meta-agl-flutter/recipes-graphics/toyota/files/config.json)3
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/flutter-auto%.bbappend1
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc47
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-debug_%.bbappend2
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-debug_aglflutter.inc2
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-profile_%.bbappend3
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-profile_aglflutter.inc4
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-release_%.bbappend3
-rw-r--r--meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen_aglflutter.inc65
-rw-r--r--meta-agl-flutter/recipes-platform/images/agl-image-flutter-debug.bb20
-rw-r--r--meta-agl-flutter/recipes-platform/images/agl-image-flutter-profile.bb20
-rw-r--r--meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimedebug.bb21
-rw-r--r--meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimeprofile.bb19
-rw-r--r--meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimerelease.bb19
-rw-r--r--meta-agl-flutter/recipes-platform/images/agl-image-flutter.bb20
25 files changed, 141 insertions, 458 deletions
diff --git a/meta-agl-flutter/classes/flutterdebug.bbclass b/meta-agl-flutter/classes/flutterdebug.bbclass
deleted file mode 100644
index 158ddb32..00000000
--- a/meta-agl-flutter/classes/flutterdebug.bbclass
+++ /dev/null
@@ -1 +0,0 @@
-FLUTTER_RUNTIME = "debug"
diff --git a/meta-agl-flutter/classes/flutterprofile.bbclass b/meta-agl-flutter/classes/flutterprofile.bbclass
deleted file mode 100644
index 38d114e6..00000000
--- a/meta-agl-flutter/classes/flutterprofile.bbclass
+++ /dev/null
@@ -1 +0,0 @@
-FLUTTER_RUNTIME = "profile"
diff --git a/meta-agl-flutter/classes/flutterrelease.bbclass b/meta-agl-flutter/classes/flutterrelease.bbclass
deleted file mode 100644
index cf75bc13..00000000
--- a/meta-agl-flutter/classes/flutterrelease.bbclass
+++ /dev/null
@@ -1 +0,0 @@
-FLUTTER_RUNTIME = "release"
diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/0001-Allow-the-embedder-to-run-as-a-regular-normal-applic.patch b/meta-agl-flutter/recipes-graphics/toyota/files/0001-Allow-the-embedder-to-run-as-a-regular-normal-applic.patch
deleted file mode 100644
index 5b63e20e..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/files/0001-Allow-the-embedder-to-run-as-a-regular-normal-applic.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 7f3f913ec5bea1d94c04f8a029db659c33e56dbf Mon Sep 17 00:00:00 2001
-From: Marius Vlad <mv0@users.noreply.github.com>
-Date: Sun, 24 Jul 2022 21:15:54 +0300
-Subject: [PATCH 1/3] Allow the embedder to run as a regular/normal application
- (#71)
-
-* shell: Do not issue always the ready request
-
-Rather than sending the ready request always, just do it when we've
-found at least a background type of surface.
-
-This way we can have a flutter instance as a regular application but
-also as a shell client.
-
-This is a work-around for the time being, a much more suitable approach
-would be to have a mechanism that tells us when the client has finished
-loading or has it's first frame swapped (or something similar to that).
-
-Note that we need at least a background surface so not finding one
-assumes that we're a regular application (WINDOW_NORMAL).
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
-* shell: Do not attempt always bind to agl-shell interface
-
-This helps up running as a regular application in
-situations where we already have a client bound to the agl-shell
-interface.
-
-We can't really accept more than one client to bind to the interface and
-without a change in the protocol to avoid racy situations, it seems more
-natural for the embedder to infer if it actually needs to do that.
-
-When the protocol has been updated to include additional events to let
-clients that they've lost the race, we can remove this change.
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
-Co-authored-by: Marius Vlad <marius.vlad@collabora.com>
----
- shell/app.cc | 13 +++++++++++--
- shell/wayland/display.cc | 18 +++++++++++++++---
- shell/wayland/display.h | 8 +++++++-
- shell/wayland/window.h | 2 +-
- 4 files changed, 34 insertions(+), 7 deletions(-)
-
-diff --git a/shell/app.cc b/shell/app.cc
-index 03c33ff..3ca183b 100644
---- a/shell/app.cc
-+++ b/shell/app.cc
-@@ -25,8 +25,10 @@
-
- App::App(const std::vector<Configuration::Config>& configs)
- : m_wayland_display(std::make_shared<Display>(!configs[0].disable_cursor,
-- configs[0].cursor_theme)) {
-+ configs[0].cursor_theme,
-+ configs)) {
- FML_DLOG(INFO) << "+App::App";
-+ bool found_view_with_bg = false;
-
- size_t index = 0;
- m_views.reserve(configs.size());
-@@ -35,9 +37,16 @@ App::App(const std::vector<Configuration::Config>& configs)
- view->Initialize();
- m_views.emplace_back(std::move(view));
- index++;
-+
-+ if (WaylandWindow::get_window_type(cfg.view.window_type) ==
-+ WaylandWindow::WINDOW_BG)
-+ found_view_with_bg = true;
- }
-
-- m_wayland_display->AglShellDoReady();
-+ // check that if we had a BG type and issue a ready() request for it,
-+ // otherwise we're going to assume that this is a NORMAL/REGULAR application.
-+ if (found_view_with_bg)
-+ m_wayland_display->AglShellDoReady();
-
- FML_DLOG(INFO) << "-App::App";
- }
-diff --git a/shell/wayland/display.cc b/shell/wayland/display.cc
-index 06eba8c..5d78471 100644
---- a/shell/wayland/display.cc
-+++ b/shell/wayland/display.cc
-@@ -27,7 +27,9 @@
- #include "constants.h"
- #include "engine.h"
-
--Display::Display(bool enable_cursor, std::string cursor_theme_name)
-+Display::Display(bool enable_cursor,
-+ std::string cursor_theme_name,
-+ const std::vector<Configuration::Config>& configs)
- : m_xkb_context(xkb_context_new(XKB_CONTEXT_NO_FLAGS)),
- m_buffer_scale(1),
- m_last_buffer_scale(m_buffer_scale),
-@@ -35,6 +37,15 @@ Display::Display(bool enable_cursor, std::string cursor_theme_name)
- m_cursor_theme_name(std::move(cursor_theme_name)) {
- FML_DLOG(INFO) << "+ Display()";
-
-+ for (auto const& cfg : configs) {
-+ // check if we actually need to bind to agl-shell
-+ auto window_type = WaylandWindow::get_window_type(cfg.view.window_type);
-+ if (window_type != WaylandWindow::WINDOW_NORMAL) {
-+ m_bind_to_agl_shell = true;
-+ break;
-+ }
-+ }
-+
- m_display = wl_display_connect(nullptr);
- if (m_display == nullptr) {
- FML_LOG(ERROR) << "Failed to connect to Wayland display. "
-@@ -46,7 +57,7 @@ Display::Display(bool enable_cursor, std::string cursor_theme_name)
- wl_registry_add_listener(m_registry, &registry_listener, this);
- wl_display_dispatch(m_display);
-
-- if (!m_agl_shell) {
-+ if (!m_agl_shell && m_bind_to_agl_shell) {
- FML_LOG(INFO) << "agl_shell extension not present";
- }
-
-@@ -152,7 +163,8 @@ void Display::registry_handle_global(void* data,
- wl_registry_bind(registry, name, &wl_seat_interface,
- std::min(static_cast<uint32_t>(5), version)));
- wl_seat_add_listener(d->m_seat, &seat_listener, d);
-- } else if (strcmp(interface, agl_shell_interface.name) == 0) {
-+ } else if (strcmp(interface, agl_shell_interface.name) == 0 &&
-+ d->m_bind_to_agl_shell) {
- d->m_agl_shell = static_cast<struct agl_shell*>(
- wl_registry_bind(registry, name, &agl_shell_interface,
- std::min(static_cast<uint32_t>(1), version)));
-diff --git a/shell/wayland/display.h b/shell/wayland/display.h
-index af3d460..bf05b27 100644
---- a/shell/wayland/display.h
-+++ b/shell/wayland/display.h
-@@ -32,11 +32,15 @@
- #include "static_plugins/text_input/text_input.h"
- #include "xdg-shell-client-protocol.h"
-
-+#include "configuration/configuration.h"
-+
- class Engine;
-
- class Display {
- public:
-- explicit Display(bool enable_cursor, std::string cursor_theme_name);
-+ explicit Display(bool enable_cursor,
-+ std::string cursor_theme_name,
-+ const std::vector<Configuration::Config>& configs);
-
- ~Display();
-
-@@ -96,6 +100,8 @@ class Display {
- struct wl_shm* m_shm{};
- struct wl_surface* m_base_surface{};
-
-+ bool m_bind_to_agl_shell = false;
-+
- std::map<wl_surface*, Engine*> m_surface_engine_map;
- wl_surface* m_active_surface{};
- Engine* m_active_engine{};
-diff --git a/shell/wayland/window.h b/shell/wayland/window.h
-index c4fe5e6..4b5c726 100644
---- a/shell/wayland/window.h
-+++ b/shell/wayland/window.h
-@@ -79,6 +79,7 @@ class WaylandWindow {
- wl_surface* GetBaseSurface() { return m_base_surface; }
-
- uint32_t m_fps_counter;
-+ static window_type get_window_type(const std::string& type);
-
- private:
- struct shm_buffer {
-@@ -157,5 +158,4 @@ class WaylandWindow {
-
- static const struct wl_callback_listener frame_listener;
-
-- static window_type get_window_type(const std::string& type);
- };
---
-2.35.3
-
diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/0002-shell-configuration-Obey-json-configuration-file.patch b/meta-agl-flutter/recipes-graphics/toyota/files/0002-shell-configuration-Obey-json-configuration-file.patch
deleted file mode 100644
index b9a864c5..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/files/0002-shell-configuration-Obey-json-configuration-file.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 36c7deb35719d2219dc6e868ab14d9a4ce984d1f Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Mon, 25 Jul 2022 15:51:06 +0300
-Subject: [PATCH 2/3] shell/configuration: Obey json configuration file
-
-Setting the name of the application to kApplicationName, by default,
-would cause the check in getCliOverrides to always be true, which in
-turn will ignore whatever the user specified in the configuration file.
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- shell/configuration/configuration.cc | 2 ++
- shell/main.cc | 2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/shell/configuration/configuration.cc b/shell/configuration/configuration.cc
-index f8b1e13..616de48 100644
---- a/shell/configuration/configuration.cc
-+++ b/shell/configuration/configuration.cc
-@@ -220,6 +220,8 @@ std::vector<struct Configuration::Config> Configuration::ParseConfig(
- if (cfg.view.height == 0) {
- cfg.view.height = kDefaultViewHeight;
- }
-+ if (cfg.app_id.empty())
-+ cfg.app_id = kApplicationName;
-
- res.emplace_back(cfg);
- }
-diff --git a/shell/main.cc b/shell/main.cc
-index 65c3f37..6fdd907 100644
---- a/shell/main.cc
-+++ b/shell/main.cc
-@@ -44,7 +44,7 @@ void RemoveArgument(std::vector<std::string>& args, const std::string& arg) {
-
- int main(int argc, char** argv) {
- struct Configuration::Config config {
-- .app_id = kApplicationName, .json_configuration_path{}, .cursor_theme{},
-+ .app_id = {}, .json_configuration_path{}, .cursor_theme{},
- .disable_cursor{}, .debug_backend{}, .view {}
- };
-
---
-2.35.3
-
diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/0003-shell-configuration-Fixes-to-general-options.patch b/meta-agl-flutter/recipes-graphics/toyota/files/0003-shell-configuration-Fixes-to-general-options.patch
deleted file mode 100644
index f06d4548..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/files/0003-shell-configuration-Fixes-to-general-options.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From a3a1421c3986bbafd9f91997eec7f2606ef67fc3 Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Mon, 25 Jul 2022 15:53:17 +0300
-Subject: [PATCH 3/3] shell/configuration: Fixes to general options
-
-This patch avoids an automatic overwrite of the debug_backend and
-disable_cursor entries. If enabled in the configuration file, the test
-will always return true, basically overwriting to false.
-
-Also, use the correct entry in the README file for debug_backend.
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- README.md | 2 +-
- shell/configuration/configuration.cc | 6 ++++--
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/README.md b/README.md
-index 7c162eb..d459f4c 100644
---- a/README.md
-+++ b/README.md
-@@ -175,7 +175,7 @@ Loads Single View
-
- {
- "disable_cursor":true,
-- "backend_debug":true,
-+ "debug_backend":true,
- "accessibility_features":31,
- "view":{
- "bundle_path":"/home/joel/development/gallery/.homescreen/x86/release",
-diff --git a/shell/configuration/configuration.cc b/shell/configuration/configuration.cc
-index 616de48..773724c 100644
---- a/shell/configuration/configuration.cc
-+++ b/shell/configuration/configuration.cc
-@@ -152,10 +152,12 @@ void Configuration::getCliOverrides(Config& instance, Config& cli) {
- if (!cli.cursor_theme.empty()) {
- instance.cursor_theme = cli.cursor_theme;
- }
-- if (cli.disable_cursor != instance.disable_cursor) {
-+ if (cli.disable_cursor == true &&
-+ cli.disable_cursor != instance.disable_cursor) {
- instance.disable_cursor = cli.disable_cursor;
- }
-- if (cli.debug_backend != instance.debug_backend) {
-+ if (cli.debug_backend == true &&
-+ cli.debug_backend != instance.debug_backend) {
- instance.debug_backend = cli.debug_backend;
- }
- if (!cli.view.vm_args.empty()) {
---
-2.35.3
-
diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/0004-Add-app-id-command-line-argument.patch b/meta-agl-flutter/recipes-graphics/toyota/files/0004-Add-app-id-command-line-argument.patch
deleted file mode 100644
index 6b9d4c3a..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/files/0004-Add-app-id-command-line-argument.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 6a62efbebcdf17e3af57f04603aa5f0d61b0c1e2 Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Wed, 27 Jul 2022 18:23:32 -0400
-Subject: [PATCH] Add app-id command-line argument
-
-Add a command-line argument for specifying the app id, so that basic
-applications do not need to supply a full JSON configuration just to
-do so.
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- shell/main.cc | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/shell/main.cc b/shell/main.cc
-index 6fdd907..662b7d1 100644
---- a/shell/main.cc
-+++ b/shell/main.cc
-@@ -151,6 +151,16 @@ int main(int argc, char** argv) {
- FML_DLOG(INFO) << "Cursor Theme: " << config.cursor_theme;
- RemoveArgument(config.view.vm_args, "--t=" + config.cursor_theme);
- }
-+ if (cl.HasOption("app-id")) {
-+ cl.GetOptionValue("app-id", &config.app_id);
-+ if (config.app_id.empty()) {
-+ FML_LOG(ERROR)
-+ << "--app-id option requires an argument (e.g. --app-id=gallery)";
-+ return EXIT_FAILURE;
-+ }
-+ FML_DLOG(INFO) << "Application ID: " << config.app_id;
-+ RemoveArgument(config.view.vm_args, "--app-id=" + config.app_id);
-+ }
- }
-
- auto vm_arg_count = config.view.vm_args.size();
---
-2.35.3
-
diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/flutter-auto.service b/meta-agl-flutter/recipes-graphics/toyota/files/flutter-auto.service
new file mode 100644
index 00000000..71ab791d
--- /dev/null
+++ b/meta-agl-flutter/recipes-graphics/toyota/files/flutter-auto.service
@@ -0,0 +1,10 @@
+[Unit]
+Requires=agl-compositor.service
+After=agl-compositor.service
+
+[Service]
+ExecStart=/usr/bin/flutter-auto --j=/usr/share/flutter/default.json
+Restart=on-failure
+
+[Install]
+WantedBy=agl-session.target
diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-debug.json b/meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-debug.json
new file mode 100644
index 00000000..5a84a0bd
--- /dev/null
+++ b/meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-debug.json
@@ -0,0 +1,11 @@
+{
+ "view" : [ {
+ "window_type" : "BG",
+ "bundle_path" : "/usr/share/flutter/gallery",
+ "vm_args":["--observatory-host", "0.0.0.0", "--observatory-port", "1234"],
+ "width" : 1920,
+ "height": 1080,
+ "fullscreen": true
+ }
+ ]
+}
diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-profile.json b/meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-profile.json
new file mode 100644
index 00000000..3309fde4
--- /dev/null
+++ b/meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-profile.json
@@ -0,0 +1,11 @@
+{
+ "view" : [ {
+ "window_type" : "BG",
+ "bundle_path" : "/usr/share/flutter/gallery",
+ "vm_args":["--observatory-host", "0.0.0.0", "--observatory-port", "1234", "--start-paused"],
+ "width" : 1920,
+ "height": 1080,
+ "fullscreen": true
+ }
+ ]
+}
diff --git a/meta-agl-flutter/recipes-graphics/toyota/files/config.json b/meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-release.json
index 90dec21b..6a2a8448 100644
--- a/meta-agl-flutter/recipes-graphics/toyota/files/config.json
+++ b/meta-agl-flutter/recipes-graphics/toyota/files/gallery_on_bg-release.json
@@ -3,7 +3,8 @@
"window_type" : "BG",
"bundle_path" : "/usr/share/flutter/gallery",
"width" : 1920,
- "height": 1080
+ "height": 1080,
+ "fullscreen": true
}
]
}
diff --git a/meta-agl-flutter/recipes-graphics/toyota/flutter-auto%.bbappend b/meta-agl-flutter/recipes-graphics/toyota/flutter-auto%.bbappend
new file mode 100644
index 00000000..dbc82bc3
--- /dev/null
+++ b/meta-agl-flutter/recipes-graphics/toyota/flutter-auto%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'agl-flutter', 'flutter-auto_aglflutter.inc', '', d)}
diff --git a/meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc b/meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc
new file mode 100644
index 00000000..4baaa517
--- /dev/null
+++ b/meta-agl-flutter/recipes-graphics/toyota/flutter-auto_aglflutter.inc
@@ -0,0 +1,47 @@
+# For now disable gstreamer to avoid needing to enable "commercial"
+# licenses for the stated ffmpeg dependency.
+PACKAGECONFIG:remove = "gstreamer"
+
+# Enable verbose logging on runtimedebug image
+PACKAGECONFIG:append:runtimedebug = "verbose"
+
+
+USER_SERVICE = "flutter-auto.service"
+
+FILESEXTRAPATHS:append := "${THISDIR}/files:"
+SRC_URI += "\
+ file://${USER_SERVICE} \
+ file://gallery_on_bg-debug.json \
+ file://gallery_on_bg-profile.json \
+ file://gallery_on_bg-release.json \
+ file://0002-shell-configuration-Obey-json-configuration-file.patch \
+ file://0003-shell-configuration-Fixes-to-general-options.patch \
+ file://0004-Add-app-id-command-line-argument.patch \
+ "
+
+
+cmake_do_install:append() {
+
+ install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
+ install -D -m0644 ${WORKDIR}/${USER_SERVICE} ${D}${systemd_user_unitdir}/${USER_SERVICE}
+
+ install -D -m0644 ${WORKDIR}/gallery_on_bg-release.json ${D}${datadir}/flutter/default.json
+}
+
+cmake_do_install:append:runtimedebug() {
+
+ # the dev host controls starting/stopping the flutter-auto process when runtime=debug
+ install -D -m0644 ${WORKDIR}/gallery_on_bg-debug.json ${D}${datadir}/flutter/default.json
+}
+
+cmake_do_install:append:runtimeprofile() {
+
+ # the dev host controls starting/stopping the flutter-auto process when runtime=profile
+ install -D -m0644 ${WORKDIR}/gallery_on_bg-profile.json ${D}${datadir}/flutter/default.json
+}
+
+
+FILES:${PN} += "\
+ ${systemd_user_unitdir} \
+ ${datadir} \
+ "
diff --git a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-debug_%.bbappend b/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-debug_%.bbappend
deleted file mode 100644
index ea695b94..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-debug_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'agl-flutter', 'ivi-homescreen_aglflutter.inc', '', d)}
-require ${@bb.utils.contains('AGL_FEATURES', 'agl-flutter', '${BPN}_aglflutter.inc', '', d)}
diff --git a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-debug_aglflutter.inc b/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-debug_aglflutter.inc
deleted file mode 100644
index ebc18064..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-debug_aglflutter.inc
+++ /dev/null
@@ -1,2 +0,0 @@
-# debug package specifics
-SERVICE_EXEC_START_PARAMS = "--observatory-host 0.0.0.0 --observatory-port 1234"
diff --git a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-profile_%.bbappend b/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-profile_%.bbappend
deleted file mode 100644
index ed5c8805..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-profile_%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'agl-flutter', 'ivi-homescreen_aglflutter.inc', '', d)}
-require ${@bb.utils.contains('AGL_FEATURES', 'agl-flutter', '${BPN}_aglflutter.inc', '', d)}
-
diff --git a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-profile_aglflutter.inc b/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-profile_aglflutter.inc
deleted file mode 100644
index 0d3176a9..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-profile_aglflutter.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-# profile specific commands
-SERVICE_EXEC_START_PARAMS = "--observatory-host 0.0.0.0 --observatory-port 1234 --start-paused"
-
-
diff --git a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-release_%.bbappend b/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-release_%.bbappend
deleted file mode 100644
index 05cac727..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen-release_%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'agl-flutter', 'ivi-homescreen_aglflutter.inc', '', d)}
-# not used atm
-#require ${@bb.utils.contains('AGL_FEATURES', 'agl-flutter', '${BPN}_aglflutter.inc', '', d)}
diff --git a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen_aglflutter.inc b/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen_aglflutter.inc
deleted file mode 100644
index 3fea926e..00000000
--- a/meta-agl-flutter/recipes-graphics/toyota/ivi-homescreen_aglflutter.inc
+++ /dev/null
@@ -1,65 +0,0 @@
-FILESEXTRAPATHS:append := "${THISDIR}/files:"
-
-SRC_URI += " \
- file://0001-Allow-the-embedder-to-run-as-a-regular-normal-applic.patch \
- file://0002-shell-configuration-Obey-json-configuration-file.patch \
- file://0003-shell-configuration-Fixes-to-general-options.patch \
- file://0004-Add-app-id-command-line-argument.patch \
- file://config.json \
-"
-
-# Upstream is now pinning ivi-homescreen, but if it did need to be pinned
-# it can be done here.
-#SRCREV = ""
-
-# For now disable gstreamer to avoid needing to enable "commercial"
-# licenses for the stated ffmpeg dependency.
-PACKAGECONFIG:remove = "gstreamer"
-
-#
-# AGL specifics
-#
-
-IVI_HOMESCREEN_APP_OVERRIDE = "--b=/usr/share/flutter/gallery --j=/usr/share/flutter/config.json"
-
-SERVICE_UNIT = "Requires=agl-compositor.service\nAfter=agl-compositor.service"
-SERVICE_INSTALL = "WantedBy=agl-session.target"
-
-# The "homescreen" naming of the embedder binary conflicts with the
-# Qt homescreen in meta-agl-demo. At least for now, rename it to
-# allow running Flutter apps in an image that uses the Qt homescreen
-# and launcher for testing.
-SERVICE_EXEC_START = "ExecStart=/usr/bin/flutter --f ${IVI_HOMESCREEN_APP_OVERRIDE} ${SERVICE_EXEC_START_PARAMS}"
-
-# we have a regular/agl-driver user, so avoid setting one
-SERVICE_ENVIRONMENT = ""
-SERVICE_USER_GROUP = ""
-SERVICE_RESTART = "Restart=on-failure"
-
-# we need to install as user session, not root.
-do_install:append() {
- # The system level systemd unit is not required in AGL
- rm -f ${D}{systemd_system_unitdir}/homescreen.service
-
- install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
- install -D -m 0644 ${WORKDIR}/config.json ${D}${datadir}/flutter/config.json
- install -m 0644 ${WORKDIR}/homescreen.service ${D}${systemd_user_unitdir}/homescreen.service
- ln -s ../homescreen.service ${D}${systemd_user_unitdir}/agl-session.target.wants/homescreen.service
-
- # Rename embedder binary, see explanation above
- mv ${D}${bindir}/homescreen ${D}${bindir}/flutter
-}
-
-# Split the embedder binary into a separate package to allow reusing it
-# without the generated upstream systemd unit that ATM is still useful
-# for testing with the agl-image-flutter image. AGL will use either
-# the applaunchd systemd template or custom units in meta-agl-demo.
-PACKAGE_BEFORE_PN = "flutter-embedder-${FLUTTER_RUNTIME}"
-
-FILES:flutter-embedder-${FLUTTER_RUNTIME} = "${bindir}"
-
-FILES:${PN} += "${systemd_user_unitdir} ${datadir}/flutter/config.json"
-
-RDEPENDS:${PN} += "flutter-embedder-${FLUTTER_RUNTIME}"
-
-RDEPENDS:flutter-embedder-${FLUTTER_RUNTIME} += "flutter-engine-${FLUTTER_RUNTIME}"
diff --git a/meta-agl-flutter/recipes-platform/images/agl-image-flutter-debug.bb b/meta-agl-flutter/recipes-platform/images/agl-image-flutter-debug.bb
deleted file mode 100644
index 2c24699b..00000000
--- a/meta-agl-flutter/recipes-platform/images/agl-image-flutter-debug.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Baseline Flutter Image for Development"
-
-LICENSE = "MIT"
-
-require agl-image-flutter.inc
-
-IMAGE_INSTALL:append = "\
- weston-ini-conf-landscape \
- \
- ivi-homescreen-debug \
- flutter-engine-debug \
- \
- flutter-gallery-debug \
- flutter-test-secure-storage-debug \
- flutter-test-texture-egl-debug \
- flutter-test-video-player-debug \
- \
- flutter-app-igalia-homescreen-debug \
- flutter-app-pumped-fuel-ped-debug \
- "
diff --git a/meta-agl-flutter/recipes-platform/images/agl-image-flutter-profile.bb b/meta-agl-flutter/recipes-platform/images/agl-image-flutter-profile.bb
deleted file mode 100644
index 33ae39c9..00000000
--- a/meta-agl-flutter/recipes-platform/images/agl-image-flutter-profile.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Baseline Flutter Image for Profiling"
-
-LICENSE = "MIT"
-
-require agl-image-flutter.inc
-
-IMAGE_INSTALL:append = "\
- weston-ini-conf-landscape \
- \
- ivi-homescreen-profile \
- flutter-engine-profile \
- \
- flutter-gallery-profile \
- flutter-test-secure-storage-profile \
- flutter-test-texture-egl-profile \
- flutter-test-video-player-profile \
- \
- flutter-app-igalia-homescreen-profile \
- flutter-app-pumped-fuel-ped-profile \
- "
diff --git a/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimedebug.bb b/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimedebug.bb
new file mode 100644
index 00000000..6c412597
--- /dev/null
+++ b/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimedebug.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Baseline Flutter Image for Development"
+
+LICENSE = "MIT"
+
+require agl-image-flutter.inc
+
+IMAGE_INSTALL:append = "\
+ weston-ini-conf-landscape \
+ \
+ flutter-auto-runtimedebug \
+ \
+ flutter-engine-runtimedebug-sdk-dev \
+ \
+ flutter-gallery-runtimedebug \
+ flutter-test-texture-egl-runtimedebug \
+ flutter-test-secure-storage-runtimedebug \
+ flutter-test-localization-runtimedebug \
+ \
+ flutter-app-igalia-homescreen-runtimedebug \
+ flutter-app-pumped-fuel-ped-runtimedebug \
+ "
diff --git a/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimeprofile.bb b/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimeprofile.bb
new file mode 100644
index 00000000..a69302b3
--- /dev/null
+++ b/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimeprofile.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Baseline Flutter Image for Profiling"
+
+LICENSE = "MIT"
+
+require agl-image-flutter.inc
+
+IMAGE_INSTALL:append = "\
+ weston-ini-conf-landscape \
+ \
+ flutter-auto-runtimeprofile \
+ \
+ flutter-gallery-runtimeprofile \
+ flutter-test-texture-egl-runtimeprofile \
+ flutter-test-secure-storage-runtimeprofile \
+ flutter-test-localization-runtimeprofile \
+ \
+ flutter-app-igalia-homescreen-runtimeprofile \
+ flutter-app-pumped-fuel-ped-runtimeprofile \
+ "
diff --git a/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimerelease.bb b/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimerelease.bb
new file mode 100644
index 00000000..cf60e8be
--- /dev/null
+++ b/meta-agl-flutter/recipes-platform/images/agl-image-flutter-runtimerelease.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Baseline Flutter Image for Release"
+
+LICENSE = "MIT"
+
+require agl-image-flutter.inc
+
+IMAGE_INSTALL:append = "\
+ weston-ini-conf-landscape \
+ \
+ flutter-auto-runtimerelease \
+ \
+ flutter-gallery-runtimerelease \
+ flutter-test-texture-egl-runtimerelease \
+ flutter-test-secure-storage-runtimerelease \
+ flutter-test-localization-runtimerelease \
+ \
+ flutter-app-igalia-homescreen-runtimerelease \
+ flutter-app-pumped-fuel-ped-runtimerelease \
+ "
diff --git a/meta-agl-flutter/recipes-platform/images/agl-image-flutter.bb b/meta-agl-flutter/recipes-platform/images/agl-image-flutter.bb
deleted file mode 100644
index 83809426..00000000
--- a/meta-agl-flutter/recipes-platform/images/agl-image-flutter.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Baseline Flutter Image for Release"
-
-LICENSE = "MIT"
-
-require agl-image-flutter.inc
-
-IMAGE_INSTALL:append = "\
- weston-ini-conf-landscape \
- \
- ivi-homescreen-release \
- flutter-engine-release \
- \
- flutter-gallery-release \
- flutter-test-secure-storage-release \
- flutter-test-texture-egl-release \
- flutter-test-video-player-release \
- \
- flutter-app-igalia-homescreen-flutterrelease \
- flutter-app-pumped-fuel-ped-flutterrelease \
- "