Flutter SDK 3.24.2 60/30260/5
authorJoel Winarske <joel.winarske@gmail.com>
Fri, 6 Sep 2024 15:44:38 +0000 (08:44 -0700)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Mon, 9 Sep 2024 15:28:50 +0000 (15:28 +0000)
-swap flutter-samples-material-3-demo for flutter-gallery
-updated workspace-automation configs

Change-Id: Ie5cc66f53d7880106e10a98560292a2c2625473c
Signed-off-by: Joel Winarske <joel.winarske@gmail.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/30260
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Reviewed-by: Scott Murray <scott.murray@konsulko.com>
16 files changed:
meta-agl-flutter/conf/include/agl-flutter.inc
meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-gallery/flutter-gallery.service [deleted file]
meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-gallery_aglflutter.inc [deleted file]
meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo/flutter-samples-material-3-demo.service [new file with mode: 0644]
meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo/flutter-samples-material-3-demo.toml [new file with mode: 0644]
meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo_%.bbappend [moved from meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-gallery_%.bbappend with 54% similarity]
meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo_aglflutter.inc [new file with mode: 0644]
meta-agl-flutter/recipes-platform/images/agl-image-flutter-debug.bb
meta-agl-flutter/recipes-platform/images/agl-image-flutter.bb
meta-agl-flutter/tools/configs/_globals.json
meta-agl-flutter/tools/configs/_repos.json
meta-agl-flutter/tools/configs/agl-qemu-master.json
meta-agl-flutter/tools/configs/agl-qemu-octopus.json
meta-agl-flutter/tools/configs/agl-qemu-ricefish-18.0.0.json [new file with mode: 0644]
meta-agl-flutter/tools/configs/agl-qemu-ricefish-18.0.1.json [new file with mode: 0644]
meta-agl-flutter/tools/configs/desktop-auto.json

index 38db25e..6d60bc4 100644 (file)
@@ -1,3 +1,3 @@
 AGL_FEATURES += "agl-flutter"
 
-FLUTTER_SDK_TAG = "3.19.3"
+FLUTTER_SDK_TAG = "3.24.2"
diff --git a/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-gallery/flutter-gallery.service b/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-gallery/flutter-gallery.service
deleted file mode 100644 (file)
index 0b29c3f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Requires=agl-compositor.service
-After=agl-compositor.service
-
-[Service]
-User=agl-driver
-EnvironmentFile=/etc/default/flutter
-EnvironmentFile=-/etc/default/flutter-gallery
-Environment=XDG_RUNTIME_DIR=/run/user/1001/
-ExecStart=/usr/bin/flutter-auto --b=/usr/share/flutter/flutter-gallery/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} --f --window-type=BG --xdg-shell-app-id=flutter-gallery
-
-[Install]
-WantedBy=graphical.target
diff --git a/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-gallery_aglflutter.inc b/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-gallery_aglflutter.inc
deleted file mode 100644 (file)
index 68c07f1..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-FILESEXTRAPATHS:prepend := "${THISDIR}/flutter-gallery:"
-
-SRC_URI += "file://flutter-gallery.service"
-
-inherit systemd
-
-do_install:append() {
-    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
-}
-
-RDEPENDS:${PN} += "agl-flutter-env"
-
-SYSTEMD_SERVICE:${PN} = "flutter-gallery.service"
diff --git a/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo/flutter-samples-material-3-demo.service b/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo/flutter-samples-material-3-demo.service
new file mode 100644 (file)
index 0000000..f3f4a94
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Requires=agl-compositor.service
+After=agl-compositor.service
+
+[Service]
+User=agl-driver
+EnvironmentFile=/etc/default/flutter
+EnvironmentFile=-/etc/default/flutter-samples-material-3-demo
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
+ExecStart=/usr/bin/flutter-auto -b /usr/share/flutter/flutter-samples-material-3-demo/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} -xdg-shell-app-id flutter-samples-material-3-demo
+
+[Install]
+WantedBy=graphical.target
diff --git a/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo/flutter-samples-material-3-demo.toml b/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo/flutter-samples-material-3-demo.toml
new file mode 100644 (file)
index 0000000..cb78ab0
--- /dev/null
@@ -0,0 +1,5 @@
+[view]
+window_type = "BG"
+width = 1080
+height = 1920
+fullscreen = true
diff --git a/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo_aglflutter.inc b/meta-agl-flutter/dynamic-layers/flutter-apps-layer/recipes-graphics/flutter-apps/first-party/flutter-samples-material-3-demo_aglflutter.inc
new file mode 100644 (file)
index 0000000..971756a
--- /dev/null
@@ -0,0 +1,22 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/flutter-samples-material-3-demo:"
+
+SRC_URI += "file://flutter-samples-material-3-demo.service"
+
+APP_CONFIG = "flutter-samples-material-3-demo.toml"
+
+inherit systemd
+
+do_install:append() {
+    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+
+    # determine build type based on what flutter-engine installed.
+    for runtime_mode in ${FLUTTER_RUNTIME_MODES}
+    do
+        install -D -m 0644 ${WORKDIR}/${APP_CONFIG} \
+            ${D}${datadir}/flutter/${PUBSPEC_APPNAME}/${FLUTTER_SDK_VERSION}/${runtime_mode}/config.toml
+    done
+}
+
+RDEPENDS:${PN} += "agl-flutter-env"
+
+SYSTEMD_SERVICE:${PN} = "flutter-samples-material-3-demo.service"
index c9c1f29..9b4b083 100644 (file)
@@ -25,5 +25,5 @@ IMAGE_INSTALL += "\
     \
     flutter-engine-sdk-dev \
     \
-    flutter-gallery \
+    flutter-samples-material-3-demo \
 "
index 0fdb7da..700f540 100644 (file)
@@ -12,5 +12,5 @@ IMAGE_INSTALL += "\
     \
     flutter-auto \
     \
-    flutter-gallery \
+    flutter-samples-material-3-demo \
 "
index 4caf9e8..1830c8d 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "flutter-version": "3.19.3",
+    "flutter-version": "3.24.1",
     "github_token": "",
     "cookie_file": ""
-}
\ No newline at end of file
+}
index 5bc0562..5fb8aa0 100644 (file)
@@ -1,7 +1,12 @@
 [
     {
         "uri": "https://github.com/toyota-connected/ivi-homescreen.git",
-        "rev": "ea89b1de0a40c0d447ded305645556c978cfa696",
+        "rev": "e87c1797f838e20f0a4c1af309541d63986058ca",
+        "branch": "v2.0"
+    },
+    {
+        "uri": "https://github.com/toyota-connected/ivi-homescreen-plugins.git",
+        "rev": "41d00635f89c064aa32f2cef3147c59b8f61694f",
         "branch": "v2.0"
     },
     {
index eba953f..dae014a 100644 (file)
         "DEVICE_HOSTNAME": "localhost",
         "FLUTTER_AUTO_EXE": "flutter-auto --j=/tmp/${appName}/default_config.json --b=/tmp/${appName}",
         "PING_CMD": "(echo >/dev/tcp/localhost/${CONTAINER_SSH_PORT}) &>/dev/null && echo open || echo closed",
-        "DELETE_USER_PWD": "ssh -p ${CONTAINER_SSH_PORT} -t -oBatchMode=yes root@${DEVICE_HOSTNAME} passwd -d agl-driver",
-        "CREATE_BUNDLE_FOLDER": "ssh -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} mkdir -p /tmp/${appName}/data",
-        "COPY_PLATFORM_ID_TO_DEVICE": "scp -P ${CONTAINER_SSH_PORT} -r ${PLATFORM_ID_DIR}/default_config.json agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/",
-        "COPY_ASSETS_TO_DEVICE": "scp -P ${CONTAINER_SSH_PORT} -r ${localPath}/* agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/data/flutter_assets",
-        "DELETE_APP_FOLDER": "ssh -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} rm -rf /tmp/${appName}"
+        "DELETE_USER_PWD": "ssh -oStrictHostKeyChecking=no -p ${CONTAINER_SSH_PORT} -t -oBatchMode=yes root@${DEVICE_HOSTNAME} passwd -d agl-driver",
+        "CREATE_BUNDLE_FOLDER": "ssh -oStrictHostKeyChecking=no -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} mkdir -p /tmp/${appName}/data",
+        "COPY_PLATFORM_ID_TO_DEVICE": "scp -oStrictHostKeyChecking=no -P ${CONTAINER_SSH_PORT} -r ${PLATFORM_ID_DIR}/default_config.json agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/",
+        "COPY_ASSETS_TO_DEVICE": "scp -oStrictHostKeyChecking=no -P ${CONTAINER_SSH_PORT} -r ${localPath}/* agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/data/flutter_assets",
+        "DELETE_APP_FOLDER": "ssh -oStrictHostKeyChecking=no -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} rm -rf /tmp/${appName}"
     },
     "runtime": {
         "config": {
         "postBuild": "bash -c \"${DELETE_USER_PWD}\"",
         "install": "bash -c \"${CREATE_BUNDLE_FOLDER} && ${COPY_PLATFORM_ID_TO_DEVICE} && ${COPY_ASSETS_TO_DEVICE}\"",
         "uninstall": "bash -c \"${DELETE_APP_FOLDER}\"",
-        "runDebug": "bash -c \"ssh -t -t -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} ${FLUTTER_AUTO_EXE}\"",
+        "runDebug": "bash -c \"ssh -oStrictHostKeyChecking=no -t -t -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} ${FLUTTER_AUTO_EXE}\"",
         "forwardPort": null,
         "forwardPortSuccessRegex": null,
         "screenshot": null
     }
-}
\ No newline at end of file
+}
index dba5a88..20e20e0 100644 (file)
         "DEVICE_HOSTNAME": "localhost",
         "FLUTTER_AUTO_EXE": "flutter-auto --j=/tmp/${appName}/default_config.json --b=/tmp/${appName}",
         "PING_CMD": "(echo >/dev/tcp/localhost/${CONTAINER_SSH_PORT}) &>/dev/null && echo open || echo closed",
-        "DELETE_USER_PWD": "ssh -p ${CONTAINER_SSH_PORT} -t -oBatchMode=yes root@${DEVICE_HOSTNAME} passwd -d agl-driver",
-        "CREATE_BUNDLE_FOLDER": "ssh -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} mkdir -p /tmp/${appName}/data",
-        "COPY_PLATFORM_ID_TO_DEVICE": "scp -P ${CONTAINER_SSH_PORT} -r ${PLATFORM_ID_DIR}/default_config.json agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/",
-        "COPY_ASSETS_TO_DEVICE": "scp -P ${CONTAINER_SSH_PORT} -r ${localPath}/* agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/data/flutter_assets",
-        "DELETE_APP_FOLDER": "ssh -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} rm -rf /tmp/${appName}"
+        "DELETE_USER_PWD": "ssh -oStrictHostKeyChecking=no -p ${CONTAINER_SSH_PORT} -t -oBatchMode=yes root@${DEVICE_HOSTNAME} passwd -d agl-driver",
+        "CREATE_BUNDLE_FOLDER": "ssh -oStrictHostKeyChecking=no -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} mkdir -p /tmp/${appName}/data",
+        "COPY_PLATFORM_ID_TO_DEVICE": "scp -oStrictHostKeyChecking=no -P ${CONTAINER_SSH_PORT} -r ${PLATFORM_ID_DIR}/default_config.json agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/",
+        "COPY_ASSETS_TO_DEVICE": "scp -oStrictHostKeyChecking=no -P ${CONTAINER_SSH_PORT} -r ${localPath}/* agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/data/flutter_assets",
+        "DELETE_APP_FOLDER": "ssh -oStrictHostKeyChecking=no -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} rm -rf /tmp/${appName}"
     },
     "runtime": {
         "config": {
         "postBuild": "bash -c \"${DELETE_USER_PWD}\"",
         "install": "bash -c \"${CREATE_BUNDLE_FOLDER} && ${COPY_PLATFORM_ID_TO_DEVICE} && ${COPY_ASSETS_TO_DEVICE}\"",
         "uninstall": "bash -c \"${DELETE_APP_FOLDER}\"",
-        "runDebug": "bash -c \"ssh -t -t -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} ${FLUTTER_AUTO_EXE}\"",
+        "runDebug": "bash -c \"ssh -oStrictHostKeyChecking=no -t -t -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} ${FLUTTER_AUTO_EXE}\"",
         "forwardPort": null,
         "forwardPortSuccessRegex": null,
         "screenshot": null
     }
-}
\ No newline at end of file
+}
diff --git a/meta-agl-flutter/tools/configs/agl-qemu-ricefish-18.0.0.json b/meta-agl-flutter/tools/configs/agl-qemu-ricefish-18.0.0.json
new file mode 100644 (file)
index 0000000..c03e347
--- /dev/null
@@ -0,0 +1,112 @@
+{
+    "id": "agl-qemu-ricefish-18.0.0",
+    "load": true,
+    "supported_archs": [
+        "x86_64"
+    ],
+    "supported_host_types": [
+        "darwin",
+        "ubuntu",
+        "fedora"
+    ],
+    "flutter_runtime": "debug",
+    "type": "qemu",
+    "env": {
+        "RELEASE_NAME": "ricefish",
+        "RELEASE_VERSION": "18.0.0",
+        "FLUTTER_VERSION": "3.24.1",
+        "QEMU_IMAGE": "agl-ivi-demo-flutter-qemux86-64.wic.vmdk",
+        "FLUTTER_DEBUG_PORT": "1234",
+        "FLUTTER_OBSERVATORY_HOST": "0.0.0.0",
+        "CONTAINER_SSH_PORT": "2222",
+        "DEVICE_HOSTNAME": "localhost",
+        "SCP_PREFIX": "scp -oStrictHostKeyChecking=no -P ${CONTAINER_SSH_PORT}",
+        "SSH_PREFIX": "ssh -oStrictHostKeyChecking=no -oBatchMode=yes -p ${CONTAINER_SSH_PORT}",
+        "FLUTTER_AUTO_EXE": "LIBCAMERA_LOG_LEVELS=*:ERROR XDG_RUNTIME_DIR=/run/user/1001/ flutter-auto --j=/tmp/${appName}/default_config.json --b=/tmp/${appName}",
+        "PING_CMD": "(echo >/dev/tcp/localhost/${CONTAINER_SSH_PORT}) &>/dev/null && echo open || echo closed",
+        "DELETE_USER_PWD": "${SSH_PREFIX} -t root@${DEVICE_HOSTNAME} passwd -d agl-driver",
+        "STOP_SERVICE": "${SSH_PREFIX} -t root@${DEVICE_HOSTNAME} systemctl stop flutter-ics-homescreen",
+        "DEBUG_ARTIFACT_PATH": "/usr/share/flutter/${FLUTTER_VERSION}/debug",
+        "CREATE_ICUDTL_SYMLINK": "${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} ln -sf ${DEBUG_ARTIFACT_PATH}/data/icudtl.dat /tmp/${appName}/data/icudtl.dat",
+        "CREATE_ENGINE_SYMLINK": "${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} ln -sf ${DEBUG_ARTIFACT_PATH}/lib/libflutter_engine.so /tmp/${appName}/lib/libflutter_engine.so",
+        "CREATE_BUNDLE_FOLDER": "${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} mkdir -p /tmp/${appName}{/data/flutter_assets,/lib}",
+        "COPY_PLATFORM_ID_TO_DEVICE": "${SCP_PREFIX} -r ${PLATFORM_ID_DIR}/default_config.json agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/",
+        "COPY_ASSETS_TO_DEVICE": "${SCP_PREFIX} -r ${localPath}/* agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/data/flutter_assets",
+        "DELETE_APP_FOLDER": "${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} rm -rf /tmp/${appName}"
+    },
+    "runtime": {
+        "pre-requisites": {
+            "x86_64": {
+                "ubuntu": {
+                    "cmds": [
+                        "sudo apt install -y  qemu-system-x86-64"
+                    ]
+                },
+                "fedora": {
+                    "cmds": [
+                        "sudo dnf install -y qemu"
+                    ]
+                }
+            }
+        },
+        "config": {
+            "view": [
+                {
+                    "window_type": "BG",
+                    "width": 1920,
+                    "height": 1080
+                }
+            ]
+        },
+        "artifacts": {
+            "http": {
+                "url": "https://download.automotivelinux.org/AGL/release/${RELEASE_NAME}/${RELEASE_VERSION}",
+                "artifacts": {
+                    "x86_64": [
+                        {
+                            "endpoint": "/qemux86-64/deploy/images/qemux86-64/${QEMU_IMAGE}.xz"
+                        }
+                    ]
+                }
+            }
+        },
+        "qemu": {
+            "cmd": "qemu-system-${FORMAL_MACHINE_ARCH}",
+            "x86_64": {
+                "image": "${QEMU_IMAGE}",
+                "args": "-m 2048 ${QEMU_EXTRA} -hda ${QEMU_IMAGE} -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt -vga virtio -device virtio-rng-pci -serial mon:stdio -serial null -device intel-hda -device hda-duplex -device virtio-net-pci,netdev=net0,mac=${RANDOM_MAC} -netdev user,id=net0,hostfwd=tcp::${CONTAINER_SSH_PORT}-:22,hostfwd=tcp::${FLUTTER_DEBUG_PORT}-:${FLUTTER_DEBUG_PORT}"
+            },
+            "extra": {
+                "darwin": "-smp cpus=8,sockets=1,cores=8,threads=1",
+                "ubuntu": "-bios OVMF.fd",
+                "fedora": "-bios /usr/share/edk2/ovmf/OVMF_CODE.fd"
+            }
+        },
+        "post_cmds": [
+            {
+                "cwd": "${PLATFORM_ID_DIR}",
+                "cmds": [
+                    "bash -c \"rm ${QEMU_IMAGE}|true\"",
+                    "unxz --keep ${QEMU_IMAGE}.xz"
+                ]
+            }
+        ]
+    },
+    "overwrite-existing": true,
+    "custom-device": {
+        "id": "agl-qemu-${RELEASE_NAME}",
+        "label": "AGL ${RELEASE_NAME}-${RELEASE_VERSION} QEMU Image",
+        "sdkNameAndVersion": "qemu-${RELEASE_NAME} ${RELEASE_VERSION}",
+        "platform": "linux-x64",
+        "enabled": true,
+        "ping": "bash -c \"${PING_CMD}\"",
+        "pingSuccessRegex": "open",
+        "postBuild": "bash -c \"${DELETE_USER_PWD}; ${STOP_SERVICE}\"; ",
+        "install": "bash -c \"${CREATE_BUNDLE_FOLDER} && ${COPY_PLATFORM_ID_TO_DEVICE} && ${COPY_ASSETS_TO_DEVICE} && ${CREATE_ICUDTL_SYMLINK} && ${CREATE_ENGINE_SYMLINK}\"",
+        "uninstall": "bash -c \"${DELETE_APP_FOLDER}\"",
+        "runDebug": "bash -c \"${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} ${FLUTTER_AUTO_EXE}\"",
+        "forwardPort": null,
+        "forwardPortSuccessRegex": null,
+        "screenshot": null
+    }
+}
diff --git a/meta-agl-flutter/tools/configs/agl-qemu-ricefish-18.0.1.json b/meta-agl-flutter/tools/configs/agl-qemu-ricefish-18.0.1.json
new file mode 100644 (file)
index 0000000..fde1e13
--- /dev/null
@@ -0,0 +1,112 @@
+{
+    "id": "agl-qemu-ricefish-18.0.1",
+    "load": true,
+    "supported_archs": [
+        "x86_64"
+    ],
+    "supported_host_types": [
+        "darwin",
+        "ubuntu",
+        "fedora"
+    ],
+    "flutter_runtime": "debug",
+    "type": "qemu",
+    "env": {
+        "RELEASE_NAME": "ricefish",
+        "RELEASE_VERSION": "18.0.1",
+        "FLUTTER_VERSION": "3.24.1",
+        "QEMU_IMAGE": "agl-ivi-demo-flutter-qemux86-64.wic.vmdk",
+        "FLUTTER_DEBUG_PORT": "1234",
+        "FLUTTER_OBSERVATORY_HOST": "0.0.0.0",
+        "CONTAINER_SSH_PORT": "2222",
+        "DEVICE_HOSTNAME": "localhost",
+        "SCP_PREFIX": "scp -oStrictHostKeyChecking=no -P ${CONTAINER_SSH_PORT}",
+        "SSH_PREFIX": "ssh -oStrictHostKeyChecking=no -oBatchMode=yes -p ${CONTAINER_SSH_PORT}",
+        "FLUTTER_AUTO_EXE": "LIBCAMERA_LOG_LEVELS=*:ERROR XDG_RUNTIME_DIR=/run/user/1001/ flutter-auto --j=/tmp/${appName}/default_config.json --b=/tmp/${appName}",
+        "PING_CMD": "(echo >/dev/tcp/localhost/${CONTAINER_SSH_PORT}) &>/dev/null && echo open || echo closed",
+        "DELETE_USER_PWD": "${SSH_PREFIX} -t root@${DEVICE_HOSTNAME} passwd -d agl-driver",
+        "STOP_SERVICE": "${SSH_PREFIX} -t root@${DEVICE_HOSTNAME} systemctl stop flutter-ics-homescreen",
+        "DEBUG_ARTIFACT_PATH": "/usr/share/flutter/${FLUTTER_VERSION}/debug",
+        "CREATE_ICUDTL_SYMLINK": "${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} ln -sf ${DEBUG_ARTIFACT_PATH}/data/icudtl.dat /tmp/${appName}/data/icudtl.dat",
+        "CREATE_ENGINE_SYMLINK": "${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} ln -sf ${DEBUG_ARTIFACT_PATH}/lib/libflutter_engine.so /tmp/${appName}/lib/libflutter_engine.so",
+        "CREATE_BUNDLE_FOLDER": "${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} mkdir -p /tmp/${appName}{/data/flutter_assets,/lib}",
+        "COPY_PLATFORM_ID_TO_DEVICE": "${SCP_PREFIX} -r ${PLATFORM_ID_DIR}/default_config.json agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/",
+        "COPY_ASSETS_TO_DEVICE": "${SCP_PREFIX} -r ${localPath}/* agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/data/flutter_assets",
+        "DELETE_APP_FOLDER": "${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} rm -rf /tmp/${appName}"
+    },
+    "runtime": {
+        "pre-requisites": {
+            "x86_64": {
+                "ubuntu": {
+                    "cmds": [
+                        "sudo apt install -y  qemu-system-x86-64"
+                    ]
+                },
+                "fedora": {
+                    "cmds": [
+                        "sudo dnf install -y qemu"
+                    ]
+                }
+            }
+        },
+        "config": {
+            "view": [
+                {
+                    "window_type": "BG",
+                    "width": 1920,
+                    "height": 1080
+                }
+            ]
+        },
+        "artifacts": {
+            "http": {
+                "url": "https://download.automotivelinux.org/AGL/release/${RELEASE_NAME}/${RELEASE_VERSION}",
+                "artifacts": {
+                    "x86_64": [
+                        {
+                            "endpoint": "/qemux86-64/deploy/images/qemux86-64/${QEMU_IMAGE}.xz"
+                        }
+                    ]
+                }
+            }
+        },
+        "qemu": {
+            "cmd": "qemu-system-${FORMAL_MACHINE_ARCH}",
+            "x86_64": {
+                "image": "${QEMU_IMAGE}",
+                "args": "-m 2048 ${QEMU_EXTRA} -hda ${QEMU_IMAGE} -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt -vga virtio -device virtio-rng-pci -serial mon:stdio -serial null -device intel-hda -device hda-duplex -device virtio-net-pci,netdev=net0,mac=${RANDOM_MAC} -netdev user,id=net0,hostfwd=tcp::${CONTAINER_SSH_PORT}-:22,hostfwd=tcp::${FLUTTER_DEBUG_PORT}-:${FLUTTER_DEBUG_PORT}"
+            },
+            "extra": {
+                "darwin": "-smp cpus=8,sockets=1,cores=8,threads=1",
+                "ubuntu": "-bios OVMF.fd",
+                "fedora": "-bios /usr/share/edk2/ovmf/OVMF_CODE.fd"
+            }
+        },
+        "post_cmds": [
+            {
+                "cwd": "${PLATFORM_ID_DIR}",
+                "cmds": [
+                    "bash -c \"rm ${QEMU_IMAGE}|true\"",
+                    "unxz --keep ${QEMU_IMAGE}.xz"
+                ]
+            }
+        ]
+    },
+    "overwrite-existing": true,
+    "custom-device": {
+        "id": "agl-qemu-${RELEASE_NAME}",
+        "label": "AGL ${RELEASE_NAME}-${RELEASE_VERSION} QEMU Image",
+        "sdkNameAndVersion": "qemu-${RELEASE_NAME} ${RELEASE_VERSION}",
+        "platform": "linux-x64",
+        "enabled": true,
+        "ping": "bash -c \"${PING_CMD}\"",
+        "pingSuccessRegex": "open",
+        "postBuild": "bash -c \"${DELETE_USER_PWD}; ${STOP_SERVICE}\"; ",
+        "install": "bash -c \"${CREATE_BUNDLE_FOLDER} && ${COPY_PLATFORM_ID_TO_DEVICE} && ${COPY_ASSETS_TO_DEVICE} && ${CREATE_ICUDTL_SYMLINK} && ${CREATE_ENGINE_SYMLINK}\"",
+        "uninstall": "bash -c \"${DELETE_APP_FOLDER}\"",
+        "runDebug": "bash -c \"${SSH_PREFIX} agl-driver@${DEVICE_HOSTNAME} ${FLUTTER_AUTO_EXE}\"",
+        "forwardPort": null,
+        "forwardPortSuccessRegex": null,
+        "screenshot": null
+    }
+}
index 943bca0..977a206 100644 (file)
   "env": {
     "HOMESCREEN_SRC_DIR": "${FLUTTER_WORKSPACE}/app/ivi-homescreen",
     "HOMESCREEN_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/ivi-homescreen/build",
-    "HOMESCREEN_CMAKE_ARGS": "-DCMAKE_BUILD_TYPE=Debug -DEXE_OUTPUT_NAME=flutter-auto -DSANITIZE_ADDRESS=OFF -DENABLE_DLT=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_CRASH_HANDLER=OFF -DLLVM_ROOT=/usr -DBUILD_PLUGIN_FILAMENT_VIEW=OFF -DENABLE_IVI_SHELL_CLIENT=OFF -DENABLE_XDG_CLIENT=ON -DENABLE_AGL_CLIENT=ON -DENABLE_LTO=ON -DDEBUG_PLATFORM_MESSAGES=OFF -DBUILD_BACKEND_WAYLAND_EGL=ON -DBUILD_BACKEND_WAYLAND_VULKAN=OFF -DBUILD_EGL_TRANSPARENCY=ON -DBUILD_EGL_ENABLE_3D=ON -DBUILD_EGL_ENABLE_MULTISAMPLE=ON -DBUILD_PLUGIN_PDF=OFF -DBUILD_PLUGIN_FILAMENT_VIEW=OFF -DBUILD_PLUGIN_NAV_RENDER_VIEW=ON -DBUILD_PLUGIN_LAYER_PLAYGROUND_VIEW=ON -DBUILD_PLUGIN_AUDIOPLAYERS_LINUX=ON -DBUILD_PLUGIN_URL_LAUNCHER=ON -DBUILD_PLUGIN_FILE_SELECTOR=ON -DBUILD_PLUGIN_CAMERA=OFF -DBUILD_PLUGIN_GO_ROUTER=ON -DBUILD_PLUGIN_SECURE_STORAGE=ON",
-    "HOMESCREEN_EXE": "SPDLOG_LEVEL=debug ${HOMESCREEN_BUILD_DIR}/shell/flutter-auto --j=${PLATFORM_ID_DIR_RELATIVE}/default_config.json --b=${PLATFORM_ID_DIR_RELATIVE}",
+    "HOMESCREEN_CMAKE_ARGS": "-DCMAKE_BUILD_TYPE=Debug -DEXE_OUTPUT_NAME=flutter-auto -DSANITIZE_ADDRESS=OFF -DENABLE_DLT=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_CRASH_HANDLER=OFF -DLLVM_ROOT=/usr -DPLUGINS_DIR=${FLUTTER_WORKSPACE}/app/ivi-homescreen-plugins -DENABLE_IVI_SHELL_CLIENT=OFF -DENABLE_XDG_CLIENT=ON -DENABLE_AGL_SHELL_CLIENT=ON -DENABLE_LTO=ON -DDEBUG_PLATFORM_MESSAGES=OFF -DBUILD_BACKEND_WAYLAND_EGL=ON -DBUILD_BACKEND_WAYLAND_VULKAN=OFF -DBUILD_EGL_TRANSPARENCY=ON -DBUILD_EGL_ENABLE_3D=ON -DBUILD_EGL_ENABLE_MULTISAMPLE=ON -DBUILD_PLUGIN_PDF=OFF -DBUILD_PLUGIN_FILAMENT_VIEW=OFF -DBUILD_PLUGIN_NAV_RENDER_VIEW=ON -DBUILD_PLUGIN_AUDIOPLAYERS_LINUX=ON -DBUILD_PLUGIN_URL_LAUNCHER=ON -DBUILD_PLUGIN_FILE_SELECTOR=ON -DBUILD_PLUGIN_CAMERA=OFF -DBUILD_PLUGIN_GO_ROUTER=ON -DBUILD_PLUGIN_SECURE_STORAGE=ON -DBUILD_PLUGIN_DESKTOP_WINDOW_LINUX=ON -DBUILD_WATCHDOG=OFF",
+    "HOMESCREEN_EXE": "SPDLOG_LEVEL=debug ${HOMESCREEN_BUILD_DIR}/shell/flutter-auto -${PLATFORM_ID_DIR_RELATIVE}",
     "PING_CMD": "loginctl show-session $(awk '/tty/ {print $1}' <(loginctl)) -p Type",
     "CREATE_BUNDLE_FOLDER": "mkdir -p ${PLATFORM_ID_DIR_RELATIVE}/data",
-    "COPY_PLATFORM_ID_TO_BUNDLE_FOLDER": "cp -r ${PLATFORM_ID_DIR}/default_config.json ${PLATFORM_ID_DIR_RELATIVE}/",
+    "COPY_PLATFORM_ID_TO_BUNDLE_FOLDER": "cp -r ${PLATFORM_ID_DIR}/config.toml ${PLATFORM_ID_DIR_RELATIVE}/",
     "COPY_BUNDLE_FOLDER_TO_PLATOFRM_ID": "cp -r ${BUNDLE_FOLDER}/* ${PLATFORM_ID_DIR_RELATIVE}/",
     "CREATE_ASSET_SYMLINK": "ln -rsf build/flutter_assets ${PLATFORM_ID_DIR_RELATIVE}/data/flutter_assets",
     "STAGE_BUNDLE_FOLDER": "${CREATE_BUNDLE_FOLDER} && ${COPY_PLATFORM_ID_TO_BUNDLE_FOLDER} && ${COPY_BUNDLE_FOLDER_TO_PLATOFRM_ID} && ${CREATE_ASSET_SYMLINK}"
-  },  
+  },
   "runtime": {
     "config": {
-      "view": [
-        {
-          "width": 1920,
-          "height": 1080,
-          "cursor_theme": "DMZ-White",
-          "fullscreen": false
-        }
-      ]
+      "global": {"cursor_theme": "DMZ-White"},
+      "view": {"width": 1024, "height": 768}
     },
     "pre-requisites": {
       "x86_64": {
         "ubuntu": {
           "cmds": [
             "sudo snap install cmake --classic",
+            "pip3 install clang",
             "sudo add-apt-repository -y ppa:kisak/kisak-mesa",
             "sudo apt update -y",
             "sudo apt install lsb-release wget software-properties-common gnupg apt-file",
             "sudo apt update",
             "sudo apt install -y libwayland-dev wayland-protocols mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils libxkbcommon-dev ninja-build",
             "sudo apt install -y build-essential libvulkan-dev vulkan-tools vulkan-validationlayers vulkan-utils libtool libsecret-1-dev libsdl2-dev libjpeg-dev zenity",
-            "sudo apt install -y libllvm-ocaml-dev llvm llvm-dev llvm-runtime clang clang-tools libclang-dev libclang1 clang-format python3-clang clangd clang-tidy lldb lld libc++-dev libc++abi-dev libunwind-dev libc++1 libc++abi1",
+            "sudo apt install -y libllvm-ocaml-dev llvm llvm-dev llvm-runtime clang clang-tools libclang-dev libclang1 clang-format clangd clang-tidy lldb lld libc++-dev libc++abi-dev libunwind-dev libc++1 libc++abi1",
             "sudo apt autoremove -y",
             "sudo apt clean -y",
             "cmake --version",
@@ -73,7 +68,7 @@
         "cwd": "${HOMESCREEN_BUILD_DIR}",
         "cmds": [
           "cmake -GNinja ${HOMESCREEN_SRC_DIR} ${HOMESCREEN_CMAKE_ARGS}",
-          "ninja homescreen"
+          "ninja flutter-auto"
         ]
       }
     ]
@@ -81,7 +76,7 @@
   "overwrite-existing": true,
   "custom-device": {
     "id": "desktop-auto",
-    "label": "Toyota AGL flutter-auto",
+    "label": "Toyota flutter-auto",
     "sdkNameAndVersion": "flutter-auto x86_64",
     "platform": "linux-x64",
     "enabled": true,
@@ -95,4 +90,4 @@
     "forwardPortSuccessRegex": null,
     "screenshot": null
   }
-}
\ No newline at end of file
+}