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 +