Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v6] ivi-homescreen: new package
@ 2024-01-06 23:01 Adam Duskett
  2024-01-06 23:01 ` [Buildroot] [PATCH v6] package/ivi-homescreen: " Adam Duskett
  0 siblings, 1 reply; 3+ messages in thread
From: Adam Duskett @ 2024-01-06 23:01 UTC (permalink / raw)
  To: buildroot; +Cc: Adam Duskett

Much like flutter-pi, this package is a Flutter embedder used to run Flutter
applications. However, unlike Flutter-pi, this package requires a Wayland
compositor to run, which flutter-pi does not support. Furthermore, flutter-pi
lacks several plugins and features that ivi-homescreen supports, such as:
  - Dart VM console redirection
  - DLT logging
  - Accessibility
  - Compositor region
  - Compositor surface
  - Desktop Window
  - Go Router
  - Isolate
  - Keyboard Manager
  - Layer Playground
  - Mouse Cursor
  - PackageInfo
  - Platform
  - Platform Views
  - Restoration

The following plugins and options are hardcoded to off:
  - Crash handler: Requires a newer version of sentry-native.
  - File selector: Requires the zenity package.
  - Firebase-core: Requires the firebase-cpp-sdk package.
  - URL Launcher: Requires a runtime-dependency on xdg-open.
  - BUILD_TEXTURE_NAVI_RENDER_EGL: Failes to build.
  - BUILD_TEXTURE_TEST_EGL: Fails to build.
  - ENABLE_AGL_CLIENT: Used for Automitve Grade Linux (AGL).

The ENABLE_XDG_CLIENT=ON option is a requirement to run Flutter apps.
If this option is disabled, ivi-homescreen segfaults when starting an
application.

Finally, there is a need for a patch that fixes the audio-players plugin:
If the audio-players plugin is the only plugin selected, several compilation
errors occure because of undeclared definitions, as the standard_method_codec.h
header file is missing.

Upstream-status: https://github.com/toyota-connected/ivi-homescreen/pull/133

This package has been tested on a x86_64 host with an AMD Ryzen 9 6900HS
with Docker 24.0.5:
  - The following distributions:
    - Fedora 39: Host system
    - Ubuntu 22.04: Docker
    - Debian 11: Docker

  - The following targets:
    - BR2_aarch64
    - BR2_arm
    - BR2_x86_64

With the following defconfig:
```
BR2_x86_64=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_GLIBC_STABLE=y
BR2_CCACHE=y
BR2_INIT_SYSTEMD=y
BR2_TARGET_GENERIC_GETTY_PORT="tty1"
BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
BR2_GENERATE_LOCALE="en_US.UTF-8"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/pc/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pc/post-image-efi.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.24"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/pc/linux.config"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_FOOT=y
BR2_PACKAGE_IVI_HOMESCREEN=y
BR2_PACKAGE_IVI_HOMESCREEN_DART_VM_LOGGING=y
BR2_PACKAGE_IVI_HOMESCREEN_DLT=y
BR2_PACKAGE_IVI_HOMESCREEN_XDG_CLIENT=y
BR2_PACKAGE_IVI_HOMESCREEN_AGL_CLIENT=y
BR2_PACKAGE_IVI_HOMESCREEN_IVI_SHELL=y
BR2_PACKAGE_IVI_HOMESCREEN_EGL_TRANSPARENCY=y
BR2_PACKAGE_IVI_HOMESCREEN_EGL_ENABLE_3D=y
BR2_PACKAGE_IVI_HOMESCREEN_EGL_MULTISAMPLE=y
BR2_PACKAGE_IVI_HOMESCREEN_ACCESSIBILITY_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_COMP_REGION_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_COMP_SURF_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_DESKTOP_WINDOW_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_GO_ROUTER_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_INTEGRATION_TEST_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_ISOLATE_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_KEYBOARD_MANAGER_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_KEY_EVENT_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_LAYER_PLAYGROUND_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_LOGGING_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_MOUSE_CURSOR_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_PACKAGE_INFO_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_VIEWS_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_RESTORATION_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_TEXT_INPUT_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_URL_LAUNCHER_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_AUDIO_PLAYERS=y
BR2_PACKAGE_IVI_HOMESCREEN_FLUTTER_SECURE_STORAGE_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_GOOGLE_SIGN_IN_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN=y
BR2_PACKAGE_IVI_HOMESCREEN_OPENGL_TEXTURE_PLUGIN=y
BR2_PACKAGE_SWAY=y
BR2_PACKAGE_SWAY_SWAYBAR=y
BR2_PACKAGE_SWAY_SWAYBAR_TRAY=y
BR2_PACKAGE_SWAY_SWAYNAG=y
BR2_PACKAGE_FLUTTER_GALLERY=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL=y
BR2_PACKAGE_MESA3D_OSMESA_GALLIUM=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_ACPID=y
BR2_PACKAGE_FLUTTER_ENGINE=y
BR2_PACKAGE_CONNMAN=y
BR2_PACKAGE_CONNMAN_WIFI=y
BR2_PACKAGE_CONNMAN_CLIENT=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="512M"
BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_X86_64_EFI=y
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
```

The image is then booted using qemu with the following
command:
```
LIBGL_DRIVERS_PATH=/usr/lib64/dri \
FONTCONFIG_PATH=/etc/fonts \
qemu-system-x86_64 \
  -enable-kvm \
  -M pc \
  -cpu host \
  -m 1024M \
  -bios /usr/share/OVMF/OVMF_CODE.fd \
  -drive file=output/images/disk.img,if=virtio,format=raw \
  -net nic,model=virtio \
  -net user \
  -device virtio-vga-gl \
  -display gtk,gl=es,show-cursor=on \
  -usb \
  -device usb-ehci,id=ehci \
  -device usb-tablet,bus=usb-bus.0
```

After logging in, type:
 - mkdir -p /tmp/sway && export XDG_RUNTIME_DIR=/tmp/sway && sway
 - bring up a terminal with `windows key + return`
 - Type `homescreen --b=/usr/share/flutter/gallery/release/`


Changelog:
- Removed how I tested the package in the commit log [Yann]
- Added the explicity dependency list of flutter and flutter-engine [Yann]
- Removed XDG, and AGL clients as options.
- Enabled XDG client by default.
- Added 0001-add-missing-headers-to-the-audio-players-plugin.patch
- Select BR2_PACKAGE_LIBCURL_FORCE_TLS and BR2_PACKAGE_OPENSSL if the
  BR2_PACKAGE_IVI_HOMESCREEN_GOOGLE_SIGN_IN_PLUGIN is selected. [Yann]
- Added dependencies of libegl, mesa3d, and libdrm if those backends are
  enabled. [Yann]
- Cleaned up licensing. [Yann]
- Cleaned up and reduced the amount of ifeq else endif blocks [Yann]
- Disabled the URL Launcher plugin.
- Added help menus to as many plugins as I could.
- Removed BR2_PACKAGE_IVI_HOMESCREEN_EGL_TEXTURE [Yann]

Adam Duskett (1):
  package/ivi-homescreen: new package

 DEVELOPERS                                    |   1 +
 package/Config.in                             |   1 +
 ...-headers-to-the-audio-players-plugin.patch |  82 ++++++
 package/ivi-homescreen/Config.in              | 268 ++++++++++++++++++
 package/ivi-homescreen/ivi-homescreen.hash    |  21 ++
 package/ivi-homescreen/ivi-homescreen.mk      | 135 +++++++++
 6 files changed, 508 insertions(+)
 create mode 100644 package/ivi-homescreen/0001-add-missing-headers-to-the-audio-players-plugin.patch
 create mode 100644 package/ivi-homescreen/Config.in
 create mode 100644 package/ivi-homescreen/ivi-homescreen.hash
 create mode 100644 package/ivi-homescreen/ivi-homescreen.mk

-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH v6] package/ivi-homescreen: new package
  2024-01-06 23:01 [Buildroot] [PATCH v6] ivi-homescreen: new package Adam Duskett
@ 2024-01-06 23:01 ` Adam Duskett
  2024-01-10 21:37   ` Yann E. MORIN
  0 siblings, 1 reply; 3+ messages in thread
From: Adam Duskett @ 2024-01-06 23:01 UTC (permalink / raw)
  To: buildroot; +Cc: Adam Duskett

Much like flutter-pi, this package is a Flutter embedder used to run Flutter
applications. However, unlike Flutter-pi, this package requires a Wayland
compositor to run, which flutter-pi does not support. Furthermore, flutter-pi
lacks several plugins and features that ivi-homescreen supports, such as:
  - Dart VM console redirection
  - DLT logging
  - Accessibility
  - Compositor region
  - Compositor surface
  - Desktop Window
  - Go Router
  - Isolate
  - Keyboard Manager
  - Layer Playground
  - Mouse Cursor
  - PackageInfo
  - Platform
  - Platform Views
  - Restoration

The following plugins and options are hardcoded to off:
  - Crash handler: Requires a newer version of sentry-native.
  - File selector: Requires the zenity package.
  - Firebase-core: Requires the firebase-cpp-sdk package.
  - URL Launcher: Requires a runtime-dependency on xdg-open.
  - BUILD_TEXTURE_NAVI_RENDER_EGL: Failes to build.
  - BUILD_TEXTURE_TEST_EGL: Fails to build.
  - ENABLE_AGL_CLIENT: Used for Automitve Grade Linux (AGL).

The ENABLE_XDG_CLIENT=ON option is a requirement to run Flutter apps.
If this option is disabled, ivi-homescreen segfaults when starting an
application.

Finally, there is a need for a patch that fixes the audio-players plugin:
If the audio-players plugin is the only plugin selected, several compilation
errors occure because of undeclared definitions, as the standard_method_codec.h
header file is missing.

Upstream-status: https://github.com/toyota-connected/ivi-homescreen/pull/133

This package has been tested on a x86_64 host with an AMD Ryzen 9 6900HS
with Docker 24.0.5:
  - The following distributions:
    - Fedora 39: Host system
    - Ubuntu 22.04: Docker
    - Debian 11: Docker

  - The following targets:
    - BR2_aarch64
    - BR2_arm
    - BR2_x86_64

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
---
v5 -> v6:
  - Removed how I tested the package in the commit log [Yann]
  - Added the explicity dependency list of flutter and flutter-engine [Yann]
  - Removed xdg, and agl clients as options.
  - Enabled XDG client by default.
  - Added 0001-add-missing-headers-to-the-audio-players-plugin.patch
  - Select BR2_PACKAGE_LIBCURL_FORCE_TLS and BR2_PACKAGE_OPENSSL if the
    BR2_PACKAGE_IVI_HOMESCREEN_GOOGLE_SIGN_IN_PLUGIN is selected. [Yann]
  - Added dependencies of libegl, mesa3d, and libdrm if those backends are
    enabled. [Yann]
  - Cleaned up licensing. [Yann]
  - Cleaned up and reduced the amount of ifeq else endif blocks [Yann]
  - Disabled the URL Launcher plugin.
  - Added help menus to as many plugins as I could.
  - Removed BR2_PACKAGE_IVI_HOMESCREEN_EGL_TEXTURE [Yann]


 DEVELOPERS                                    |   1 +
 package/Config.in                             |   1 +
 ...-headers-to-the-audio-players-plugin.patch |  82 ++++++
 package/ivi-homescreen/Config.in              | 268 ++++++++++++++++++
 package/ivi-homescreen/ivi-homescreen.hash    |  21 ++
 package/ivi-homescreen/ivi-homescreen.mk      | 135 +++++++++
 6 files changed, 508 insertions(+)
 create mode 100644 package/ivi-homescreen/0001-add-missing-headers-to-the-audio-players-plugin.patch
 create mode 100644 package/ivi-homescreen/Config.in
 create mode 100644 package/ivi-homescreen/ivi-homescreen.hash
 create mode 100644 package/ivi-homescreen/ivi-homescreen.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index d7543247f2..94a89c63d5 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -35,6 +35,7 @@ F:	package/flutter-engine/
 F:	package/flutter-gallery/
 F:	package/flutter-pi/
 F:	package/flutter-sdk-bin/
+F:	package/ivi-homescreen/
 F:	package/libutempter/
 F:	package/tllist/
 F:	support/testing/tests/package/test_flutter.py
diff --git a/package/Config.in b/package/Config.in
index f5d0c06334..0009256298 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -322,6 +322,7 @@ comment "Graphic applications"
 	source "package/glmark2/Config.in"
 	source "package/glslsandbox-player/Config.in"
 	source "package/gnuplot/Config.in"
+	source "package/ivi-homescreen/Config.in"
 	source "package/jhead/Config.in"
 	source "package/kmscube/Config.in"
 	source "package/libva-utils/Config.in"
diff --git a/package/ivi-homescreen/0001-add-missing-headers-to-the-audio-players-plugin.patch b/package/ivi-homescreen/0001-add-missing-headers-to-the-audio-players-plugin.patch
new file mode 100644
index 0000000000..4034dd9af8
--- /dev/null
+++ b/package/ivi-homescreen/0001-add-missing-headers-to-the-audio-players-plugin.patch
@@ -0,0 +1,82 @@
+From 7e35ea4fbd94a1604907069bb9cc2e2dff4b43c7 Mon Sep 17 00:00:00 2001
+From: Adam Duskett <adam.duskett@amarulasolutions.com>
+Date: Sat, 6 Jan 2024 14:18:56 -0700
+Subject: [PATCH] add missing headers to the audio-players plugin
+
+Fixes flutter::StandardMethodCodec not being declared on the following lines:
+plugins/audio_players/audio_players_registry.cc:83
+plugins/audio_players/audio_players_registry.cc:94
+plugins/audio_players/audio_players_registry.cc:152
+plugins/audio_players/audio_player.cc:257
+plugins/audio_players/audio_player.cc:623
+
+Upstream: https://github.com/toyota-connected/ivi-homescreen/pull/133
+
+Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
+---
+ shell/plugins/audio_players/audio_player.cc           | 3 ++-
+ shell/plugins/audio_players/audio_players.cc          | 4 +++-
+ shell/plugins/audio_players/audio_players_registry.cc | 3 ++-
+ 3 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/shell/plugins/audio_players/audio_player.cc b/shell/plugins/audio_players/audio_player.cc
+index 56027eb..a85e9ae 100644
+--- a/shell/plugins/audio_players/audio_player.cc
++++ b/shell/plugins/audio_players/audio_player.cc
+@@ -20,6 +20,7 @@
+ #include <map>
+ #include <sstream>
+ 
++#include <flutter/standard_method_codec.h>
+ #include <flutter/standard_message_codec.h>
+ 
+ #include <gst/audio/audio.h>
+@@ -639,4 +640,4 @@ void AudioPlayer::OnPlatformMessage(const FlutterPlatformMessage* message,
+   engine->SendPlatformMessageResponse(message->response_handle, result->data(),
+                                       result->size());
+ }
+-}  // namespace Plugins
+\ No newline at end of file
++}  // namespace Plugins
+diff --git a/shell/plugins/audio_players/audio_players.cc b/shell/plugins/audio_players/audio_players.cc
+index 0605576..4290f5a 100644
+--- a/shell/plugins/audio_players/audio_players.cc
++++ b/shell/plugins/audio_players/audio_players.cc
+@@ -19,6 +19,8 @@
+ #include <memory>
+ #include <vector>
+ 
++#include <flutter/standard_method_codec.h>
++
+ #include "audio_player.h"
+ #include "audio_players_registry.h"
+ #include "engine.h"
+@@ -314,4 +316,4 @@ void AudioPlayers::OnPlatformMessage(const FlutterPlatformMessage* message,
+               : "Unknown AudioPlayersLinux error");
+   }
+ }
+-}
+\ No newline at end of file
++}
+diff --git a/shell/plugins/audio_players/audio_players_registry.cc b/shell/plugins/audio_players/audio_players_registry.cc
+index 6c9ef33..00c4f45 100644
+--- a/shell/plugins/audio_players/audio_players_registry.cc
++++ b/shell/plugins/audio_players/audio_players_registry.cc
+@@ -19,6 +19,7 @@
+ #include <memory>
+ #include <mutex>
+ 
++#include <flutter/standard_method_codec.h>
+ #include <flutter/standard_message_codec.h>
+ 
+ #include "audio_player.h"
+@@ -168,4 +169,4 @@ void AudioPlayersRegistry::OnPlatformMessageEvents(
+   engine->SendPlatformMessageResponse(message->response_handle, result->data(),
+                                       result->size());
+ }
+-}  // namespace Plugins
+\ No newline at end of file
++}  // namespace Plugins
+-- 
+2.43.0
+
diff --git a/package/ivi-homescreen/Config.in b/package/ivi-homescreen/Config.in
new file mode 100644
index 0000000000..c59ff09a51
--- /dev/null
+++ b/package/ivi-homescreen/Config.in
@@ -0,0 +1,268 @@
+menuconfig BR2_PACKAGE_IVI_HOMESCREEN
+	bool "ivi-homescreen"
+	depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
+	depends on BR2_TOOLCHAIN_USES_GLIBC # flutter-engine
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # flutter-engine
+	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # # flutter-engine
+	depends on BR2_INSTALL_LIBSTDCPP # flutter-engine
+	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # flutter-engine
+	depends on !BR2_STATIC_LIBS # flutter-engine, wayland
+	depends on BR2_USE_WCHAR # flutter-engine
+	depends on BR2_HOST_GCC_AT_LEAST_5 # flutter-engine
+	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES # flutter-engine
+	select BR2_PACKAGE_HOST_FLUTTER_SDK_BIN
+	select BR2_PACKAGE_FLUTTER_ENGINE
+	select BR2_PACKAGE_LIBXKBCOMMON
+	select BR2_PACKAGE_WAYLAND
+	select BR2_PACKAGE_WAYLAND_PROTOCOLS
+	select BR2_PACKAGE_WAYLAND_UTILS
+	help
+	  Toyota's Flutter Embedder that communicates with Wayland
+	  compositors.
+	  Features:
+	  - Strongly Typed (C++)
+	  - Lightweight
+	  - Platform Channels enabled/disabled via CMake
+	  - OpenGL Texture Framework
+	  - Compositor Sub-surface/Region support
+	  - Vulkan / EGL backend support
+
+	  https://github.com/toyota-connected/ivi-homescreen
+
+if BR2_PACKAGE_IVI_HOMESCREEN
+
+config BR2_PACKAGE_IVI_HOMESCREEN_IVI_SHELL_CLIENT
+	bool "ivi-shell client"
+	select BR2_PACKAGE_IVI_HOMESCREEN_HAS_CLIENT
+
+comment "Logging"
+config BR2_PACKAGE_IVI_HOMESCREEN_DART_VM_LOGGING
+	bool "Enable Dart VM Logging"
+
+config BR2_PACKAGE_IVI_HOMESCREEN_DLT_LOGGING
+	bool "DLT logging"
+
+comment "EGL options"
+
+config BR2_PACKAGE_IVI_HOMESCREEN_EGL_TRANSPARENCY
+	bool "Transparency"
+	depends on BR2_PACKAGE_HAS_LIBEGL
+
+comment "Transparency support needs an EGL backend"
+	depends on !BR2_PACKAGE_HAS_LIBEGL
+
+config BR2_PACKAGE_IVI_HOMESCREEN_EGL_ENABLE_3D
+	bool "3D support"
+	depends on BR2_PACKAGE_HAS_LIBEGL
+	help
+	  Build with EGL Stencil, Depth, and Stencil
+
+comment "3D support needs an EGL backend"
+	depends on !BR2_PACKAGE_HAS_LIBEGL
+
+config BR2_PACKAGE_IVI_HOMESCREEN_EGL_MULTISAMPLE
+	bool "Multisample support"
+	depends on BR2_PACKAGE_HAS_LIBEGL
+	help
+	  Build with EGL Sample set to 4
+
+comment "Multisample support needs an EGL backend"
+	depends on !BR2_PACKAGE_HAS_LIBEGL
+comment "dependency-less plugins"
+
+config BR2_PACKAGE_IVI_HOMESCREEN_ACCESSIBILITY_PLUGIN
+	bool "Accessibility"
+
+config BR2_PACKAGE_IVI_HOMESCREEN_COMP_REGION_PLUGIN
+	bool "Compositor Region"
+
+config BR2_PACKAGE_IVI_HOMESCREEN_COMP_SURF_PLUGIN
+	bool "Compositor Surface"
+
+config BR2_PACKAGE_IVI_HOMESCREEN_DESKTOP_WINDOW_PLUGIN
+	bool "Desktop Window"
+	help
+	  Flutter plugin for to change window size.
+
+	  https://pub.dev/packages/desktop_window
+
+config BR2_PACKAGE_IVI_HOMESCREEN_GO_ROUTER_PLUGIN
+	bool "Go Router"
+	help
+	  A declarative routing package for Flutter that uses the
+	  Router API to provide a convenient, url-based API for
+	  navigating between different screens. You can define URL
+	  patterns, navigate using a URL, handle deep links, and a
+	  number of other navigation-related scenarios.
+
+	  https://pub.dev/packages/go_router
+
+config BR2_PACKAGE_IVI_HOMESCREEN_INTEGRATION_TEST_PLUGIN
+	bool "Flutter Integration Test support"
+	help
+	  https://docs.flutter.dev/cookbook/testing/integration/introduction
+
+config BR2_PACKAGE_IVI_HOMESCREEN_ISOLATE_PLUGIN
+	bool "Isolate"
+
+config BR2_PACKAGE_IVI_HOMESCREEN_KEYBOARD_MANAGER_PLUGIN
+	bool "Keyboard Manager"
+	select BR2_PACKAGE_IVI_HOMESCREEN_TEXT_INPUT_PLUGIN # runtime
+	help
+	  This is a wrapper for the raw keyboard listener made to
+	  simplify intercept external keyboard button press.
+
+	  https://pub.dev/packages/keyboard_manager
+
+config BR2_PACKAGE_IVI_HOMESCREEN_KEY_EVENT_PLUGIN
+	bool "Key Event"
+	select BR2_PACKAGE_IVI_HOMESCREEN_TEXT_INPUT_PLUGIN # runtime
+	help
+	  KeyEvent plugin to support RawKeyEvent.
+
+config BR2_PACKAGE_IVI_HOMESCREEN_LAYER_PLAYGROUND_PLUGIN
+	bool "Layer Playground"
+	select BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_VIEWS_PLUGIN
+	help
+	  This plugin enables the platform views plugin and also
+	  provides a simple-box-view-type option.
+
+	  https://github.com/toyota-connected/ivi-homescreen/tree/main/shell/plugins/platform_views
+
+config BR2_PACKAGE_IVI_HOMESCREEN_LOGGING_PLUGIN
+	bool "Logging"
+
+config BR2_PACKAGE_IVI_HOMESCREEN_MOUSE_CURSOR_PLUGIN
+	bool "Mouse Cursor"
+	help
+	  Add mouse cursor support.
+
+config BR2_PACKAGE_IVI_HOMESCREEN_PACKAGE_INFO_PLUGIN
+	bool "PackageInfo"
+	help
+	  Prints the ivi-homescreen package information.
+
+config BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_PLUGIN
+	bool "Platform"
+	help
+	  Get information about the platform the Flutter application
+	  is running on.
+
+config BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_VIEWS_PLUGIN
+	bool "Platform Views"
+	help
+	  This plugin supports the AndroidView interface. Meaning you
+	  can take any Platform View Dart code, change the definition
+	  to use AndroidView, and you will have a working interface.
+
+	  Benefits of using this interface:
+	    - pre-defined interface that is supported in Flutter SDK
+	    - params are easily augmented in Dart to add for given use
+	      case
+	    - pass touch to another process/library without additional
+	      work
+
+	  For a backing implementation there are a number of approaches:
+	    - Have a PlatformView implementation render to a Texture
+	    - Compositor Region support
+	      (poke a hole for another process)
+	    - Compositor sub-surface and manage Z-order
+
+	  The above is already supported today using either an OpenGL
+	  texture, or a Compositor Sub-Surface. Using Platform Views
+	  just re-uses an existing interface.
+
+	  https://github.com/toyota-connected/ivi-homescreen/tree/main/shell/plugins/platform_views
+
+config BR2_PACKAGE_IVI_HOMESCREEN_RESTORATION_PLUGIN
+	bool "Restoration"
+	help
+	  Handles the Flutter restoration callback
+
+config BR2_PACKAGE_IVI_HOMESCREEN_TEXT_INPUT_PLUGIN
+	bool "Text Input"
+	help
+	  Allow for text input
+
+comment "plugins with external dependencies"
+config BR2_PACKAGE_IVI_HOMESCREEN_AUDIO_PLAYERS
+	bool "Audio Players"
+	select BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME
+	help
+	  A Flutter plugin to play multiple simultaneously audio files.
+	  Based on audioplayers-v5.2.1
+
+	  https://pub.dev/packages/audioplayers
+
+config BR2_PACKAGE_IVI_HOMESCREEN_FLUTTER_SECURE_STORAGE_PLUGIN
+	bool "Flutter Secure Storage"
+	select BR2_PACKAGE_LIBSECRET
+	help
+	  Store data in secure storage
+
+	  https://pub.dev/packages/flutter_secure_storage
+
+config BR2_PACKAGE_IVI_HOMESCREEN_GOOGLE_SIGN_IN_PLUGIN
+	bool "Google Sign In manager"
+	select BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_LIBCURL_FORCE_TLS
+	select BR2_PACKAGE_OPENSSL
+	help
+	  This static plugin is to support this pub.dev package:
+	  https://pub.dev/packages/google_sign_in
+
+	  https://github.com/toyota-connected/ivi-homescreen/tree/main/shell/plugins/google_sign_in
+
+config BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN
+	bool "GStreamer EGL"
+	depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_HAS_LIBEGL
+	select BR2_PACKAGE_FFMPEG
+	select BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL
+	help
+	  A GStreamer-powered alternative to Flutter's video_player that
+	  support Linux, iOS and Android.
+
+	  https://pub.dev/packages/flutter_gstreamer_player
+
+comment "GStreamer plugin needs an EGL backend"
+	depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
+	depends on !BR2_PACKAGE_HAS_LIBEGL
+
+config BR2_PACKAGE_IVI_HOMESCREEN_OPENGL_TEXTURE_PLUGIN
+	bool "OpenGL Texture"
+	depends on BR2_PACKAGE_HAS_LIBEGL
+	help
+	  A Flutter OpenGL ES plugin using a Texture() widget.
+	  Many shaders from ShaderToy.com can be copy/pasted
+
+	  https://pub.dev/packages/flutter_opengl
+
+comment "OpenGL texture plugin needs an EGL backend"
+	depends on !BR2_PACKAGE_HAS_LIBEGL
+
+endif # BR2_PACKAGE_IVI_HOMESCREEN
+
+comment "ivi-homescreen needs an OpenGL or OpenGLES backend"
+	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
+	depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBGLES
+
+comment "ivi-homescreen needs a glibc toolchain w/ wchar, C++, gcc >= 5, dynamic library, host gcc >= 5, NPTL"
+	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
+	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
+		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 \
+		|| BR2_STATIC_LIBS || !BR2_USE_WCHAR \
+		|| !BR2_HOST_GCC_AT_LEAST_5
+
+comment "ivi-homescreen needs a toolchain not affected by GCC bug 64735"
+	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
+	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
diff --git a/package/ivi-homescreen/ivi-homescreen.hash b/package/ivi-homescreen/ivi-homescreen.hash
new file mode 100644
index 0000000000..a0d0162948
--- /dev/null
+++ b/package/ivi-homescreen/ivi-homescreen.hash
@@ -0,0 +1,21 @@
+# Locally calculated
+sha256  1ab2e7ab5f947482cb5529dbb6392e7e1945ceb0b593abde6b6279d7bd2fdb79  ivi-homescreen-5ab78a19e95c88cc5d6b173ab1260a211e78cf0a-br1.tar.gz
+
+# Apache-2.0
+sha256  6b96fa0a3def85caaf466caa2bd82d4ca4f22d106ff88f97a00c537c00cc714b  LICENSE
+sha256  943c358cb6d086e4bc0937941b8f8d766db7d4e5f06583efd45dca0ca6a645f3  third_party/filament/libs/bluevk/include/bluevk/BlueVK.h
+
+# BSD-3-Clause
+sha256  fdff25c8a4147791114584a45d56621336d294601da77656e83504a71747c8c2  third_party/flutter/shell/platform/common/client_wrapper/core_implementations.cc
+
+# BSD-Style
+sha256  baa98cbcc03e3e745c4ad9ac2d3fb3464424486b2e420081181013034a7e6406  third_party/flutter/third_party/dart/runtime/include/dart_api.h
+
+# BSL-1.0
+sha256  c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566  third_party/asio-1-28-1/asio/LICENSE_1_0.txt
+
+# MIT
+sha256  240f786071b64c28c0a1dae3e3b05fc3ca93fa4882b1e36e56ee49fee3037b0a  third_party/flutter/third_party/rapidjson/include/rapidjson/rapidjson.h
+sha256  4b67e7ae8c91e68e1a929eb1cbaa4c773c6d19aa91aaa12c390cf9560d1c9799  third_party/sanitizers-cmake/LICENSE
+sha256  a7241a379cb98d37788f82c2fc2e484c3ae85dae881fd3406f0637644850926f  third_party/spdlog-1.12.0/LICENSE
+sha256  8b79f17fa7cf47adeeb8277965267e3932155fdfcab81a0ed5d583438bdf9135  third_party/weston/protocol/ivi-application.xml
diff --git a/package/ivi-homescreen/ivi-homescreen.mk b/package/ivi-homescreen/ivi-homescreen.mk
new file mode 100644
index 0000000000..1fe4f09f9e
--- /dev/null
+++ b/package/ivi-homescreen/ivi-homescreen.mk
@@ -0,0 +1,135 @@
+################################################################################
+#
+# ivi-homescreen
+#
+################################################################################
+
+IVI_HOMESCREEN_VERSION = 5ab78a19e95c88cc5d6b173ab1260a211e78cf0a
+IVI_HOMESCREEN_SITE = https://github.com/toyota-connected/ivi-homescreen.git
+IVI_HOMESCREEN_SITE_METHOD = git
+IVI_HOMESCREEN_LICENSE = Apache-2.0, BSD-3-Clause, BSD-Style, BSL-1.0, MIT
+
+IVI_HOMESCREEN_LICENSE_FILES = \
+	LICENSE \
+	third_party/asio-1-28-1/asio/LICENSE_1_0.txt \
+	third_party/filament/libs/bluevk/include/bluevk/BlueVK.h \
+	third_party/flutter/shell/platform/common/client_wrapper/core_implementations.cc \
+	third_party/flutter/third_party/dart/runtime/include/dart_api.h \
+	third_party/flutter/third_party/rapidjson/include/rapidjson/rapidjson.h \
+	third_party/sanitizers-cmake/LICENSE \
+	third_party/spdlog-1.12.0/LICENSE \
+	third_party/weston/protocol/ivi-application.xml
+
+IVI_HOMESCREEN_DEPENDENCIES = \
+	host-flutter-sdk-bin \
+	flutter-engine \
+	libxkbcommon \
+	wayland \
+	wayland-protocols \
+	wayland-utils
+
+IVI_HOMESCREEN_CONF_OPTS = \
+	-DBUILD_CRASH_HANDLER=OFF \
+	-DBUILD_PLUGIN_FILE_SELECTOR=OFF \
+	-DBUILD_PLUGIN_FIREBASE_CORE=OFF \
+	-DBUILD_PLUGIN_URL_LAUNCHER=OFF \
+	-DBUILD_TEXTURE_NAVI_RENDER_EGL=OFF \
+	-DBUILD_TEXTURE_TEST_EGL=OFF \
+	-DBUILD_UNIT_TESTS=OFF \
+	-DENABLE_AGL_CLIENT=OFF \
+	-DENABLE_XDG_CLIENT=ON \
+	-DENABLE_IVI_SHELL_CLIENT=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_IVI_SHELL_CLIENT),ON,OFF)
+
+# Logging
+IVI_HOMESCREEN_CONF_OPTS += \
+	-DENABLE_DART_VM_LOGGING=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_DART_VM_LOGGING),ON,OFF) \
+	-DENABLE_DLT=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_DLT_LOGGING),ON,OFF)
+
+# EGL
+IVI_HOMESCREEN_CONF_OPTS += \
+	-DBUILD_EGL_TRANSPARENCY=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_EGL_TRANSPARENCY),ON,OFF) \
+	-DBUILD_EGL_ENABLE_3D=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_EGL_ENABLE_3D),ON,OFF) \
+	-DBUILD_EGL_ENABLE_MULTISAMPLE=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_EGL_MULTISAMPLE),ON,OFF)
+
+# dependency-less plugins
+IVI_HOMESCREEN_CONF_OPTS += \
+	-DBUILD_PLUGIN_ACCESSIBILITY=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_ACCESSIBILITY_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_COMP_REGION=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_COMP_REGION_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_COMP_SURF=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_COMP_SURF_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_DESKTOP_WINDOW=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_DESKTOP_WINDOW_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_GO_ROUTER=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_GO_ROUTER_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_INTEGRATION_TEST=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_INTEGRATION_TEST_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_ISOLATE=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_ISOLATE_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_KEYBOARD_MANAGER=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_KEYBOARD_MANAGER_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_KEY_EVENT=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_KEY_EVENT_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_LAYER_PLAYGROUND=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_LAYER_PLAYGROUND_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_LOGGING=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_LOGGING_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_MOUSE_CURSOR=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_MOUSE_CURSOR_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_PACKAGE_INFO=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_PACKAGE_INFO_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_PLATFORM=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_PLATFORM_VIEWS=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_VIEWS_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_RESTORATION=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_RESTORATION_PLUGIN),ON,OFF) \
+	-DBUILD_PLUGIN_TEXT_INPUT=$(if $(BR2_PACKAGE_IVI_HOMESCREEN_TEXT_INPUT_PLUGIN),ON,OFF)
+
+# Wayland backend options
+ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y)
+IVI_HOMESCREEN_DEPENDENCIES += libegl
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_BACKEND_WAYLAND_EGL=ON
+else
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_BACKEND_WAYLAND_EGL=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),y)
+IVI_HOMESCREEN_DEPENDENCIES += mesa3d
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_BACKEND_WAYLAND_VULKAN=ON
+else
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_BACKEND_WAYLAND_VULKAN=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_LIBDRM),y)
+IVI_HOMESCREEN_DEPENDENCIES += libdrm
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_BACKEND_WAYLAND_DRM=ON
+else
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_BACKEND_WAYLAND_DRM=OFF
+endif
+
+# "plugins with external dependencies"
+ifeq ($(BR2_PACKAGE_IVI_HOMESCREEN_AUDIO_PLAYERS),y)
+IVI_HOMESCREEN_DEPENDENCIES += gstreamer1 gst1-plugins-base
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_PLUGIN_AUDIO_PLAYERS=ON
+else
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_PLUGIN_AUDIO_PLAYERS=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_IVI_HOMESCREEN_FLUTTER_SECURE_STORAGE_PLUGIN),y)
+IVI_HOMESCREEN_DEPENDENCIES += libsecret
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_PLUGIN_SECURE_STORAGE=ON
+else
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_PLUGIN_SECURE_STORAGE=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_IVI_HOMESCREEN_GOOGLE_SIGN_IN_PLUGIN),y)
+IVI_HOMESCREEN_DEPENDENCIES += libcurl
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_PLUGIN_GOOGLE_SIGN_IN=ON
+else
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_PLUGIN_GOOGLE_SIGN_IN=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN),y)
+IVI_HOMESCREEN_DEPENDENCIES += ffmpeg gstreamer1 gst1-plugins-base
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_PLUGIN_GSTREAMER_EGL=ON
+else
+IVI_HOMESCREEN_CONF_OPTS += -DBUILD_PLUGIN_GSTREAMER_EGL=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_IVI_HOMESCREEN_OPENGL_TEXTURE_PLUGIN),y)
+IVI_HOMESCREEN_CONF_OPTS += \
+	-DBUILD_PLUGIN_OPENGL_TEXTURE=ON \
+	-DBUILD_TEXTURE_EGL=ON
+else
+IVI_HOMESCREEN_CONF_OPTS += \
+	-DBUILD_PLUGIN_OPENGL_TEXTURE=OFF \
+	-DBUILD_TEXTURE_EGL=OFF
+endif
+
+$(eval $(cmake-package))
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH v6] package/ivi-homescreen: new package
  2024-01-06 23:01 ` [Buildroot] [PATCH v6] package/ivi-homescreen: " Adam Duskett
@ 2024-01-10 21:37   ` Yann E. MORIN
  0 siblings, 0 replies; 3+ messages in thread
From: Yann E. MORIN @ 2024-01-10 21:37 UTC (permalink / raw)
  To: Adam Duskett; +Cc: buildroot

ADam, All,

On 2024-01-06 16:01 -0700, Adam Duskett spake thusly:
> Much like flutter-pi, this package is a Flutter embedder used to run Flutter
> applications. However, unlike Flutter-pi, this package requires a Wayland
> compositor to run, which flutter-pi does not support. Furthermore, flutter-pi
> lacks several plugins and features that ivi-homescreen supports, such as:
[--SNIP--]
> Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
> ---
[--SNIP--]
> diff --git a/package/ivi-homescreen/Config.in b/package/ivi-homescreen/Config.in
> new file mode 100644
> index 0000000000..c59ff09a51
> --- /dev/null
> +++ b/package/ivi-homescreen/Config.in
> @@ -0,0 +1,268 @@
> +menuconfig BR2_PACKAGE_IVI_HOMESCREEN
> +	bool "ivi-homescreen"
> +	depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS

That dependency was missing on the comments, so I propagated there.

> +	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
> +	depends on BR2_TOOLCHAIN_USES_GLIBC # flutter-engine
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # flutter-engine
> +	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # # flutter-engine
> +	depends on BR2_INSTALL_LIBSTDCPP # flutter-engine
> +	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # flutter-engine
> +	depends on !BR2_STATIC_LIBS # flutter-engine, wayland
> +	depends on BR2_USE_WCHAR # flutter-engine
> +	depends on BR2_HOST_GCC_AT_LEAST_5 # flutter-engine

I've reordered the dependency in a more logical way (like host gcc-5 and
target gcc-5 together).

I also dropped the NPTL requirement, as it is implied by glibc. I see
that you did propagate the dependency from flutter-engine, but it needs
to be fixed there as well (I missed that when applying flutter-engine).

[--SNIP--]
> +config BR2_PACKAGE_IVI_HOMESCREEN_IVI_SHELL_CLIENT
> +	bool "ivi-shell client"
> +	select BR2_PACKAGE_IVI_HOMESCREEN_HAS_CLIENT

    $ ./utils/docker-run make check-package
    package/ivi-homescreen/Config.in:37: BR2_PACKAGE_IVI_HOMESCREEN_HAS_CLIENT referenced but not defined

I guess that's because you initially followed ny suggestion on how to
handle the clients, but then changed your mind and dropped the options.
I fixed that when applying.

[--SNIP--]
> diff --git a/package/ivi-homescreen/ivi-homescreen.hash b/package/ivi-homescreen/ivi-homescreen.hash
> new file mode 100644
> index 0000000000..a0d0162948
> --- /dev/null
> +++ b/package/ivi-homescreen/ivi-homescreen.hash
> @@ -0,0 +1,21 @@
> +# Locally calculated
> +sha256  1ab2e7ab5f947482cb5529dbb6392e7e1945ceb0b593abde6b6279d7bd2fdb79  ivi-homescreen-5ab78a19e95c88cc5d6b173ab1260a211e78cf0a-br1.tar.gz
> +
> +# Apache-2.0
> +sha256  6b96fa0a3def85caaf466caa2bd82d4ca4f22d106ff88f97a00c537c00cc714b  LICENSE
> +sha256  943c358cb6d086e4bc0937941b8f8d766db7d4e5f06583efd45dca0ca6a645f3  third_party/filament/libs/bluevk/include/bluevk/BlueVK.h
> +
> +# BSD-3-Clause
> +sha256  fdff25c8a4147791114584a45d56621336d294601da77656e83504a71747c8c2  third_party/flutter/shell/platform/common/client_wrapper/core_implementations.cc
> +
> +# BSD-Style
> +sha256  baa98cbcc03e3e745c4ad9ac2d3fb3464424486b2e420081181013034a7e6406  third_party/flutter/third_party/dart/runtime/include/dart_api.h
> +
> +# BSL-1.0
> +sha256  c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566  third_party/asio-1-28-1/asio/LICENSE_1_0.txt
> +
> +# MIT
> +sha256  240f786071b64c28c0a1dae3e3b05fc3ca93fa4882b1e36e56ee49fee3037b0a  third_party/flutter/third_party/rapidjson/include/rapidjson/rapidjson.h
> +sha256  4b67e7ae8c91e68e1a929eb1cbaa4c773c6d19aa91aaa12c390cf9560d1c9799  third_party/sanitizers-cmake/LICENSE
> +sha256  a7241a379cb98d37788f82c2fc2e484c3ae85dae881fd3406f0637644850926f  third_party/spdlog-1.12.0/LICENSE
> +sha256  8b79f17fa7cf47adeeb8277965267e3932155fdfcab81a0ed5d583438bdf9135  third_party/weston/protocol/ivi-application.xml

Good idea to group the licenses by category.

> diff --git a/package/ivi-homescreen/ivi-homescreen.mk b/package/ivi-homescreen/ivi-homescreen.mk
> new file mode 100644
> index 0000000000..1fe4f09f9e
> --- /dev/null
> +++ b/package/ivi-homescreen/ivi-homescreen.mk
> @@ -0,0 +1,135 @@
> +################################################################################
> +#
> +# ivi-homescreen
> +#
> +################################################################################
> +
> +IVI_HOMESCREEN_VERSION = 5ab78a19e95c88cc5d6b173ab1260a211e78cf0a
> +IVI_HOMESCREEN_SITE = https://github.com/toyota-connected/ivi-homescreen.git
> +IVI_HOMESCREEN_SITE_METHOD = git
> +IVI_HOMESCREEN_LICENSE = Apache-2.0, BSD-3-Clause, BSD-Style, BSL-1.0, MIT
> +
> +IVI_HOMESCREEN_LICENSE_FILES = \
> +	LICENSE \
> +	third_party/asio-1-28-1/asio/LICENSE_1_0.txt \
> +	third_party/filament/libs/bluevk/include/bluevk/BlueVK.h \
> +	third_party/flutter/shell/platform/common/client_wrapper/core_implementations.cc \
> +	third_party/flutter/third_party/dart/runtime/include/dart_api.h \
> +	third_party/flutter/third_party/rapidjson/include/rapidjson/rapidjson.h \
> +	third_party/sanitizers-cmake/LICENSE \
> +	third_party/spdlog-1.12.0/LICENSE \
> +	third_party/weston/protocol/ivi-application.xml

I fixed the order to match that of the hash file, and adding a little
comment stating so.

Applied to master with the minor nits above fixed, thanks.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-01-10 21:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-06 23:01 [Buildroot] [PATCH v6] ivi-homescreen: new package Adam Duskett
2024-01-06 23:01 ` [Buildroot] [PATCH v6] package/ivi-homescreen: " Adam Duskett
2024-01-10 21:37   ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox