Merge branch 'bump/buildroot' into develop

This commit is contained in:
j1nx 2021-03-30 11:23:52 +02:00
commit d426a62f45
37 changed files with 228 additions and 2351 deletions

2
.gitmodules vendored
View File

@ -1,4 +1,4 @@
[submodule "buildroot"]
path = buildroot
url = https://github.com/buildroot/buildroot.git
branch = 2020.11.x
branch = 2021.02.x

@ -1 +1 @@
Subproject commit 6b8e73d6a1958fcf441d91338c64c73aadcc43e4
Subproject commit 6c04e6fb0447ddc5e3ffa0a5df268837ebdb0b91

View File

@ -10,8 +10,8 @@ BR2_GLOBAL_PATCH_DIR="../buildroot-patches"
BR2_FORCE_HOST_BUILD=y
BR2_SSP_REGULAR=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
BR2_PACKAGE_GLIBC_UTILS=y
BR2_BINUTILS_VERSION_2_34_X=y
BR2_GCC_VERSION_10_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y
@ -34,7 +34,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/board/raspberrypi4-64/post-image.s
BR2_ROOTFS_POST_SCRIPT_ARGS="--add-miniuart-bt-overlay --aarch64"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/617a1c1722aeaa4d69356e18b88d569366f1ac1b.tar.gz"
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/13c43880f2ee6db7d26949cb6a3e8db1a4b76736.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/board/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
@ -66,8 +66,7 @@ BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_ESPEAK=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
# BR2_PACKAGE_FFMPEG_FFMPEG is not set
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_GSTREAMER1=y
@ -139,14 +138,30 @@ BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_TWOLAME=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVPACK=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ID3TAG=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JPEGFORMAT=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSMUX=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGPSMUX=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP2=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP2=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDP=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CURL=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FAAD=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FDK_AAC=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SNDFILE=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VOAACENC=y
BR2_PACKAGE_GST1_PLUGINS_UGLY=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_ASFDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDLPCMDEC=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDSUB=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_XINGMUX=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDREAD=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264=y
BR2_PACKAGE_GST1_LIBAV=y
BR2_PACKAGE_GST1_VAAPI=y
BR2_PACKAGE_MIMIC=y
@ -154,6 +169,7 @@ BR2_PACKAGE_MIMIC_AUDIO_BACKEND_PULSEAUDIO=y
BR2_PACKAGE_MPV=y
BR2_PACKAGE_PULSEAUDIO_DAEMON=y
BR2_PACKAGE_SQUEEZELITE=y
BR2_PACKAGE_SQUEEZELITE_RESAMPLE=y
BR2_PACKAGE_VLC=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_LZIP=y
@ -192,7 +208,6 @@ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO=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_QT5=y
BR2_PACKAGE_QT53D=y
BR2_PACKAGE_QT5BASE_CONCURRENT=y
@ -387,11 +402,9 @@ BR2_PACKAGE_LIBFASTJSON=y
BR2_PACKAGE_YAJL=y
BR2_PACKAGE_LIBMATROSKA=y
BR2_PACKAGE_LIBMMS=y
BR2_PACKAGE_LIBMPEG2=y
BR2_PACKAGE_LIBMPEG2_BINS=y
BR2_PACKAGE_LIBOPENH264=y
BR2_PACKAGE_LIBOPUSENC=y
BR2_PACKAGE_X264=y
BR2_PACKAGE_X265=y
BR2_PACKAGE_GLIB_NETWORKING=y
BR2_PACKAGE_LIBCURL_CURL=y

View File

@ -1,2 +1,2 @@
# Locally computed
sha256 220744f0510480217d72191ae54e929ef5fa6cf69733b39a7c8ea52d99e8ed8e fann-7ec1fc7e5bd734f1d3c89b095e630e83c86b9be1.tar.gz
sha256 488e4c52e3ca00ebfe6010e61856184ff4fe470ec36c8b8efe0515c4c316378d fann-a3cd24e528d6a865915a4fed6e8fac164ff8bfdc-br1.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
FANN_VERSION = 7ec1fc7e5bd734f1d3c89b095e630e83c86b9be1
FANN_VERSION = a3cd24e528d6a865915a4fed6e8fac164ff8bfdc
FANN_SITE = git://github.com/libfann/fann.git
FANN_LICENSE = GNU Lesser General Public License v2.1
FANN_AUTORECONF = YES

View File

@ -1,2 +1,2 @@
# Locally computed
sha256 2522d6e7cddbc8db99dc8c3ae239969845cc526ad90ab620db1424cdff5a8660 mycroft-gui-c78d742af14381ea0017916175d2fb0155fc95a3.tar.gz
sha256 2522d6e7cddbc8db99dc8c3ae239969845cc526ad90ab620db1424cdff5a8660 mycroft-gui-c78d742af14381ea0017916175d2fb0155fc95a3.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
NCPAMIXER_VERSION = 8cfb65955025b866cfc42215d1e4f51726944620
NCPAMIXER_VERSION = a69610aa7dd2fb98a4b9558d0a0f73e14cc16aab
NCPAMIXER_SITE = $(call github,fulhax,ncpamixer,$(NCPAMIXER_VERSION))
NCPAMIXER_SUBDIR = src
NCPAMIXER_LICENSE = MIT

View File

@ -1,24 +0,0 @@
From d0e630337d7b81abfe7fdf018252e8c6b06f741d Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Wed, 17 Feb 2021 13:53:37 +0100
Subject: [PATCH 1/1] Bump requests requirement to >= 2.24.0 inline with
buildroot. This to prevent issues with the urllib3 package in combination
with the HASS skill.
---
requirements/requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements/requirements.txt b/requirements/requirements.txt
index 8c22b4a4c5..dab7856965 100644
--- a/requirements/requirements.txt
+++ b/requirements/requirements.txt
@@ -1,4 +1,4 @@
-requests==2.20.0
+requests>=2.24.0
gTTS>=2.2.2,<2.3.0
PyAudio==0.2.11
pyee==8.1.0
--
2.20.1

View File

@ -1,292 +0,0 @@
From b81587defdd84e1f5d72f9db57eee5c880a77a21 Mon Sep 17 00:00:00 2001
From: jarbasal <jarbasai@mailfence.com>
Date: Thu, 18 Feb 2021 13:24:34 +0000
Subject: [PATCH 1/2] fix/padatious_mess
---
.../intent_services/padatious_service.py | 25 +++
mycroft/skills/padatious_service.py | 199 +-----------------
2 files changed, 27 insertions(+), 197 deletions(-)
diff --git a/mycroft/skills/intent_services/padatious_service.py b/mycroft/skills/intent_services/padatious_service.py
index f58f86bc195..e1843f6c984 100644
--- a/mycroft/skills/intent_services/padatious_service.py
+++ b/mycroft/skills/intent_services/padatious_service.py
@@ -52,6 +52,11 @@ def __init__(self, bus, config):
self.bus.on('detach_intent', self.handle_detach_intent)
self.bus.on('detach_skill', self.handle_detach_skill)
self.bus.on('mycroft.skills.initialized', self.train)
+ self.bus.on('intent.service.padatious.get', self.handle_get_padatious)
+ self.bus.on('intent.service.padatious.manifest.get',
+ self.handle_manifest)
+ self.bus.on('intent.service.padatious.entities.manifest.get',
+ self.handle_entity_manifest)
self.finished_training_event = Event()
self.finished_initial_train = False
@@ -238,3 +243,23 @@ def calc_intent(self, utt):
utt (str): utterance to calculate best intent for
"""
return self.container.calc_intent(utt)
+
+ def handle_get_padatious(self, message):
+ utterance = message.data["utterance"]
+ norm = message.data.get('norm_utt', utterance)
+ intent = self.calc_intent(utterance)
+ if not intent and norm != utterance:
+ intent = self.calc_intent(norm)
+ if intent:
+ intent = intent.__dict__
+ self.bus.emit(message.reply("intent.service.padatious.reply",
+ {"intent": intent}))
+
+ def handle_manifest(self, message):
+ self.bus.emit(message.reply("intent.service.padatious.manifest",
+ {"intents": self.registered_intents}))
+
+ def handle_entity_manifest(self, message):
+ self.bus.emit(
+ message.reply("intent.service.padatious.entities.manifest",
+ {"entities": self.registered_entities}))
\ No newline at end of file
diff --git a/mycroft/skills/padatious_service.py b/mycroft/skills/padatious_service.py
index 1b6c248ab04..72f6425d6d7 100644
--- a/mycroft/skills/padatious_service.py
+++ b/mycroft/skills/padatious_service.py
@@ -12,201 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-from functools import lru_cache
-from subprocess import call
-from threading import Event
-from time import time as get_time, sleep
-from os.path import expanduser, isfile
-
-from mycroft.configuration import Configuration
-from mycroft.messagebus.message import Message
-from mycroft.skills.core import FallbackSkill
-from mycroft.util.log import LOG
-
-
-class PadatiousService(FallbackSkill):
- instance = None
-
- fallback_tight_match = 5 # Fallback priority for the conf > 0.8 match
- fallback_loose_match = 89 # Fallback priority for the conf > 0.5 match
-
- def __init__(self, bus, service):
- FallbackSkill.__init__(self, use_settings=False)
- if not PadatiousService.instance:
- PadatiousService.instance = self
-
- self.padatious_config = Configuration.get()['padatious']
- self.service = service
- intent_cache = expanduser(self.padatious_config['intent_cache'])
-
- try:
- from padatious import IntentContainer
- except ImportError:
- LOG.error('Padatious not installed. Please re-run dev_setup.sh')
- try:
- call(['notify-send', 'Padatious not installed',
- 'Please run build_host_setup and dev_setup again'])
- except OSError:
- pass
- return
-
- self.container = IntentContainer(intent_cache)
-
- self._bus = bus
- self.bus.on('padatious:register_intent', self.register_intent)
- self.bus.on('padatious:register_entity', self.register_entity)
- self.bus.on('detach_intent', self.handle_detach_intent)
- self.bus.on('detach_skill', self.handle_detach_skill)
- self.bus.on('mycroft.skills.initialized', self.train)
- self.bus.on('intent.service.padatious.get', self.handle_get_padatious)
- self.bus.on('intent.service.padatious.manifest.get',
- self.handle_manifest)
- self.bus.on('intent.service.padatious.entities.manifest.get',
- self.handle_entity_manifest)
-
- # Call Padatious an an early fallback, looking for a high match intent
- self.register_fallback(self.handle_fallback,
- PadatiousService.fallback_tight_match)
-
- # Try loose Padatious intent match before going to fallback-unknown
- self.register_fallback(self.handle_fallback_last_chance,
- PadatiousService.fallback_loose_match)
-
- self.finished_training_event = Event()
- self.finished_initial_train = False
-
- self.train_delay = self.padatious_config['train_delay']
- self.train_time = get_time() + self.train_delay
-
- self.registered_intents = []
- self.registered_entities = []
-
- def make_active(self):
- """Override the make active since this is not a real fallback skill."""
- pass
-
- def train(self, message=None):
- padatious_single_thread = Configuration.get()[
- 'padatious']['single_thread']
- if message is None:
- single_thread = padatious_single_thread
- else:
- single_thread = message.data.get('single_thread',
- padatious_single_thread)
-
- self.finished_training_event.clear()
-
- LOG.info('Training... (single_thread={})'.format(single_thread))
- self.container.train(single_thread=single_thread)
- LOG.info('Training complete.')
-
- self.finished_training_event.set()
- if not self.finished_initial_train:
- self.bus.emit(Message('mycroft.skills.trained'))
- self.finished_initial_train = True
-
- def wait_and_train(self):
- if not self.finished_initial_train:
- return
- sleep(self.train_delay)
- if self.train_time < 0.0:
- return
-
- if self.train_time <= get_time() + 0.01:
- self.train_time = -1.0
- self.train()
-
- def __detach_intent(self, intent_name):
- """ Remove an intent if it has been registered.
-
- Arguments:
- intent_name (str): intent identifier
- """
- if intent_name in self.registered_intents:
- self.registered_intents.remove(intent_name)
- self.container.remove_intent(intent_name)
-
- def handle_detach_intent(self, message):
- self.__detach_intent(message.data.get('intent_name'))
-
- def handle_detach_skill(self, message):
- skill_id = message.data['skill_id']
- remove_list = [i for i in self.registered_intents if skill_id in i]
- for i in remove_list:
- self.__detach_intent(i)
-
- def _register_object(self, message, object_name, register_func):
- file_name = message.data['file_name']
- name = message.data['name']
-
- LOG.debug('Registering Padatious ' + object_name + ': ' + name)
-
- if not isfile(file_name):
- LOG.warning('Could not find file ' + file_name)
- return
-
- register_func(name, file_name)
- self.train_time = get_time() + self.train_delay
- self.wait_and_train()
-
- def register_intent(self, message):
- self.registered_intents.append(message.data['name'])
- self._register_object(message, 'intent', self.container.load_intent)
-
- def register_entity(self, message):
- self.registered_entities.append(message.data)
- self._register_object(message, 'entity', self.container.load_entity)
-
- def handle_fallback(self, message, threshold=0.8):
- if not self.finished_training_event.is_set():
- LOG.debug('Waiting for Padatious training to finish...')
- return False
-
- utt = message.data.get('utterance', '')
- LOG.debug("Padatious fallback attempt: " + utt)
- intent = self.calc_intent(utt)
-
- if not intent or intent.conf < threshold:
- # Attempt to use normalized() version
- norm = message.data.get('norm_utt', utt)
- if norm != utt:
- LOG.debug(" alt attempt: " + norm)
- intent = self.calc_intent(norm)
- utt = norm
- if not intent or intent.conf < threshold:
- return False
-
- intent.matches['utterance'] = utt
- self.service.add_active_skill(intent.name.split(':')[0])
- self.bus.emit(message.forward(intent.name, data=intent.matches))
- return True
-
- def handle_fallback_last_chance(self, message):
- return self.handle_fallback(message, 0.5)
-
- def handle_get_padatious(self, message):
- utterance = message.data["utterance"]
- norm = message.data.get('norm_utt', utterance)
- intent = self.calc_intent(utterance)
- if not intent and norm != utterance:
- intent = PadatiousService.instance.calc_intent(norm)
- if intent:
- intent = intent.__dict__
- self.bus.emit(message.reply("intent.service.padatious.reply",
- {"intent": intent}))
-
- def handle_manifest(self, message):
- self.bus.emit(message.reply("intent.service.padatious.manifest",
- {"intents": self.registered_intents}))
-
- def handle_entity_manifest(self, message):
- self.bus.emit(
- message.reply("intent.service.padatious.entities.manifest",
- {"entities": self.registered_entities}))
-
- # NOTE: This cache will keep a reference to this calss (PadatiousService),
- # but we can live with that since it is used as a singleton.
- @lru_cache(maxsize=2) # 2 catches both raw and normalized utts in cache
- def calc_intent(self, utt):
- return self.container.calc_intent(utt)
+## BACKWARDS COMPATIBILITY
+from mycroft.skills.intent_services.padatious_service import PadatiousService
From bd5bd6fac9258a733b099f66679b8b762ae87a77 Mon Sep 17 00:00:00 2001
From: jarbasal <jarbasai@mailfence.com>
Date: Thu, 18 Feb 2021 13:32:08 +0000
Subject: [PATCH 2/2] pep8
---
mycroft/skills/intent_services/padatious_service.py | 2 +-
mycroft/skills/padatious_service.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mycroft/skills/intent_services/padatious_service.py b/mycroft/skills/intent_services/padatious_service.py
index e1843f6c984..d3fcc18de47 100644
--- a/mycroft/skills/intent_services/padatious_service.py
+++ b/mycroft/skills/intent_services/padatious_service.py
@@ -262,4 +262,4 @@ def handle_manifest(self, message):
def handle_entity_manifest(self, message):
self.bus.emit(
message.reply("intent.service.padatious.entities.manifest",
- {"entities": self.registered_entities}))
\ No newline at end of file
+ {"entities": self.registered_entities}))
diff --git a/mycroft/skills/padatious_service.py b/mycroft/skills/padatious_service.py
index 72f6425d6d7..6dffa13d872 100644
--- a/mycroft/skills/padatious_service.py
+++ b/mycroft/skills/padatious_service.py
@@ -13,5 +13,5 @@
# limitations under the License.
#
-## BACKWARDS COMPATIBILITY
+# BACKWARDS COMPATIBILITY
from mycroft.skills.intent_services.padatious_service import PadatiousService

View File

@ -1,375 +0,0 @@
From ae33770b5b842b9ac51fa7eefcb9b3808590f2e8 Mon Sep 17 00:00:00 2001
From: jarbasal <jarbasai@mailfence.com>
Date: Thu, 18 Feb 2021 18:28:31 +0000
Subject: [PATCH 1/4] enclosure cleanup
---
mycroft/client/enclosure/base.py | 39 ++++++
mycroft/client/enclosure/generic/__init__.py | 139 +------------------
2 files changed, 42 insertions(+), 136 deletions(-)
diff --git a/mycroft/client/enclosure/base.py b/mycroft/client/enclosure/base.py
index 4d26a42f43f..7d55040d13b 100644
--- a/mycroft/client/enclosure/base.py
+++ b/mycroft/client/enclosure/base.py
@@ -23,6 +23,7 @@
from mycroft.util.log import LOG
import json
+import time
import tornado.web as web
from tornado import ioloop
from tornado.websocket import WebSocketHandler
@@ -70,6 +71,10 @@ def __init__(self):
# Create Message Bus Client
self.bus = MessageBusClient()
+ # TODO: this requires the Enclosure to be up and running before the
+ # training is complete.
+ self.bus.on('mycroft.skills.trained', self.is_device_ready)
+
self.gui = create_gui_service(self, config['gui_websocket'])
# This datastore holds the data associated with the GUI provider. Data
# is stored in Namespaces, so you can have:
@@ -115,6 +120,40 @@ def stop(self):
"""Perform any enclosure shutdown processes."""
pass
+ def is_device_ready(self, message):
+ is_ready = False
+ # Bus service assumed to be alive if messages sent and received
+ # Enclosure assumed to be alive if this method is running
+ services = {'audio': False, 'speech': False, 'skills': False}
+ start = time.monotonic()
+ while not is_ready:
+ is_ready = self.check_services_ready(services)
+ if is_ready:
+ break
+ elif time.monotonic() - start >= 60:
+ raise Exception('Timeout waiting for services start.')
+ else:
+ time.sleep(3)
+
+ if is_ready:
+ LOG.info("Mycroft is all loaded and ready to roll!")
+ self.bus.emit(Message('mycroft.ready'))
+
+ return is_ready
+
+ def check_services_ready(self, services):
+ """Report if all specified services are ready.
+
+ services (iterable): service names to check.
+ """
+ for ser in services:
+ services[ser] = False
+ response = self.bus.wait_for_response(Message(
+ 'mycroft.{}.is_ready'.format(ser)))
+ if response and response.data['status']:
+ services[ser] = True
+ return all([services[ser] for ser in services])
+
######################################################################
# GUI client API
@property
diff --git a/mycroft/client/enclosure/generic/__init__.py b/mycroft/client/enclosure/generic/__init__.py
index 3c47a545943..23c4fde794c 100644
--- a/mycroft/client/enclosure/generic/__init__.py
+++ b/mycroft/client/enclosure/generic/__init__.py
@@ -12,144 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-import subprocess
-import time
-import sys
-from threading import Thread, Timer
-
-import mycroft.dialog
from mycroft.client.enclosure.base import Enclosure
-from mycroft.api import has_been_paired
-from mycroft.audio import wait_while_speaking
-from mycroft.enclosure.display_manager import \
- init_display_manager_bus_connection
-from mycroft.messagebus.message import Message
-from mycroft.util import connected
-from mycroft.util.log import LOG
class EnclosureGeneric(Enclosure):
"""
- Serves as a communication interface between a simple text frontend and
- Mycroft Core. This is used for Picroft or other headless systems,
- and/or for users of the CLI.
- """
-
- _last_internet_notification = 0
-
- def __init__(self):
- super().__init__()
-
- # Notifications from mycroft-core
- self.bus.on('enclosure.notify.no_internet', self.on_no_internet)
- # TODO: this requires the Enclosure to be up and running before the
- # training is complete.
- self.bus.on('mycroft.skills.trained', self.is_device_ready)
-
- # initiates the web sockets on display manager
- # NOTE: this is a temporary place to connect the display manager
- init_display_manager_bus_connection()
-
- # verify internet connection and prompt user on bootup if needed
- if not connected():
- # We delay this for several seconds to ensure that the other
- # clients are up and connected to the messagebus in order to
- # receive the "speak". This was sometimes happening too
- # quickly and the user wasn't notified what to do.
- Timer(5, self._do_net_check).start()
-
- def is_device_ready(self, message):
- is_ready = False
- # Bus service assumed to be alive if messages sent and received
- # Enclosure assumed to be alive if this method is running
- services = {'audio': False, 'speech': False, 'skills': False}
- start = time.monotonic()
- while not is_ready:
- is_ready = self.check_services_ready(services)
- if is_ready:
- break
- elif time.monotonic() - start >= 60:
- raise Exception('Timeout waiting for services start.')
- else:
- time.sleep(3)
-
- if is_ready:
- LOG.info("Mycroft is all loaded and ready to roll!")
- self.bus.emit(Message('mycroft.ready'))
-
- return is_ready
-
- def check_services_ready(self, services):
- """Report if all specified services are ready.
-
- services (iterable): service names to check.
- """
- for ser in services:
- services[ser] = False
- response = self.bus.wait_for_response(Message(
- 'mycroft.{}.is_ready'.format(ser)))
- if response and response.data['status']:
- services[ser] = True
- return all([services[ser] for ser in services])
-
- def on_no_internet(self, event=None):
- if connected():
- # One last check to see if connection was established
- return
-
- if time.time() - Enclosure._last_internet_notification < 30:
- # don't bother the user with multiple notifications with 30 secs
- return
-
- Enclosure._last_internet_notification = time.time()
-
- # TODO: This should go into EnclosureMark1 subclass of Enclosure.
- if has_been_paired():
- # Handle the translation within that code.
- self.bus.emit(Message("speak", {
- 'utterance': "This device is not connected to the Internet. "
- "Either plug in a network cable or set up your "
- "wifi connection."}))
- else:
- # enter wifi-setup mode automatically
- self.bus.emit(Message('system.wifi.setup', {'lang': self.lang}))
-
- def speak(self, text):
- self.bus.emit(Message("speak", {'utterance': text}))
-
- def _handle_pairing_complete(self, _):
- """
- Handler for 'mycroft.paired', unmutes the mic after the pairing is
- complete.
- """
- self.bus.emit(Message("mycroft.mic.unmute"))
-
- def _do_net_check(self):
- # TODO: This should live in the derived Enclosure, e.g. EnclosureMark1
- LOG.info("Checking internet connection")
- if not connected(): # and self.conn_monitor is None:
- if has_been_paired():
- # TODO: Enclosure/localization
- self.speak("This unit is not connected to the Internet. "
- "Either plug in a network cable or setup your "
- "wifi connection.")
- else:
- # Begin the unit startup process, this is the first time it
- # is being run with factory defaults.
-
- # TODO: This logic should be in EnclosureMark1
- # TODO: Enclosure/localization
-
- # Don't listen to mic during this out-of-box experience
- self.bus.emit(Message("mycroft.mic.mute"))
- # Setup handler to unmute mic at the end of on boarding
- # i.e. after pairing is complete
- self.bus.once('mycroft.paired', self._handle_pairing_complete)
-
- self.speak(mycroft.dialog.get('mycroft.intro'))
- wait_while_speaking()
- time.sleep(2) # a pause sounds better than just jumping in
-
- # Kick off wifi-setup automatically
- data = {'allow_timeout': False, 'lang': self.lang}
- self.bus.emit(Message('system.wifi.setup', data))
+ Serves as a communication interface between GUI and
+ Mycroft Core. This is used for Picroft or other headless systems
+ """
\ No newline at end of file
From a5ab14ae5acc5c88fef2dbb23a6729d1eff5ca9e Mon Sep 17 00:00:00 2001
From: jarbasal <jarbasai@mailfence.com>
Date: Thu, 18 Feb 2021 19:24:59 +0000
Subject: [PATCH 2/4] only report ready after pairing
---
mycroft/client/enclosure/base.py | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/mycroft/client/enclosure/base.py b/mycroft/client/enclosure/base.py
index 7d55040d13b..aacefe46449 100644
--- a/mycroft/client/enclosure/base.py
+++ b/mycroft/client/enclosure/base.py
@@ -16,7 +16,7 @@
from collections import namedtuple
from threading import Lock
-
+from mycroft.api import is_paired
from mycroft.configuration import Configuration
from mycroft.messagebus.client import MessageBusClient
from mycroft.util import create_daemon, start_message_bus_client
@@ -73,7 +73,8 @@ def __init__(self):
# TODO: this requires the Enclosure to be up and running before the
# training is complete.
- self.bus.on('mycroft.skills.trained', self.is_device_ready)
+ self.bus.once('mycroft.skills.trained',
+ self.handle_check_device_readiness)
self.gui = create_gui_service(self, config['gui_websocket'])
# This datastore holds the data associated with the GUI provider. Data
@@ -120,7 +121,7 @@ def stop(self):
"""Perform any enclosure shutdown processes."""
pass
- def is_device_ready(self, message):
+ def is_device_ready(self):
is_ready = False
# Bus service assumed to be alive if messages sent and received
# Enclosure assumed to be alive if this method is running
@@ -134,12 +135,19 @@ def is_device_ready(self, message):
raise Exception('Timeout waiting for services start.')
else:
time.sleep(3)
+ return is_ready
- if is_ready:
- LOG.info("Mycroft is all loaded and ready to roll!")
- self.bus.emit(Message('mycroft.ready'))
+ def handle_check_device_readiness(self, message):
- return is_ready
+ def handle_ready(message=None):
+ if self.is_device_ready():
+ LOG.info("Mycroft is all loaded and ready to roll!")
+ self.bus.emit(Message('mycroft.ready'))
+
+ if not is_paired():
+ self.bus.once("mycroft.paired", handle_ready)
+ else:
+ handle_ready()
def check_services_ready(self, services):
"""Report if all specified services are ready.
From 4d67450e0e1b9d86a1d452f7e683500335224d3b Mon Sep 17 00:00:00 2001
From: jarbasal <jarbasai@mailfence.com>
Date: Sun, 21 Feb 2021 15:01:30 +0000
Subject: [PATCH 3/4] pairing non sense
---
mycroft/skills/__main__.py | 12 ++++--------
mycroft/stt/__init__.py | 2 +-
2 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/mycroft/skills/__main__.py b/mycroft/skills/__main__.py
index 0d0cc378edf..bca66ccdfc1 100644
--- a/mycroft/skills/__main__.py
+++ b/mycroft/skills/__main__.py
@@ -39,10 +39,10 @@
from mycroft.util.lang import set_active_lang
from mycroft.util.log import LOG
from mycroft.util.process_utils import ProcessStatus, StatusCallbackMap
-from .core import FallbackSkill
-from .event_scheduler import EventScheduler
-from .intent_service import IntentService
-from .skill_manager import SkillManager
+from mycroft.skills.core import FallbackSkill
+from mycroft.skills.event_scheduler import EventScheduler
+from mycroft.skills.intent_service import IntentService
+from mycroft.skills.skill_manager import SkillManager
RASPBERRY_PI_PLATFORMS = ('mycroft_mark_1', 'picroft', 'mycroft_mark_2pi')
@@ -127,10 +127,6 @@ def _ensure_device_is_paired(self):
Pairing cannot be performed if there is no connection to the back end.
So skip pairing if the backend is down.
"""
- if not self.is_paired and not self.backend_down:
- LOG.info('Device not paired, invoking the pairing skill')
- payload = dict(utterances=["pair my device"], lang="en-us")
- self.bus.emit(Message("recognizer_loop:utterance", payload))
def _update_device_attributes_on_backend(self):
"""Communicate version information to the backend.
diff --git a/mycroft/stt/__init__.py b/mycroft/stt/__init__.py
index 5028f20ea1d..a0d49a6e510 100644
--- a/mycroft/stt/__init__.py
+++ b/mycroft/stt/__init__.py
@@ -285,7 +285,7 @@ def wrapper(*args, **kwargs):
if e.response.status_code == 401:
LOG.warning('Access Denied at mycroft.ai')
# phrase to start the pairing process
- return 'pair my device'
+ return None
else:
raise
return wrapper
From 87113e92f3909a13c1007d6f935398aa98d96be3 Mon Sep 17 00:00:00 2001
From: jarbasal <jarbasai@mailfence.com>
Date: Sun, 21 Feb 2021 20:45:50 +0000
Subject: [PATCH 4/4] pairing trigger
---
mycroft/skills/__main__.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/mycroft/skills/__main__.py b/mycroft/skills/__main__.py
index bca66ccdfc1..609fb0ee932 100644
--- a/mycroft/skills/__main__.py
+++ b/mycroft/skills/__main__.py
@@ -123,10 +123,10 @@ def _display_skill_loading_notification(self):
def _ensure_device_is_paired(self):
"""Determine if device is paired, if not automatically start pairing.
-
- Pairing cannot be performed if there is no connection to the back end.
- So skip pairing if the backend is down.
"""
+ if not self.is_paired:
+ LOG.info('Device not paired, invoking the pairing skill')
+ self.bus.emit(Message("mycroft.not.paired"))
def _update_device_attributes_on_backend(self):
"""Communicate version information to the backend.

View File

@ -1 +1 @@
sha256 48e54c3e05347667e068cf6db5cd0905647b85bea32533d8e4aedf0611776185 python-mycroft-a976bd1094dbfba155811df1ca227b40be9422ff.tar.gz
sha256 fc0b7c2411829fb88259c4f45f9b5ae8875e27f87e651398430bd40d7ca8fe37 python-mycroft-fd4e0dc160391f1b5703c66f9482e93d30c15118.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
PYTHON_MYCROFT_VERSION = a976bd1094dbfba155811df1ca227b40be9422ff
PYTHON_MYCROFT_VERSION = fd4e0dc160391f1b5703c66f9482e93d30c15118
PYTHON_MYCROFT_SITE = $(call github,MycroftAI,mycroft-core,$(PYTHON_MYCROFT_VERSION))
PYTHON_MYCROFT_SETUP_TYPE = setuptools
PYTHON_MYCROFT_LICENSE_FILES = LICENSE

View File

@ -1 +1 @@
sha256 417094ab4016fba6f1347712f811f2ce93eb27deedee4e095d8bc52b8483c02a python-ovos-utils-7329fe7aa6454131e795d80f4ba6cc1c24cb3fed.tar.gz
sha256 f05d420f11b38bb295af251739bf8b4d1c503f2dabc255ea704b737c9b74d43f python-ovos-utils-8d87353defd0d8fff26e031a33879ed5938bf372.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
PYTHON_OVOS_UTILS_VERSION = 7329fe7aa6454131e795d80f4ba6cc1c24cb3fed
PYTHON_OVOS_UTILS_VERSION = 8d87353defd0d8fff26e031a33879ed5938bf372
PYTHON_OVOS_UTILS_SITE = $(call github,OpenVoiceOS,ovos_utils,$(PYTHON_OVOS_UTILS_VERSION))
PYTHON_OVOS_UTILS_SETUP_TYPE = setuptools
PYTHON_OVOS_UTILS_LICENSE_FILES = LICENSE

View File

@ -1,2 +1,2 @@
# sha256 from https://pypi.org
sha256 f4048a6e882a093affc52469889fbbfa0514fec2e4b01b39446f9d795ab44333 python-pymplayer-eaa0a1dbfc60cb0f4f1b3e495d665714c089474a.tar.gz
sha256 4e8e4581761fffdd8915829baf2b16b83265a6aa75455f1647667fdc8091bad2 python-pymplayer-eaa0a1dbfc60cb0f4f1b3e495d665714c089474a-br1.tar.gz

View File

@ -1,2 +1,2 @@
# Locally computed
sha256 e4559ce376aa180fe6cbd4dc8b6821150be63f5d2a3dc60b2c104e01d0076fad qt5ct-587.tar.gz
sha256 7c8aaa1e107e9d3d6ce7ef12a65c458c1202285dfafe26138272fddb7b9bb24a qt5ct-587-br2.tar.gz

View File

@ -1,2 +1,2 @@
# Locally computed
sha256 d2e01910ac61f1f84599bd1b15ab9ce18ddd02c713f81418724ac7c8f584fb47 respeaker-8cce4e8ffa77e1e2b89812e5e2ccf6cfbc1086cf.tar.gz
sha256 9a97eb4e53398761b26104bd43018d1563efb133d7ac67e0e5ea25d15ab45e66 respeaker-50dbe24b7839fb4d82d01693ca15fa631b5a761d.tar.gz

View File

@ -4,8 +4,8 @@
#
################################################################################
RESPEAKER_VERSION = 8cce4e8ffa77e1e2b89812e5e2ccf6cfbc1086cf
RESPEAKER_SITE = $(call github,respeaker,seeed-voicecard,$(RESPEAKER_VERSION))
RESPEAKER_VERSION = 50dbe24b7839fb4d82d01693ca15fa631b5a761d
RESPEAKER_SITE = $(call github,HinTak,seeed-voicecard,$(RESPEAKER_VERSION))
RESPEAKER_LICENSE = GNU General Public License v3.0
RESPEAKER_DEPENDENCIES = rpi-firmware dtc

View File

@ -4,7 +4,7 @@
#
################################################################################
SNAPCAST_VERSION = v0.23.0
SNAPCAST_VERSION = v0.24.0
SNAPCAST_SITE = $(call github,badaix,snapcast,$(SNAPCAST_VERSION))
SNAPCAST_DEPENDENCIES = libogg alsa-lib avahi # libstdcpp libatomic libflac libvorbisidec
SNAPCAST_LICENSE = GPL-3.0+

View File

@ -1,14 +1,90 @@
[global]
# Your Spotify account name.
#username = "username"
# Your Spotify account password.
#password = "password"
# A command that gets executed and can be used to
# retrieve your password.
# The command should return the password on stdout.
#
# This is an alternative to the `password` field. Both
# can't be used simultaneously.
#password_cmd = "command_that_writes_password_to_stdout"
# If set to true, `spotifyd` tries to look up your
# password in the system's password storage.
#
# This is an alternative to the `password` field. Both
# can't be used simultaneously.
#use_keyring = true
#
# If set to true, `spotifyd` tries to bind to the session dbus
# and expose MPRIS controls. When running headless, without a dbus session,
# then set this to false to avoid binding errors
#
#use_mpris = true
# The audio backend used to play the your music. To get
# a list of possible backends, run `spotifyd --help`.
backend = "pulseaudio"
# The alsa audio device to stream audio to. To get a
# list of valid devices, run `aplay -L`,
#device = "alsa_audio_device" # omit for macOS
# The alsa control device. By default this is the same
# name as the `device` field.
#control = "alsa_audio_device" # omit for macOS
# The alsa mixer used by `spotifyd`.
#mixer = "PCM"
# The volume controller. Each one behaves different to
# volume increases. For possible values, run
# `spotifyd --help`.
#volume_controller = "alsa" # use softvol for macOS
# A command that gets executed in your shell after each song changes.
#on_song_change_hook = "command_to_run_on_playback_events"
# The name that gets displayed under the connect tab on
# official clients. Spaces are not allowed!
device_name = "OpenVoiceOS"
# The audio bitrate. 96, 160 or 320 kbit/s
#bitrate = 160
# The directory used to cache audio data. This setting can save
# a lot of bandwidth when activated, as it will avoid re-downloading
# audio files when replaying them.
#
# Note: The file path does not get expanded. Environment variables and
# shell placeholders like $HOME or ~ don't work!
#cache_path = "cache_directory"
# If set to true, audio data does NOT get cached.
#no_audio_cache = true
# Volume on startup between 0 and 100
# NOTE: This variable's type will change in v0.4, to a number (instead of string)
#initial_volume = "90"
# If set to true, enables volume normalisation between songs.
#volume_normalisation = true
# The normalisation pregain that is applied for each song.
#normalisation_pregain = -10
# The port `spotifyd` uses to announce its service over the network.
zeroconf_port = 57621
# Cleartext username and password for remote Spotify access.
# Make sure the file is only accessible by spotifyd.
# username = USER
# password = PASS
# The proxy `spotifyd` will use to connect to spotify.
#proxy = "http://proxy.example.org:8080"
# alsa, pulseaudio or pipe
backend = pulseaudio
# Name in Spotify Connect, cannot contain spaces:
device_name = OpenVoiceOS
# The displayed device type in Spotify clients.
# Can be unknown, computer, tablet, smartphone, speaker, t_v,
# a_v_r (Audio/Video Receiver), s_t_b (Set-Top Box), and audio_dongle.
device_type = "speaker"

View File

@ -4,7 +4,7 @@
#
################################################################################
SPOTIFYD_VERSION = v0.2.24
SPOTIFYD_VERSION = v0.3.0
SPOTIFYD_SITE = $(call github,Spotifyd,spotifyd,$(SPOTIFYD_VERSION))
SPOTIFYD_LICENSE = GPL-3.0
SPOTIFYD_LICENSE_FILES = LICENSE

View File

@ -1,47 +1,47 @@
From f058f4270a1dadee8ade285c55fc26b9224920e9 Mon Sep 17 00:00:00 2001
From 9869a77fbda84c96968708e1c32116a6b742c6f8 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Thu, 29 Oct 2020 19:39:49 +0100
Date: Thu, 18 Mar 2021 09:57:31 +0100
Subject: [PATCH 1/1] Downgrade python-pillow to 7.1.2
---
package/python-pillow/Config.in | 1 -
package/python-pillow/Config.in | 2 --
package/python-pillow/python-pillow.hash | 2 +-
package/python-pillow/python-pillow.mk | 4 ++--
3 files changed, 3 insertions(+), 4 deletions(-)
3 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/package/python-pillow/Config.in b/package/python-pillow/Config.in
index f98a4a9e5b..f824d1371e 100644
index ae6d8c8346..f824d1371e 100644
--- a/package/python-pillow/Config.in
+++ b/package/python-pillow/Config.in
@@ -1,7 +1,6 @@
@@ -1,8 +1,6 @@
config BR2_PACKAGE_PYTHON_PILLOW
bool "python-pillow"
depends on BR2_PACKAGE_PYTHON3
- select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime
- select BR2_PACKAGE_PYTHON3_ZLIB
help
Pillow is the "friendly" PIL fork by Alex Clark and
Contributors. PIL is the Python Imaging Library by Fredrik
diff --git a/package/python-pillow/python-pillow.hash b/package/python-pillow/python-pillow.hash
index f80b79fe5f..d222645633 100644
index 0849577f66..0354269e0e 100644
--- a/package/python-pillow/python-pillow.hash
+++ b/package/python-pillow/python-pillow.hash
@@ -1,5 +1,5 @@
@@ -1,4 +1,4 @@
# md5, sha256 from https://pypi.org/project/Pillow/
md5 f1f7592c51260e5080d3cd71781ea675 Pillow-7.1.2.tar.gz
-sha256 97f9e7953a77d5a70f49b9a48da7776dc51e9b738151b22dacf101641594a626 Pillow-7.2.0.tar.gz
-sha256 11c5c6e9b02c9dac08af04f093eb5a2f84857df70a7d4a6a6ad461aca803fb9e Pillow-8.0.1.tar.gz
+sha256 a0b49960110bc6ff5fead46013bcb8825d101026d466f3a4de3476defe0fb0dd Pillow-7.1.2.tar.gz
# Locally computed sha256 checksums
sha256 37de42abe33a247e8f03d2313657a0f174a239a198f526add6544ff3e2643b81 LICENSE
diff --git a/package/python-pillow/python-pillow.mk b/package/python-pillow/python-pillow.mk
index 931dce53d2..2832eeee0b 100644
index 60a0bb3e1b..a091ebe64f 100644
--- a/package/python-pillow/python-pillow.mk
+++ b/package/python-pillow/python-pillow.mk
@@ -4,8 +4,8 @@
#
################################################################################
-PYTHON_PILLOW_VERSION = 7.2.0
-PYTHON_PILLOW_SITE = https://files.pythonhosted.org/packages/3e/02/b09732ca4b14405ff159c470a612979acfc6e8645dc32f83ea0129709f7a
-PYTHON_PILLOW_VERSION = 8.0.1
-PYTHON_PILLOW_SITE = https://files.pythonhosted.org/packages/2b/06/93bf1626ef36815010e971a5ce90f49919d84ab5d2fa310329f843a74bc1
+PYTHON_PILLOW_VERSION = 7.1.2
+PYTHON_PILLOW_SITE = https://files.pythonhosted.org/packages/ce/ef/e793f6ffe245c960c42492d0bb50f8d14e2ba223f1922a5c3c81569cec44
PYTHON_PILLOW_SOURCE = Pillow-$(PYTHON_PILLOW_VERSION).tar.gz

View File

@ -1,40 +1,40 @@
From b331a66c7cc9efadf2dcb4ae26cd592bbecb4278 Mon Sep 17 00:00:00 2001
From: Peter Steenbergen <info@j1nx.nl>
Date: Mon, 7 Jan 2019 14:57:24 +0100
From 132d418ad686aadf646ba7a8c90774e460f05690 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Thu, 18 Mar 2021 10:01:14 +0100
Subject: [PATCH 1/1] Downgrade python-serial to 3.0
---
package/python-serial/python-serial.hash | 1 +
package/python-serial/python-serial.hash | 2 +-
package/python-serial/python-serial.mk | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package/python-serial/python-serial.hash b/package/python-serial/python-serial.hash
index 96209a9965..0c68849324 100644
index d885d3c0c8..dff215eff2 100644
--- a/package/python-serial/python-serial.hash
+++ b/package/python-serial/python-serial.hash
@@ -1,5 +1,6 @@
@@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/pyserial/json
md5 ed6183b15519a0ae96675e9c3330c69b pyserial-3.4.tar.gz
sha256 6e2d401fdee0eab996cf734e67773a0143b932772ca8b42451440cfed942c627 pyserial-3.4.tar.gz
+sha256 056c2d96c83c009d8d04aad43a90f91f10f6a97d42c0d9656c2655c63fb8ff07 pyserial-3.0.tar.gz
md5 1cf25a76da59b530dbfc2cf99392dc83 pyserial-3.5.tar.gz
-sha256 3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb pyserial-3.5.tar.gz
+sha256 056c2d96c83c009d8d04aad43a90f91f10f6a97d42c0d9656c2655c63fb8ff07 pyserial-3.0.tar.gz
# Locally computed sha256 checksums
sha256 a89d951d157e2c199fbbe7ecf8d41bc3bc93de166db524aa6b9b610dbccc832d LICENSE.txt
sha256 f91cb9813de6a5b142b8f7f2dede630b5134160aedaeaf55f4d6a7e2593ca3f3 LICENSE.txt
diff --git a/package/python-serial/python-serial.mk b/package/python-serial/python-serial.mk
index d583ac65ab..70cf6452f5 100644
index 249ea9d5a3..70cf6452f5 100644
--- a/package/python-serial/python-serial.mk
+++ b/package/python-serial/python-serial.mk
@@ -4,9 +4,9 @@
#
################################################################################
-PYTHON_SERIAL_VERSION = 3.4
-PYTHON_SERIAL_VERSION = 3.5
+PYTHON_SERIAL_VERSION = 3.0
PYTHON_SERIAL_SOURCE = pyserial-$(PYTHON_SERIAL_VERSION).tar.gz
-PYTHON_SERIAL_SITE = https://files.pythonhosted.org/packages/cc/74/11b04703ec416717b247d789103277269d567db575d2fd88f25d9767fe3d
-PYTHON_SERIAL_SITE = https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082
+PYTHON_SERIAL_SITE = https://files.pythonhosted.org/packages/69/89/24fc8c26e23710a0d8fdf9e8134b28ceeab421d3f3e0165ceca6bdb98193
PYTHON_SERIAL_LICENSE = BSD-3-Clause
PYTHON_SERIAL_LICENSE_FILES = LICENSE.txt
PYTHON_SERIAL_SETUP_TYPE = setuptools
--
2.11.0
2.20.1

View File

@ -1,40 +1,40 @@
From 3bee492eb3f991b66401e4d47730e02dd59bca99 Mon Sep 17 00:00:00 2001
From: Peter Steenbergen <info@j1nx.nl>
Date: Mon, 2 Sep 2019 20:37:58 +0200
From 8f9cad2b43052880a35c4b33bcf20fbf43adf5e6 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Thu, 18 Mar 2021 15:14:11 +0100
Subject: [PATCH 1/1] Downgrade python-pyjwt to 1.6.4
---
package/python-pyjwt/python-pyjwt.hash | 1 +
package/python-pyjwt/python-pyjwt.hash | 2 +-
package/python-pyjwt/python-pyjwt.mk | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package/python-pyjwt/python-pyjwt.hash b/package/python-pyjwt/python-pyjwt.hash
index 62ec3559af..0842d2d899 100644
index 10875510f0..249ffa285c 100644
--- a/package/python-pyjwt/python-pyjwt.hash
+++ b/package/python-pyjwt/python-pyjwt.hash
@@ -1,5 +1,6 @@
@@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/PyJWT/json
md5 a4712f980c008696e13e09504120b2a0 PyJWT-1.7.1.tar.gz
sha256 8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96 PyJWT-1.7.1.tar.gz
+sha256 4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176 PyJWT-1.6.4.tar.gz
md5 7a1b1c8bfeb67c31ee4fdadefe5ff4b8 PyJWT-2.0.0.tar.gz
-sha256 7a2b271c6dac2fda9e0c33d176c4253faba2c6c6b3a99c7f28a32c3c97522779 PyJWT-2.0.0.tar.gz
+sha256 4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176 PyJWT-1.6.4.tar.gz
# Locally computed sha256 checksums
sha256 ec82af815b5f9da8685afb300cc5beb7949e1c22b79b6c1c054796cefdf6cac6 LICENSE
sha256 ec82af815b5f9da8685afb300cc5beb7949e1c22b79b6c1c054796cefdf6cac6 LICENSE
diff --git a/package/python-pyjwt/python-pyjwt.mk b/package/python-pyjwt/python-pyjwt.mk
index dfc66e5651..18b7976b19 100644
index 9215911389..18b7976b19 100644
--- a/package/python-pyjwt/python-pyjwt.mk
+++ b/package/python-pyjwt/python-pyjwt.mk
@@ -4,9 +4,9 @@
#
################################################################################
-PYTHON_PYJWT_VERSION = 1.7.1
-PYTHON_PYJWT_VERSION = 2.0.0
+PYTHON_PYJWT_VERSION = 1.6.4
PYTHON_PYJWT_SOURCE = PyJWT-$(PYTHON_PYJWT_VERSION).tar.gz
-PYTHON_PYJWT_SITE = https://files.pythonhosted.org/packages/2f/38/ff37a24c0243c5f45f5798bd120c0f873eeed073994133c084e1cf13b95c
-PYTHON_PYJWT_SITE = https://files.pythonhosted.org/packages/14/6d/096dc269d105ba374d6bfd3ecb22b516795ca0572499820dadc8178d9ae1
+PYTHON_PYJWT_SITE = https://files.pythonhosted.org/packages/00/5e/b358c9bb24421e6155799d995b4aa3aa3307ffc7ecae4ad9d29fd7e07a73
PYTHON_PYJWT_SETUP_TYPE = setuptools
PYTHON_PYJWT_LICENSE = MIT
PYTHON_PYJWT_LICENSE_FILES = LICENSE
--
2.11.0
2.20.1

View File

@ -1,7 +1,7 @@
From 04b2b1e2bc267a68b8b377d070a655a47e901744 Mon Sep 17 00:00:00 2001
From ef42b24ee3a4c4ddf58a56a4e35d07cc8942d45f Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Thu, 29 Oct 2020 20:05:23 +0100
Subject: [PATCH 1/1] Downgrade python-pyyaml to 5.1.2
Date: Mon, 29 Mar 2021 10:54:29 +0200
Subject: [PATCH 1/1] Downgrade python-pyyaml to 5.4
---
package/python-pyyaml/python-pyyaml.hash | 2 +-
@ -10,46 +10,46 @@ Subject: [PATCH 1/1] Downgrade python-pyyaml to 5.1.2
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package/python-pyyaml/python-pyyaml.hash b/package/python-pyyaml/python-pyyaml.hash
index 90e1f2199e..fb6cd3b365 100644
index 82b2f4f880..93d1af5879 100644
--- a/package/python-pyyaml/python-pyyaml.hash
+++ b/package/python-pyyaml/python-pyyaml.hash
@@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/PyYAML/json
md5 d3590b85917362e837298e733321962b PyYAML-5.3.1.tar.gz
-sha256 b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d PyYAML-5.3.1.tar.gz
+sha256 01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4 PyYAML-5.1.2.tar.gz
md5 46e25294c7efec23d4072ed6a7777f46 PyYAML-5.4.1.tar.gz
-sha256 607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e PyYAML-5.4.1.tar.gz
+sha256 3c49e39ac034fd64fd576d63bb4db53cda89b362768a67f07749d55f128ac18a PyYAML-5.4.tar.gz
# Locally computed sha256 checksums
sha256 c40112449f254b9753045925248313e9270efa36d226b22d82d4cc6c43c57f29 LICENSE
sha256 8d3928f9dc4490fd635707cb88eb26bd764102a7282954307d3e5167a577e8a4 LICENSE
diff --git a/package/python-pyyaml/python-pyyaml.mk b/package/python-pyyaml/python-pyyaml.mk
index 7bbae309c6..7cdd8edefb 100644
index c9013de8ec..fb3f42251b 100644
--- a/package/python-pyyaml/python-pyyaml.mk
+++ b/package/python-pyyaml/python-pyyaml.mk
@@ -5,9 +5,9 @@
################################################################################
# Please keep in sync package/python3-pyyaml/python3-pyyaml.mk
-PYTHON_PYYAML_VERSION = 5.3.1
+PYTHON_PYYAML_VERSION = 5.1.2
-PYTHON_PYYAML_VERSION = 5.4.1
+PYTHON_PYYAML_VERSION = 5.4
PYTHON_PYYAML_SOURCE = PyYAML-$(PYTHON_PYYAML_VERSION).tar.gz
-PYTHON_PYYAML_SITE = https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c
+PYTHON_PYYAML_SITE = https://files.pythonhosted.org/packages/e3/e8/b3212641ee2718d556df0f23f78de8303f068fe29cdaa7a91018849582fe
PYTHON_PYYAML_SETUP_TYPE = distutils
-PYTHON_PYYAML_SITE = https://files.pythonhosted.org/packages/a0/a4/d63f2d7597e1a4b55aa3b4d6c5b029991d3b824b5bd331af8d4ab1ed687d
+PYTHON_PYYAML_SITE = https://files.pythonhosted.org/packages/b5/fd/15638de2da0a5aa91c095718444624aa565f766fc178249ca6faa372f71a
PYTHON_PYYAML_SETUP_TYPE = setuptools
PYTHON_PYYAML_LICENSE = MIT
PYTHON_PYYAML_LICENSE_FILES = LICENSE
diff --git a/package/python3-pyyaml/python3-pyyaml.mk b/package/python3-pyyaml/python3-pyyaml.mk
index c0dcebf4fc..6c149168ae 100644
index f758341502..0ed35c5335 100644
--- a/package/python3-pyyaml/python3-pyyaml.mk
+++ b/package/python3-pyyaml/python3-pyyaml.mk
@@ -5,9 +5,9 @@
################################################################################
# Please keep in sync with package/python-pyyaml/python-pyyaml.mk
-PYTHON3_PYYAML_VERSION = 5.3.1
+PYTHON3_PYYAML_VERSION = 5.1.2
-PYTHON3_PYYAML_VERSION = 5.4.1
+PYTHON3_PYYAML_VERSION = 5.4
PYTHON3_PYYAML_SOURCE = PyYAML-$(PYTHON3_PYYAML_VERSION).tar.gz
-PYTHON3_PYYAML_SITE = https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c
+PYTHON3_PYYAML_SITE = https://files.pythonhosted.org/packages/e3/e8/b3212641ee2718d556df0f23f78de8303f068fe29cdaa7a91018849582fe
PYTHON3_PYYAML_SETUP_TYPE = distutils
-PYTHON3_PYYAML_SITE = https://files.pythonhosted.org/packages/a0/a4/d63f2d7597e1a4b55aa3b4d6c5b029991d3b824b5bd331af8d4ab1ed687d
+PYTHON3_PYYAML_SITE = https://files.pythonhosted.org/packages/b5/fd/15638de2da0a5aa91c095718444624aa565f766fc178249c
PYTHON3_PYYAML_SETUP_TYPE = setuptools
PYTHON3_PYYAML_LICENSE = MIT
PYTHON3_PYYAML_LICENSE_FILES = LICENSE
--

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ index 8730ec959b..d10a8b1db9 100644
+++ b/package/rpi-firmware/rpi-firmware.hash
@@ -1,3 +1,3 @@
# Locally computed
-sha256 c7a8c2b8cfe1977095d62086d340d6c15a383562aba2742e21df7f5f792aeb4b rpi-firmware-358f4c271f2bc10931aae8fe0879ffaded8b9c44.tar.gz
+sha256 1d9ec856aa152f059a80c457fd679144fab163dd72c8fbecb9e53532ea294748 rpi-firmware-70f1581eec2c036b7e9309f1af41c651fb125447.tar.gz
-sha256 ae4e317681995e0f7becd7900ae667cba394e3a0b7ca93a267f3303df7284697 rpi-firmware-d016a6eb01c8c7326a89cb42809fed2a21525de5.tar.gz
+sha256 x rpi-firmware-8717598c7eb443c39c28a4b3a66b4d369ae0a83f.tar.gz
sha256 c7283ff51f863d93a275c66e3b4cb08021a5dd4d8c1e7acc47d872fbe52d3d6b boot/LICENCE.broadcom
diff --git a/package/rpi-firmware/rpi-firmware.mk b/package/rpi-firmware/rpi-firmware.mk
index 8b2b2c7154..6099e1f170 100644
@ -25,8 +25,8 @@ index 8b2b2c7154..6099e1f170 100644
#
################################################################################
-RPI_FIRMWARE_VERSION = 358f4c271f2bc10931aae8fe0879ffaded8b9c44
+RPI_FIRMWARE_VERSION = 70f1581eec2c036b7e9309f1af41c651fb125447
-RPI_FIRMWARE_VERSION = d016a6eb01c8c7326a89cb42809fed2a21525de5
+RPI_FIRMWARE_VERSION = 8717598c7eb443c39c28a4b3a66b4d369ae0a83f
RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION))
RPI_FIRMWARE_LICENSE = BSD-3-Clause
RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom

View File

@ -14,8 +14,8 @@ index b8931d2c45..9afc5a96b0 100644
+++ b/package/rpi-wifi-firmware/rpi-wifi-firmware.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 05db087504be2f6bc1d902cca605114c7f9d458be0adb3b8026369357a329f7a rpi-wifi-firmware-d4f7087ecbc8eff9cb64a4650765697157821d64.tar.gz
+sha256 033a21d19fbdc7617b8c5b58d4be5951e29be5be787a45875b615f4d4dcf3f5b rpi-wifi-firmware-b66ab26cebff689d0d3257f56912b9bb03c20567.tar.gz
-sha256 cf806f6bdba0f803b90bc210f524a6ac37bac7ad19306c61474bb2dc59875e87 rpi-wifi-firmware-9c0ffe9a7f0753b36ed88f7981905a989d940ea9.tar.gz
+sha256 a942cc52cabf17661675d0877f39b1159fca2c83d57299d2dde06ad6e39ab0ab rpi-wifi-firmware-83938f78ca2d5a0ffe0c223bb96d72ccc7b71ca5.tar.gz
sha256 b16056fc91b82a0e3e8de8f86c2dac98201aa9dc3cbd33e8d38f1b087fcec30d LICENCE.broadcom_bcm43xx
diff --git a/package/rpi-wifi-firmware/rpi-wifi-firmware.mk b/package/rpi-wifi-firmware/rpi-wifi-firmware.mk
index 6be02509fe..3277a6e4a0 100644
@ -25,9 +25,9 @@ index 6be02509fe..3277a6e4a0 100644
#
################################################################################
-RPI_WIFI_FIRMWARE_VERSION = d4f7087ecbc8eff9cb64a4650765697157821d64
-RPI_WIFI_FIRMWARE_VERSION = 9c0ffe9a7f0753b36ed88f7981905a989d940ea9
-RPI_WIFI_FIRMWARE_SITE = $(call github,LibreELEC,brcmfmac_sdio-firmware-rpi,$(RPI_WIFI_FIRMWARE_VERSION))
+RPI_WIFI_FIRMWARE_VERSION = b66ab26cebff689d0d3257f56912b9bb03c20567
+RPI_WIFI_FIRMWARE_VERSION = 83938f78ca2d5a0ffe0c223bb96d72ccc7b71ca5
+RPI_WIFI_FIRMWARE_SITE = $(call github,RPi-Distro,firmware-nonfree,$(RPI_WIFI_FIRMWARE_VERSION))
RPI_WIFI_FIRMWARE_LICENSE = PROPRIETARY
RPI_WIFI_FIRMWARE_LICENSE_FILES = LICENCE.broadcom_bcm43xx

View File

@ -0,0 +1,35 @@
From 4a26b5d65bcfccaff6d32f751e668d663c883f1e Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Fri, 26 Mar 2021 09:59:24 +0100
Subject: [PATCH 1/1] Fix qt5webengine host dependencies
---
package/qt5/qt5webengine/qt5webengine.mk | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
index 7e557725d3..6ac99823e4 100644
--- a/package/qt5/qt5webengine/qt5webengine.mk
+++ b/package/qt5/qt5webengine/qt5webengine.mk
@@ -29,6 +29,18 @@ endif
QT5WEBENGINE_DEPENDENCIES += host-libpng host-libnss libnss
+ifeq ($(BR2_PACKAGE_QT5BASE_FONTCONFIG),y)
+QT5WEBENGINE_DEPENDENCIES += host-freetype
+endif
+
+ifeq ($(BR2_PACKAGE_QT5BASE_JPEG),y)
+QT5WEBENGINE_DEPENDENCIES += host-libjpeg
+endif
+
+ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y)
+QT5WEBENGINE_DEPENDENCIES += host-harfbuzz
+endif
+
QT5WEBENGINE_CONF_OPTS += WEBENGINE_CONFIG+=use_system_ffmpeg
ifeq ($(BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS),y)
--
2.20.1