From 57efe9e836dea6e8a8f252bebfacc48061ac6115 Mon Sep 17 00:00:00 2001
From: j1nx
Date: Thu, 14 May 2020 09:16:03 +0200
Subject: [PATCH] MycroftOS: GUI: More work, ready for testing. - No full
graphical stack, only the desktop GUI
---
buildroot-external/Config.in | 1 +
buildroot-external/configs/rpi3_defconfig | 19 ++++++-------
.../package/kf5-kpackage/kf5-kpackage.mk | 2 +-
.../package/kf5-phonon/kf5-phonon.mk | 4 +--
.../package/lottie-qml/Config.in | 9 ++++++
.../package/lottie-qml/lottie-qml.hash | 2 ++
.../package/lottie-qml/lottie-qml.mk | 15 ++++++++++
.../0001-Patching-for-Buildroot.patch | 25 -----------------
.../0001-Remove-Plasma-requirements.patch | 28 +++++++++++++++++++
.../package/mycroft-gui/Config.in | 11 ++------
.../package/mycroft-gui/mycroft-gui.hash | 2 +-
.../package/mycroft-gui/mycroft-gui.mk | 9 +++---
.../package/respeaker/respeaker.mk | 2 +-
...rdcode-NINJA-concurrent-threads-to-2.patch | 25 +++++++++++++++++
14 files changed, 100 insertions(+), 54 deletions(-)
create mode 100644 buildroot-external/package/lottie-qml/Config.in
create mode 100644 buildroot-external/package/lottie-qml/lottie-qml.hash
create mode 100644 buildroot-external/package/lottie-qml/lottie-qml.mk
delete mode 100644 buildroot-external/package/mycroft-gui/0001-Patching-for-Buildroot.patch
create mode 100644 buildroot-external/package/mycroft-gui/0001-Remove-Plasma-requirements.patch
create mode 100644 buildroot-patches/0111-Hardcode-NINJA-concurrent-threads-to-2.patch
diff --git a/buildroot-external/Config.in b/buildroot-external/Config.in
index bbe7b57b..bd7837a5 100644
--- a/buildroot-external/Config.in
+++ b/buildroot-external/Config.in
@@ -46,6 +46,7 @@ menu "KF5"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/kf5-solid/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/kf5-sonnet/Config.in"
endmenu
+ source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/lottie-qml/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/respeaker/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/snapcast/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/spotifyd/Config.in"
diff --git a/buildroot-external/configs/rpi3_defconfig b/buildroot-external/configs/rpi3_defconfig
index d95f48e5..2eb18042 100644
--- a/buildroot-external/configs/rpi3_defconfig
+++ b/buildroot-external/configs/rpi3_defconfig
@@ -60,7 +60,7 @@ BR2_PACKAGE_ALSA_UTILS_ASEQNET=y
BR2_PACKAGE_ALSA_UTILS_BAT=y
BR2_PACKAGE_ALSA_UTILS_IECSET=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
-BR2_PACKAGE_FFMPEG=y
+BR2_PACKAGE_ESPEAK=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
@@ -69,9 +69,10 @@ BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_MIMIC=y
BR2_PACKAGE_MIMIC_AUDIO_BACKEND_PULSEAUDIO=y
-BR2_PACKAGE_MPG123=y
BR2_PACKAGE_PULSEAUDIO=y
BR2_PACKAGE_PULSEAUDIO_DAEMON=y
+BR2_PACKAGE_SQUEEZELITE=y
+BR2_PACKAGE_VLC=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_LZ4=y
BR2_PACKAGE_LZIP=y
@@ -108,32 +109,28 @@ BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
-BR2_PACKAGE_SDL2_KMSDRM=y
-BR2_PACKAGE_SDL2_OPENGLES=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT53D=y
BR2_PACKAGE_QT5BASE_CONCURRENT=y
BR2_PACKAGE_QT5BASE_SQLITE_QT=y
BR2_PACKAGE_QT5BASE_LINUXFB=y
-BR2_PACKAGE_QT5BASE_EGLFS=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="eglfs"
-BR2_PACKAGE_QT5BASE_FONTCONFIG=y
BR2_PACKAGE_QT5BASE_HARFBUZZ=y
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
BR2_PACKAGE_QT5BASE_PNG=y
-BR2_PACKAGE_QT5BASE_DBUS=y
-BR2_PACKAGE_QT5BASE_ICU=y
BR2_PACKAGE_QT5BASE_TSLIB=y
BR2_PACKAGE_QT5GRAPHICALEFFECTS=y
BR2_PACKAGE_QT5IMAGEFORMATS=y
BR2_PACKAGE_QT5MULTIMEDIA=y
-BR2_PACKAGE_QT5QUICKCONTROLS2=y
BR2_PACKAGE_QT5SCRIPT=y
BR2_PACKAGE_QT5VIRTUALKEYBOARD=y
BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS="en_US"
BR2_PACKAGE_QT5VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION=y
BR2_PACKAGE_QT5WAYLAND=y
+BR2_PACKAGE_QT5WEBENGINE=y
+BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS=y
+BR2_PACKAGE_QT5WEBVIEW=y
BR2_PACKAGE_KF5=y
BR2_PACKAGE_KF5_KCOREADDONS=y
BR2_PACKAGE_LINUX_FIRMWARE=y
@@ -390,6 +387,7 @@ BR2_PACKAGE_HOST_PYTHON3_SSL=y
BR2_PACKAGE_FIRSTBOOT_SERVICE=y
BR2_PACKAGE_PREPARE_SYSTEM_SERVICE=y
BR2_PACKAGE_PYTHON_MYCROFT=y
+BR2_PACKAGE_MYCROFT_GUI=y
BR2_PACKAGE_MYCROFT_SERVICE=y
BR2_PACKAGE_MYCROFT_SPLASH=y
BR2_PACKAGE_WIFI_AP=y
@@ -406,10 +404,9 @@ BR2_PACKAGE_KF5_KDECLARATIVE=y
BR2_PACKAGE_KF5_KIRIGAMI2=y
BR2_PACKAGE_KF5_KNOTIFICATIONS=y
BR2_PACKAGE_KF5_KPACKAGE=y
-BR2_PACKAGE_KF5_KWAYLAND=y
BR2_PACKAGE_KF5_PHONON=y
BR2_PACKAGE_KF5_PLASMA_FRAMEWORK=y
-BR2_PACKAGE_KF5_PLASMA_NANO=y
+BR2_PACKAGE_LOTTIE_QML=y
BR2_PACKAGE_RESPEAKER=y
BR2_PACKAGE_SNAPCAST=y
BR2_PACKAGE_SNAPCAST_SERVER=y
diff --git a/buildroot-external/package/kf5-kpackage/kf5-kpackage.mk b/buildroot-external/package/kf5-kpackage/kf5-kpackage.mk
index 7ce6a02d..43cbd5cb 100644
--- a/buildroot-external/package/kf5-kpackage/kf5-kpackage.mk
+++ b/buildroot-external/package/kf5-kpackage/kf5-kpackage.mk
@@ -17,7 +17,7 @@ KF5_KPACKAGE_SUPPORTS_IN_SOURCE_BUILD = NO
$(eval $(cmake-package))
HOST_KF5_KPACKAGE_DEPENDENCIES = host-kf5-extra-cmake-modules host-kf5-karchive \
- host-kf5-ki18n
+ host-kf5-ki18n host-kf5-kcoreaddons
HOST_KF5_KPACKAGE_CXXFLAGS = $(HOST_CXXFLAGS)
HOST_KF5_KPACKAGE_CONF_OPTS = -DCMAKE_CXX_FLAGS="$(HOST_KF5_KPACKAGE_CXXFLAGS)"
diff --git a/buildroot-external/package/kf5-phonon/kf5-phonon.mk b/buildroot-external/package/kf5-phonon/kf5-phonon.mk
index 864711d1..65ff8953 100644
--- a/buildroot-external/package/kf5-phonon/kf5-phonon.mk
+++ b/buildroot-external/package/kf5-phonon/kf5-phonon.mk
@@ -11,7 +11,7 @@ KF5_PHONON_LICENSE = BSD-3-Clause
KF5_PHONON_LICENSE_FILES = COPYING-CMAKE-SCRIPTS
KF5_PHONON_DEPENDENCIES = host-pkgconf
-KF5_PHONON_SOLID_INSTALL_STAGING = YES
-KF5_PHONON_SOLID_SUPPORTS_IN_SOURCE_BUILD = NO
+KF5_PHONON_INSTALL_STAGING = YES
+KF5_PHONON_SUPPORTS_IN_SOURCE_BUILD = NO
$(eval $(cmake-package))
diff --git a/buildroot-external/package/lottie-qml/Config.in b/buildroot-external/package/lottie-qml/Config.in
new file mode 100644
index 00000000..ef818348
--- /dev/null
+++ b/buildroot-external/package/lottie-qml/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_LOTTIE_QML
+ bool "lottie-qml"
+ help
+ This provides a QML Item to render Adobe® After Effects™
+ animations exported as JSON with Bodymovin using the Lottie
+ Web library.
+
+ https://github.com/kbroulik/lottie-qml
+
diff --git a/buildroot-external/package/lottie-qml/lottie-qml.hash b/buildroot-external/package/lottie-qml/lottie-qml.hash
new file mode 100644
index 00000000..da4fa0d3
--- /dev/null
+++ b/buildroot-external/package/lottie-qml/lottie-qml.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 16188c05dc9c5a3c7fae4836879fa3003a58ddbc073ef2ada5a9c95a0188a9f0 lottie-qml-26335df22cfbb23cd238394792f05b94318c24c9.tar.gz
diff --git a/buildroot-external/package/lottie-qml/lottie-qml.mk b/buildroot-external/package/lottie-qml/lottie-qml.mk
new file mode 100644
index 00000000..d9ecca80
--- /dev/null
+++ b/buildroot-external/package/lottie-qml/lottie-qml.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# lottie-qml
+#
+################################################################################
+
+LOTTIE_QML_VERSION = 26335df22cfbb23cd238394792f05b94318c24c9
+LOTTIE_QML_SITE = $(call github,kbroulik,lottie-qml,$(LOTTIE_QML_VERSION))
+LOTTIE_QML_LICENSE = Apache License 2.0
+
+LOTTIE_QML_INSTALL_STAGING = YES
+LOTTIE_QML_DEPENDENCIES = host-pkgconf
+LOTTIE_QML_SUPPORTS_IN_SOURCE_BUILD = NO
+
+$(eval $(cmake-package))
diff --git a/buildroot-external/package/mycroft-gui/0001-Patching-for-Buildroot.patch b/buildroot-external/package/mycroft-gui/0001-Patching-for-Buildroot.patch
deleted file mode 100644
index 3797834c..00000000
--- a/buildroot-external/package/mycroft-gui/0001-Patching-for-Buildroot.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e661fab33f82017d2b0577889ea1de58e7023c40 Mon Sep 17 00:00:00 2001
-From: Peter Steenbergen
-Date: Thu, 23 Apr 2020 12:25:35 +0200
-Subject: [PATCH 1/1] Patching for Buildroot
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3ce963e..2532291 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,7 +26,7 @@ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
- Qml
- )
-
--find_package(LibKWorkspace 5.14.90 CONFIG REQUIRED)
-+#find_package(LibKWorkspace 5.14.90 CONFIG REQUIRED)
-
- find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS I18n Plasma Package)
-
---
-2.26.1
-
diff --git a/buildroot-external/package/mycroft-gui/0001-Remove-Plasma-requirements.patch b/buildroot-external/package/mycroft-gui/0001-Remove-Plasma-requirements.patch
new file mode 100644
index 00000000..8970b0f8
--- /dev/null
+++ b/buildroot-external/package/mycroft-gui/0001-Remove-Plasma-requirements.patch
@@ -0,0 +1,28 @@
+From 2588d1e6167212f1271d1796a8ea2cea41df1fa2 Mon Sep 17 00:00:00 2001
+From: j1nx
+Date: Thu, 14 May 2020 08:19:15 +0200
+Subject: [PATCH 1/1] Remove Plasma requirements - we are not going to use the
+ network setup of the GUI and it requires way to much overhead, such as
+ wayland and Desktop stack. We are just going to run QT straight onto the
+ framebuffer and use system tools and enclosure code to handle the hardware
+ configuration things.
+
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 78bfae8..998e239 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -61,7 +61,6 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS I18n)
+
+ if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android")
+ find_package(Qt5Widgets ${QT_MIN_VERSION} REQUIRED)
+- find_package(KF5Plasma ${KF5_MIN_VERSION} REQUIRED)
+ find_package(KF5DBusAddons ${KF5_MIN_VERSION} REQUIRED)
+ find_package(KF5KIO ${KF5_MIN_VERSION} REQUIRED) # FIXME look for "KIOWidgets" (KRun) explicitly
+ endif()
+--
+2.20.1
+
diff --git a/buildroot-external/package/mycroft-gui/Config.in b/buildroot-external/package/mycroft-gui/Config.in
index 3bfe656d..0900b062 100644
--- a/buildroot-external/package/mycroft-gui/Config.in
+++ b/buildroot-external/package/mycroft-gui/Config.in
@@ -1,14 +1,7 @@
config BR2_PACKAGE_MYCROFT_GUI
bool "mycroft-gui"
help
- This file contains the Plasma Shell components
- specific for the Mark 2 device.
+ The KDE-based visual interface for working with Mycroft.
- The "mark2" containment, which instantiates the
- mark2 screen (fullscreen skills, top sliding panel,
- virtual keyboard) and the "look and feel package"
- which defines to use the mark2 containment, a
- splash screen and a system color scheme..
-
- https://github.com/MycroftAI/mycroft-gui-mark-2
+ https://github.com/MycroftAI/mycroft-gui
diff --git a/buildroot-external/package/mycroft-gui/mycroft-gui.hash b/buildroot-external/package/mycroft-gui/mycroft-gui.hash
index da68fb44..deea7906 100644
--- a/buildroot-external/package/mycroft-gui/mycroft-gui.hash
+++ b/buildroot-external/package/mycroft-gui/mycroft-gui.hash
@@ -1,2 +1,2 @@
# Locally computed
-sha256 44bc2942986561b6e2793cc0da7e7d4fb03576855bbe0d39d2b1a921afc6a7cf mycroft-gui-cb734266ba1f3accaa158507008206620a3c2dde.tar.gz
+sha256 7f1ebaf7d34d2bd5d0c2e3a05ece5967ed7c43b5ac87c57b2335b20dc6c0d944 mycroft-gui-f2f6636a4be02a6ac749999e21bd146f9cfda211.tar.gz
diff --git a/buildroot-external/package/mycroft-gui/mycroft-gui.mk b/buildroot-external/package/mycroft-gui/mycroft-gui.mk
index 8f7dcf7a..f806dddc 100644
--- a/buildroot-external/package/mycroft-gui/mycroft-gui.mk
+++ b/buildroot-external/package/mycroft-gui/mycroft-gui.mk
@@ -4,11 +4,12 @@
#
################################################################################
-MYCROFT_GUI_VERSION = cb734266ba1f3accaa158507008206620a3c2dde
-MYCROFT_GUI_SITE = git://github.com/MycroftAI/mycroft-gui-mark-2.git
+MYCROFT_GUI_VERSION = f2f6636a4be02a6ac749999e21bd146f9cfda211
+MYCROFT_GUI_SITE = $(call github,MycroftAI,mycroft-gui,$(MYCROFT_GUI_VERSION))
MYCROFT_GUI_LICENSE = Apache License 2.0
-MYCROFT_GUI_AUTORECONF = YES
+
MYCROFT_GUI_INSTALL_STAGING = YES
-#MYCROFT_GUI_DEPENDENCIES = host-pkgconf host-automake host-autoconf host-libtool
+MYCROFT_GUI_DEPENDENCIES = host-pkgconf
+MYCROFT_GUI_SUPPORTS_IN_SOURCE_BUILD = NO
$(eval $(cmake-package))
diff --git a/buildroot-external/package/respeaker/respeaker.mk b/buildroot-external/package/respeaker/respeaker.mk
index fa7b4a43..cb3b98df 100644
--- a/buildroot-external/package/respeaker/respeaker.mk
+++ b/buildroot-external/package/respeaker/respeaker.mk
@@ -7,7 +7,7 @@
RESPEAKER_VERSION = 48463b9a50885da24834ccc26d68705c26242082
RESPEAKER_SITE = $(call github,respeaker,seeed-voicecard,$(RESPEAKER_VERSION))
RESPEAKER_LICENSE = GNU General Public License v3.0
-RESPEAKER_DEPENDENCIES = rpi-firmware rpi-userland dtc
+RESPEAKER_DEPENDENCIES = rpi-firmware dtc
$(eval $(kernel-module))
diff --git a/buildroot-patches/0111-Hardcode-NINJA-concurrent-threads-to-2.patch b/buildroot-patches/0111-Hardcode-NINJA-concurrent-threads-to-2.patch
new file mode 100644
index 00000000..b5f5a6f8
--- /dev/null
+++ b/buildroot-patches/0111-Hardcode-NINJA-concurrent-threads-to-2.patch
@@ -0,0 +1,25 @@
+From 2ba0b9c352b311c168d93a71e44ac60dfc08c1d5 Mon Sep 17 00:00:00 2001
+From: j1nx
+Date: Thu, 14 May 2020 08:09:49 +0200
+Subject: [PATCH 1/1] Hardcode NINJA concurrent threads to 2
+
+---
+ package/qt5/qt5webengine/qt5webengine.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
+index 898725937b..0543998a5d 100644
+--- a/package/qt5/qt5webengine/qt5webengine.mk
++++ b/package/qt5/qt5webengine/qt5webengine.mk
+@@ -52,7 +52,7 @@ define QT5WEBENGINE_PYTHON2_SYMLINK
+ endef
+ QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_PYTHON2_SYMLINK
+
+-QT5WEBENGINE_ENV += NINJAFLAGS="-j$(PARALLEL_JOBS)"
++QT5WEBENGINE_ENV += NINJAFLAGS="-j2"
+
+ ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
+ define QT5WEBENGINE_CREATE_HOST_PKG_CONFIG
+--
+2.20.1
+