From 9ae842861348ccd3cca4f4c379995ef08739d64e Mon Sep 17 00:00:00 2001
From: j1nx
Date: Fri, 27 May 2022 14:20:08 +0200
Subject: [PATCH] Implementation of native tensorflow-lite & tflite-runtime
---
buildroot-external/Config.in | 1 +
.../configs/rpi3_64-gui_defconfig | 4 +-
.../configs/rpi4_64-gui_defconfig | 4 +-
.../package/tensorflow-lite/Config.in | 10 ++
.../tensorflow-lite/tensorflow-lite.hash | 2 +
.../tensorflow-lite/tensorflow-lite.mk | 167 ++++++++++++++++++
.../PKG-INFO | 30 ++++
.../SOURCES.txt | 11 ++
.../dependency_links.txt | 1 +
.../requires.txt | 1 +
.../top_level.txt | 1 +
.../tflite_runtime/MANIFEST.in | 1 +
.../tflite_runtime/__init__.py | 2 +
...or-cmake-so-curl-can-download-from-h.patch | 25 +++
14 files changed, 258 insertions(+), 2 deletions(-)
create mode 100644 buildroot-external/package/tensorflow-lite/Config.in
create mode 100644 buildroot-external/package/tensorflow-lite/tensorflow-lite.hash
create mode 100644 buildroot-external/package/tensorflow-lite/tensorflow-lite.mk
create mode 100644 buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/PKG-INFO
create mode 100644 buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/SOURCES.txt
create mode 100644 buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/dependency_links.txt
create mode 100644 buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/requires.txt
create mode 100644 buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/top_level.txt
create mode 100755 buildroot-external/package/tensorflow-lite/tflite_runtime/MANIFEST.in
create mode 100755 buildroot-external/package/tensorflow-lite/tflite_runtime/__init__.py
create mode 100644 buildroot-patches/0017-Enable-OpenSSL-for-cmake-so-curl-can-download-from-h.patch
diff --git a/buildroot-external/Config.in b/buildroot-external/Config.in
index 44e07b21..744db9b8 100644
--- a/buildroot-external/Config.in
+++ b/buildroot-external/Config.in
@@ -94,6 +94,7 @@ endmenu
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/rpi-eeprom/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/snapcast/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/spotifyd/Config.in"
+ source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/tensorflow-lite/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/userland-tools/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/virtual-touch/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/vocalfusion/Config.in"
diff --git a/buildroot-external/configs/rpi3_64-gui_defconfig b/buildroot-external/configs/rpi3_64-gui_defconfig
index aea5bd91..a5cb3279 100644
--- a/buildroot-external/configs/rpi3_64-gui_defconfig
+++ b/buildroot-external/configs/rpi3_64-gui_defconfig
@@ -644,6 +644,7 @@ BR2_PACKAGE_RESPEAKER=y
BR2_PACKAGE_SNAPCAST=y
BR2_PACKAGE_SNAPCAST_SERVER=y
BR2_PACKAGE_SPOTIFYD=y
+BR2_PACKAGE_TENSORFLOW_LITE=y
BR2_PACKAGE_USERLAND_TOOLS=y
BR2_PACKAGE_VOCALFUSION=y
BR2_PACKAGE_WIRINGPI2=y
@@ -690,6 +691,7 @@ BR2_PACKAGE_PYTHON_PEP8=y
BR2_PACKAGE_PYTHON_PETACT=y
BR2_PACKAGE_PYTHON_PHONEME_GUESSER=y
BR2_PACKAGE_PYTHON_POCKETSPHINX=y
+BR2_PACKAGE_PYTHON_PRECISE_LITE_RUNNER=y
BR2_PACKAGE_PYTHON_PRECISE_RUNNER=y
BR2_PACKAGE_PYTHON_PULSECTL=y
BR2_PACKAGE_PYTHON_PYCHROMECAST=y
@@ -766,6 +768,7 @@ BR2_PACKAGE_PYTHON_OVOS_VLC_PLUGIN=y
BR2_PACKAGE_PYTHON_OVOS_WORKSHOP=y
BR2_PACKAGE_PYTHON_OVOS_WW_PLUGIN_POCKETSPHINX=y
BR2_PACKAGE_PYTHON_OVOS_WW_PLUGIN_PRECISE=y
+BR2_PACKAGE_PYTHON_OVOS_WW_PLUGIN_PRECISE_LITE=y
BR2_PACKAGE_MYCROFT_SKILL_ALARM=y
BR2_PACKAGE_MYCROFT_SKILL_AUDIO_RECORD=y
BR2_PACKAGE_MYCROFT_SKILL_CAMERA=y
@@ -787,7 +790,6 @@ BR2_PACKAGE_MYCROFT_SKILL_OVOS_SETUP=y
BR2_PACKAGE_MYCROFT_SKILL_OVOS_STOP=y
BR2_PACKAGE_MYCROFT_SKILL_OVOS_TIMER=y
BR2_PACKAGE_MYCROFT_SKILL_OVOS_VOLUME=y
-BR2_PACKAGE_MYCROFT_SKILL_PARROT=y
BR2_PACKAGE_MYCROFT_SKILL_PERSONAL=y
BR2_PACKAGE_MYCROFT_SKILL_REMINDER=y
BR2_PACKAGE_MYCROFT_SKILL_SINGING=y
diff --git a/buildroot-external/configs/rpi4_64-gui_defconfig b/buildroot-external/configs/rpi4_64-gui_defconfig
index 953e2087..c9ecb959 100644
--- a/buildroot-external/configs/rpi4_64-gui_defconfig
+++ b/buildroot-external/configs/rpi4_64-gui_defconfig
@@ -645,6 +645,7 @@ BR2_PACKAGE_RESPEAKER=y
BR2_PACKAGE_SNAPCAST=y
BR2_PACKAGE_SNAPCAST_SERVER=y
BR2_PACKAGE_SPOTIFYD=y
+BR2_PACKAGE_TENSORFLOW_LITE=y
BR2_PACKAGE_USERLAND_TOOLS=y
BR2_PACKAGE_VOCALFUSION=y
BR2_PACKAGE_WIFI_CONNECT=y
@@ -692,6 +693,7 @@ BR2_PACKAGE_PYTHON_PEP8=y
BR2_PACKAGE_PYTHON_PETACT=y
BR2_PACKAGE_PYTHON_PHONEME_GUESSER=y
BR2_PACKAGE_PYTHON_POCKETSPHINX=y
+BR2_PACKAGE_PYTHON_PRECISE_LITE_RUNNER=y
BR2_PACKAGE_PYTHON_PRECISE_RUNNER=y
BR2_PACKAGE_PYTHON_PULSECTL=y
BR2_PACKAGE_PYTHON_PYCHROMECAST=y
@@ -768,6 +770,7 @@ BR2_PACKAGE_PYTHON_OVOS_VLC_PLUGIN=y
BR2_PACKAGE_PYTHON_OVOS_WORKSHOP=y
BR2_PACKAGE_PYTHON_OVOS_WW_PLUGIN_POCKETSPHINX=y
BR2_PACKAGE_PYTHON_OVOS_WW_PLUGIN_PRECISE=y
+BR2_PACKAGE_PYTHON_OVOS_WW_PLUGIN_PRECISE_LITE=y
BR2_PACKAGE_MYCROFT_SKILL_ALARM=y
BR2_PACKAGE_MYCROFT_SKILL_AUDIO_RECORD=y
BR2_PACKAGE_MYCROFT_SKILL_CAMERA=y
@@ -789,7 +792,6 @@ BR2_PACKAGE_MYCROFT_SKILL_OVOS_SETUP=y
BR2_PACKAGE_MYCROFT_SKILL_OVOS_STOP=y
BR2_PACKAGE_MYCROFT_SKILL_OVOS_TIMER=y
BR2_PACKAGE_MYCROFT_SKILL_OVOS_VOLUME=y
-BR2_PACKAGE_MYCROFT_SKILL_PARROT=y
BR2_PACKAGE_MYCROFT_SKILL_PERSONAL=y
BR2_PACKAGE_MYCROFT_SKILL_REMINDER=y
BR2_PACKAGE_MYCROFT_SKILL_SINGING=y
diff --git a/buildroot-external/package/tensorflow-lite/Config.in b/buildroot-external/package/tensorflow-lite/Config.in
new file mode 100644
index 00000000..9b7abe95
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_TENSORFLOW_LITE
+ bool "tensorflow-lite"
+ help
+ TensorFlow Lite is the official solution for running
+ machine learning models on mobile and embedded devices.
+ It enables on-device machine learning inference with
+ low latency and a small binary size on Android, iOS,
+ and other operating systems.
+
+ https://www.tensorflow.org/lite/
diff --git a/buildroot-external/package/tensorflow-lite/tensorflow-lite.hash b/buildroot-external/package/tensorflow-lite/tensorflow-lite.hash
new file mode 100644
index 00000000..b96643f9
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tensorflow-lite.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 6eaf86ead73e23988fe192da1db68f4d3828bcdd0f3a9dc195935e339c95dbdc tensorflow-lite-v2.9.1.tar.gz
diff --git a/buildroot-external/package/tensorflow-lite/tensorflow-lite.mk b/buildroot-external/package/tensorflow-lite/tensorflow-lite.mk
new file mode 100644
index 00000000..5e149fcd
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tensorflow-lite.mk
@@ -0,0 +1,167 @@
+################################################################################
+#
+# tensorflow-lite
+#
+################################################################################
+
+TENSORFLOW_LITE_VERSION = v2.9.1
+TENSORFLOW_LITE_SITE = $(call github,tensorflow,tensorflow,$(TENSORFLOW_LITE_VERSION))
+TENSORFLOW_LITE_SUBDIR = tensorflow/lite
+TENSORFLOW_LITE_LICENSE = Apache License 2.0
+
+TENSORFLOW_LITE_INSTALL_STAGING = YES
+
+TENSORFLOW_LITE_DEPENDENCIES = host-pkgconf
+TENSORFLOW_LITE_SUPPORTS_IN_SOURCE_BUILD = NO
+
+TENSORFLOW_LITE_CONF_OPTS += -DCMAKE_C_FLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \
+ -I$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \
+ -I$(STAGING_DIR)/usr/include/pybind11" \
+ -DCMAKE_CXX_FLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \
+ -I$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \
+ -I$(STAGING_DIR)/usr/include/pybind11"
+
+TENSORFLOW_LITE_MAKE_OPTS += _pywrap_tensorflow_interpreter_wrapper
+
+TENSORFLOW_LITE_POST_INSTALL_TARGET_HOOKS = TENSORFLOW_LITE_INSTALL_TFLITE_RUNTIME
+
+define TENSORFLOW_LITE_INSTALL_TFLITE_RUNTIME
+# Install all tflite-runtime files manually
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/types/libabsl_bad_optional_access.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/types/libabsl_bad_variant_access.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/base/libabsl_base.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/base/libabsl_log_severity.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/base/libabsl_malloc_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/base/libabsl_raw_logging_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/base/libabsl_spinlock_wait.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/base/libabsl_throw_delegate.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/hash/libabsl_city.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/hash/libabsl_hash.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/hash/libabsl_low_level_hash.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/time/libabsl_civil_time.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/time/libabsl_time.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/time/libabsl_time_zone.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/strings/libabsl_cord_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/strings/libabsl_cord.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/strings/libabsl_cordz_functions.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/strings/libabsl_cordz_handle.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/strings/libabsl_cordz_info.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/strings/libabsl_str_format_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/strings/libabsl_strings_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/strings/libabsl_strings.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/debugging/libabsl_debugging_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/debugging/libabsl_demangle_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/debugging/libabsl_stacktrace.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/debugging/libabsl_symbolize.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/profiling/libabsl_exponential_biased.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags_commandlineflag_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags_commandlineflag.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags_config.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags_marshalling.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags_private_handle_accessor.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags_program_name.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags_reflection.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/flags/libabsl_flags.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/synchronization/libabsl_graphcycles_internal.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/synchronization/libabsl_synchronization.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/container/libabsl_hashtablez_sampler.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/container/libabsl_raw_hash_set.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/numeric/libabsl_int128.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/abseil-cpp-build/absl/status/libabsl_status.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/cpuinfo-build/libcpuinfo.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/farmhash-build/libfarmhash.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/fft2d-build/libfft2d_fftsg2d.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/fft2d-build/libfft2d_fftsg.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_deps/xnnpack-build/libXNNPACK.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/pthreadpool/libpthreadpool.so \
+$(TARGET_DIR)/usr/lib/
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/libtensorflow-lite.so \
+$(TARGET_DIR)/usr/lib/
+
+mkdir -p $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime
+mkdir -p $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.9.1-py3.10.egg-info
+
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_pywrap_tensorflow_interpreter_wrapper.so \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime/
+
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/python/interpreter.py \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime/
+
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/python/metrics/metrics_interface.py \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime/
+
+$(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/python/metrics/metrics_portable.py \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime/
+
+$(INSTALL) -D -m 755 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime/__init__.py \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime/
+
+$(INSTALL) -D -m 755 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime/MANIFEST.in \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime/
+
+$(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/dependency_links.txt \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.9.1-py3.10.egg-info/
+
+$(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/PKG-INFO \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.9.1-py3.10.egg-info/
+
+$(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/requires.txt \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.9.1-py3.10.egg-info/
+
+$(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/SOURCES.txt \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.9.1-py3.10.egg-info/
+
+$(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/top_level.txt \
+$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.9.1-py3.10.egg-info/
+
+endef
+
+$(eval $(cmake-package))
diff --git a/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/PKG-INFO b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/PKG-INFO
new file mode 100644
index 00000000..20e78b6b
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/PKG-INFO
@@ -0,0 +1,30 @@
+Metadata-Version: 2.1
+Name: tflite-runtime
+Version: 2.9.1
+Summary: TensorFlow Lite is for mobile and embedded devices.
+Home-page: https://www.tensorflow.org/lite/
+Author: Google, LLC
+Author-email: packages@tensorflow.org
+License: Apache 2.0
+Keywords: tflite tensorflow tensor machine learning
+Platform: OpenVoiceOS
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Education
+Classifier: Intended Audience :: Science/Research
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Topic :: Scientific/Engineering
+Classifier: Topic :: Scientific/Engineering :: Mathematics
+Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
+Classifier: Topic :: Software Development
+Classifier: Topic :: Software Development :: Libraries
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+
+TensorFlow Lite is the official solution for running machine learning models on mobile and embedded devices. It enables on-device machine learning inference with low latency and a small binary size on Android, iOS, and other
+operating
+systems.
diff --git a/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/SOURCES.txt b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/SOURCES.txt
new file mode 100644
index 00000000..02d3758c
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/SOURCES.txt
@@ -0,0 +1,11 @@
+__init__.py
+_pywrap_tensorflow_interpreter_wrapper.so
+interpreter.py
+MANIFEST.in
+metrics_interface.py
+metrics_portable.py
+tflite_runtime.egg-info/PKG-INFO
+tflite_runtime.egg-info/SOURCES.txt
+tflite_runtime.egg-info/dependency_links.txt
+tflite_runtime.egg-info/requires.txt
+tflite_runtime.egg-info/top_level.txt
diff --git a/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/dependency_links.txt b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/dependency_links.txt
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/requires.txt b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/requires.txt
new file mode 100644
index 00000000..385649ac
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/requires.txt
@@ -0,0 +1 @@
+numpy>=1.19.2
diff --git a/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/top_level.txt b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/top_level.txt
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tflite_runtime-2.9.1-py3.10.egg-info/top_level.txt
@@ -0,0 +1 @@
+
diff --git a/buildroot-external/package/tensorflow-lite/tflite_runtime/MANIFEST.in b/buildroot-external/package/tensorflow-lite/tflite_runtime/MANIFEST.in
new file mode 100755
index 00000000..bb574e63
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tflite_runtime/MANIFEST.in
@@ -0,0 +1 @@
+recursive-include * *.py
diff --git a/buildroot-external/package/tensorflow-lite/tflite_runtime/__init__.py b/buildroot-external/package/tensorflow-lite/tflite_runtime/__init__.py
new file mode 100755
index 00000000..c48dda52
--- /dev/null
+++ b/buildroot-external/package/tensorflow-lite/tflite_runtime/__init__.py
@@ -0,0 +1,2 @@
+__version__ = '2.9.1'
+__git_version__ = 'd8ce9f9c301d021a69953134185ab728c1c248d3'
diff --git a/buildroot-patches/0017-Enable-OpenSSL-for-cmake-so-curl-can-download-from-h.patch b/buildroot-patches/0017-Enable-OpenSSL-for-cmake-so-curl-can-download-from-h.patch
new file mode 100644
index 00000000..20b6a5af
--- /dev/null
+++ b/buildroot-patches/0017-Enable-OpenSSL-for-cmake-so-curl-can-download-from-h.patch
@@ -0,0 +1,25 @@
+From 4b302ae33c35627bff2d3a4e045b1e2a9f81356c Mon Sep 17 00:00:00 2001
+From: j1nx
+Date: Fri, 27 May 2022 11:19:18 +0200
+Subject: [PATCH 1/1] Enable OpenSSL for cmake so curl can download from https
+
+---
+ package/cmake/cmake.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/package/cmake/cmake.mk b/package/cmake/cmake.mk
+index b1b214982e..7271d1e90a 100644
+--- a/package/cmake/cmake.mk
++++ b/package/cmake/cmake.mk
+@@ -49,7 +49,7 @@ define HOST_CMAKE_CONFIGURE_CMDS
+ -DCMAKE_C_FLAGS="$(HOST_CMAKE_CFLAGS)" \
+ -DCMAKE_CXX_FLAGS="$(HOST_CMAKE_CXXFLAGS)" \
+ -DCMAKE_EXE_LINKER_FLAGS="$(HOST_LDFLAGS)" \
+- -DCMAKE_USE_OPENSSL:BOOL=OFF \
++ -DCMAKE_USE_OPENSSL:BOOL=ON \
+ -DBUILD_CursesDialog=OFF \
+ )
+ endef
+--
+2.34.1
+