WIP: Implementing all goodies and required changes / dependencies.

This commit is contained in:
j1nx 2021-01-07 21:21:21 +01:00
parent 96ddea2de3
commit 68d555fb16
71 changed files with 1181 additions and 195 deletions

25
.gitmodules vendored
View File

@ -2,28 +2,3 @@
path = buildroot
url = https://github.com/buildroot/buildroot.git
branch = 2020.11.x
[submodule "skill-ovos-mycroftgui"]
path = buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-mycroftgui
url = https://github.com/OpenVoiceOS/skill-ovos-mycroftgui.git
branch = master
[submodule "skill-ovos-enclosure"]
path = buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-enclosure
url = https://github.com/OpenVoiceOS/skill-ovos-enclosure.git
branch = master
[submodule "skill-balena-wifi-setup"]
path = buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup
url = https://github.com/OpenVoiceOS/skill-balena-wifi-setup.git
branch = master
[submodule "skill-ovos-pairing"]
path = buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-pairing
url = https://github.com/OpenVoiceOS/skill-ovos-pairing.git
branch = master
[submodule "mycroft-skills"]
path = buildroot-external/rootfs-overlay/opt/mycroft/.skills-repo
url = https://github.com/MycroftAI/mycroft-skills.git
branch = 20.08

View File

@ -92,15 +92,19 @@ endmenu
menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-adapt-parser/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-appdirs/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-astral/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-bs4/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-cachetools/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-casttube/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-colour/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-convertdate/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-coverage/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-coveralls/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-deprecated/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-fann2/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-fasteners/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-feedparser/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-geocoder/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gitdb/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gitpython/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-google-api-python-client/Config.in"
@ -108,20 +112,25 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-google-auth/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gtts/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gtts_token/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-holidays/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-humanhash3/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-korean-lunar-calendar/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-lazy/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-levenshtein/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-lingua-franca/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-monotonic/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-msk/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-msm/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-mycroft-messagebus-client/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-oauth2client/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-olefile/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ovos-utils/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-padaos/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-padatious/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pako/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pep8/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-petact/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-phoneme-guesser/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pocketsphinx/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-precise-runner/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pulsectl/Config.in"
@ -129,14 +138,19 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pychromecast/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pyee/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pygithub/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pymeeus/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pymplayer/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pyxdg/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ratelim/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-requests-futures/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-rsa/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-sgmllib3k/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-smmap/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-source/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-speechrecognition/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-timezonefinder/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-tzlocal/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-unidecode/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-uritemplate/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-vlc/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-xmlrunner/Config.in"

View File

@ -1 +1 @@
cma=64M@64M dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes console=ttyAMA0,115200 consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo systemd.show_status=0 rootwait quiet splash
dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes console=ttyAMA0,115200 consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo systemd.show_status=0 rootwait quiet splash

View File

@ -27,10 +27,10 @@ max_framebuffers=2
# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem=64
gpu_mem_256=64
gpu_mem_512=64
gpu_mem_1024=64
gpu_mem=256
gpu_mem_256=128
gpu_mem_512=128
gpu_mem_1024=128
# Enable the onboard soundcard
dtparam=audio=on

View File

@ -37,3 +37,4 @@ cp -fr ../buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi
cp -fr ../buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-enclosure/.git* ${TARGET_DIR}/opt/mycroft/skills/skill-ovos-enclosure/
cp -fr ../buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-mycroftgui/.git* ${TARGET_DIR}/opt/mycroft/skills/skill-ovos-mycroftgui/
cp -fr ../buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-pairing/.git* ${TARGET_DIR}/opt/mycroft/skills/skill-ovos-pairing/
cp -fr ../buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-homescreen/.git* ${TARGET_DIR}/opt/mycroft/skills/skill-ovos-homescreen/

View File

@ -518,23 +518,30 @@ BR2_PACKAGE_USERLAND_TOOLS=y
BR2_PACKAGE_VIRTUAL_TOUCH=y
BR2_PACKAGE_WIFI_CONNECT=y
BR2_PACKAGE_PYTHON_ADAPT_PARSER=y
BR2_PACKAGE_PYTHON_ASTRAL=y
BR2_PACKAGE_PYTHON_COLOUR=y
BR2_PACKAGE_PYTHON_COVERALLS=y
BR2_PACKAGE_PYTHON_DEPRECATED=y
BR2_PACKAGE_PYTHON_FASTENERS=y
BR2_PACKAGE_PYTHON_FEEDPARSER=y
BR2_PACKAGE_PYTHON_GEOCODER=y
BR2_PACKAGE_PYTHON_GOOGLE_API_PYTHON_CLIENT=y
BR2_PACKAGE_PYTHON_GTTS=y
BR2_PACKAGE_PYTHON_HOLIDAYS=y
BR2_PACKAGE_PYTHON_HUMANHASH3=y
BR2_PACKAGE_PYTHON_LAZY=y
BR2_PACKAGE_PYTHON_LEVENSHTEIN=y
BR2_PACKAGE_PYTHON_LINGUA_FRANCA=y
BR2_PACKAGE_PYTHON_MSK=y
BR2_PACKAGE_PYTHON_MYCROFT_MESSAGEBUS_CLIENT=y
BR2_PACKAGE_PYTHON_OAUTH2CLIENT=y
BR2_PACKAGE_PYTHON_OLEFILE=y
BR2_PACKAGE_PYTHON_OVOS_UTILS=y
BR2_PACKAGE_PYTHON_PADATIOUS=y
BR2_PACKAGE_PYTHON_PAKO=y
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_RUNNER=y
BR2_PACKAGE_PYTHON_PYCHROMECAST=y
@ -545,6 +552,8 @@ BR2_PACKAGE_PYTHON_SGMLLIB3K=y
BR2_PACKAGE_PYTHON_SMMAP=y
BR2_PACKAGE_PYTHON_SOURCE=y
BR2_PACKAGE_PYTHON_SPEECHRECOGNITION=y
BR2_PACKAGE_PYTHON_TIMEZONEFINDER=y
BR2_PACKAGE_PYTHON_TZLOCAL=y
BR2_PACKAGE_PYTHON_VLC=y
BR2_PACKAGE_PYTHON_XMLRUNNER=y
BR2_PACKAGE_PYTHON_MYCROFT=y

View File

@ -7,6 +7,8 @@ cd /opt/mycroft/skills/skill-balena-wifi-setup && git stash
cd /opt/mycroft/skills/skill-ovos-enclosure && git stash
cd /opt/mycroft/skills/skill-ovos-mycroftgui && git stash
cd /opt/mycroft/skills/skill-ovos-pairing && git stash
cd /opt/mycroft/skills/skill-ovos-homescreen && git stash
cd /opt/mycroft/skills/skill-date-time.mycroftai && git stash
chown -R mycroft.mycroft /opt/mycroft
echo "[OK]"

View File

@ -0,0 +1,340 @@
/*
* Copyright 2018 by Marco Martin <mart@kde.org>
* Copyright 2018 David Edmundson <davidedmundson@kde.org>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import QtQuick 2.9
import QtGraphicalEffects 1.0
import org.kde.kirigami 2.5 as Kirigami
import Mycroft 1.0 as Mycroft
Item {
id: root
implicitWidth: Kirigami.Units.gridUnit * 5
implicitHeight: width
property var circleBackgroundColor: "#F5F5F5"
property var circleInnerColor: "#CD5C5C"
property bool hasShadow: true
state: "idle"
states: [
State {
name: "idle"
PropertyChanges {
target: innerCircle
graphicsColor: circleInnerColor
backgroundColor: circleBackgroundColor
}
PropertyChanges {
target: root
opacity: 0
}
StateChangeScript {
script: {
innerCircleRotation.running = false;
innerCircleRotation.to = 0;
innerCircleRotation.loops = 1;
innerCircleRotation.running = true;
outerCircleRotation.loops = 1;
outerCircleRotation.restart();
fadeTimer.running = false;
}
}
},
State {
name: "waiting"
PropertyChanges {
target: innerCircle
graphicsColor: circleInnerColor
backgroundColor: circleBackgroundColor
}
PropertyChanges {
target: root
opacity: 1
}
StateChangeScript {
script: {
innerCircleRotation.running = false;
innerCircleRotation.to = -360;
innerCircleRotation.loops = 1;
innerCircleRotation.running = true;
outerCircleRotation.loops = 1;
outerCircleRotation.restart();
fadeTimer.running = false;
}
}
},
State {
name: "loading"
PropertyChanges {
target: innerCircle
targetRotation: 0
graphicsColor: circleInnerColor
backgroundColor: circleBackgroundColor
}
PropertyChanges {
target: root
opacity: 1
}
StateChangeScript {
script: {
innerCircleRotation.running = false;
innerCircleRotation.to = innerCircle.rotation - 360;
innerCircleRotation.loops = Animation.Infinite;
innerCircleRotation.running = true;
outerCircleRotation.loops = Animation.Infinite;
outerCircleRotation.restart();
fadeTimer.running = false;
}
}
},
State {
name: "ok"
PropertyChanges {
target: innerCircle
explicit: true
targetRotation: -90
graphicsColor: Kirigami.Theme.positiveTextColor
backgroundColor: Qt.tint(Kirigami.Theme.backgroundColor, Qt.rgba(Kirigami.Theme.positiveTextColor.r, Kirigami.Theme.positiveTextColor.g, Kirigami.Theme.positiveTextColor.b, 0.4))
}
PropertyChanges {
target: root
opacity: 1
}
StateChangeScript {
script: {
innerCircleRotation.running = false;
innerCircleRotation.to = -90;
innerCircleRotation.loops = 1;
innerCircleRotation.running = true;
outerCircleRotation.loops = 1;
outerCircleRotation.restart();
fadeTimer.restart();
}
}
},
State {
name: "error"
PropertyChanges {
target: innerCircle
explicit: true
graphicsColor: "white"
backgroundColor: Qt.tint(Kirigami.Theme.backgroundColor, Qt.rgba(Kirigami.Theme.negativeTextColor.r, Kirigami.Theme.negativeTextColor.g, Kirigami.Theme.negativeTextColor.b, 0.4))
}
PropertyChanges {
target: root
opacity: 1
}
StateChangeScript {
script: {
innerCircleRotation.running = false;
innerCircleRotation.to = 90;
innerCircleRotation.loops = 1;
innerCircleRotation.running = true;
outerCircleRotation.loops = 1;
outerCircleRotation.restart();
fadeTimer.restart();
}
}
}
]
Connections {
target: Mycroft.MycroftController
onListeningChanged: {
if (Mycroft.MycroftController.listening) {
root.state = "waiting";
} else {
fadeTimer.restart();
}
}
onNotUnderstood: {
root.state = "idle"
root.state = "error";
}
onFallbackTextRecieved: {
if (skill.length > 0) {
root.state = "ok";
}
}
onServerReadyChanged: {
if (Mycroft.MycroftController.serverReady) {
root.state = "ok";
}
}
onStatusChanged: {
switch (Mycroft.MycroftController.status) {
case Mycroft.MycroftController.Open:
root.state = Mycroft.MycroftController.serverReady ? "ok" : "loading";
break;
case Mycroft.MycroftController.Connecting:
root.state = "loading";
break;
case Mycroft.MycroftController.Error:
default:
root.state = "error";
break;
}
}
onCurrentIntentChanged: {
if (Mycroft.MycroftController.currentIntent.length == 0) {
if (root.state == "loading") {
root.state = "idle";
}
} else {
root.state = "loading";
}
}
}
Rectangle {
id: background
anchors.centerIn: parent
width: Math.min(parent.width, parent.height)
height: width
color: innerCircle.backgroundColor
radius: height
layer.enabled: hasShadow
layer.effect: DropShadow {
cached: true
transparentBorder: true
horizontalOffset: 0
verticalOffset: 2
}
}
Behavior on opacity {
OpacityAnimator {
duration: innerCircle.animationLength
easing.type: Easing.InOutCubic
}
}
Rectangle {
id: innerCircleGraphics
anchors {
fill: outerCircle
margins: innerCircle.unit * 5
}
visible: false
color: innerCircle.graphicsColor
radius: width
}
Item {
id: innerCircleMask
visible: false
anchors.fill: innerCircleGraphics
Rectangle {
anchors {
left: parent.left
right: parent.horizontalCenter
top: parent.top
bottom: parent.bottom
}
color: "white"
}
}
OpacityMask {
id: innerCircle
property int unit: Math.max(1, background.width/20)
property color graphicsColor
property color backgroundColor
property int animationLength: 1000
property int targetRotation: 0
Behavior on graphicsColor {
ColorAnimation {
duration: innerCircle.animationLength
easing.type: Easing.InOutCubic
}
}
Behavior on backgroundColor {
ColorAnimation {
duration: innerCircle.animationLength
easing.type: Easing.InOutCubic
}
}
anchors.fill: innerCircleGraphics
source: innerCircleGraphics
maskSource: innerCircleMask
RotationAnimator {
id: innerCircleRotation
target: innerCircle
from: innerCircle.rotation
to: 0
direction: RotationAnimator.Counterclockwise
duration: innerCircle.animationLength
easing.type: Easing.InOutCubic
}
}
Item {
id: outerCircle
anchors {
fill: background
margins: innerCircle.unit * 3
}
// the little dot
Rectangle {
width: innerCircle.unit * 2
height: width
radius: width
color: innerCircle.graphicsColor
anchors.horizontalCenter : parent.horizontalCenter
}
//the circle
Rectangle {
anchors {
fill: parent
margins: innerCircle.unit * 3
}
radius: width
color: "transparent"
border.width: innerCircle.unit
border.color: innerCircle.graphicsColor
}
RotationAnimator {
id: outerCircleRotation
target: outerCircle
from: outerCircle.rotation
to: outerCircle.rotation + 360 - (outerCircle.rotation + 360) % 360
direction: RotationAnimator.Clockwise
duration: innerCircle.animationLength
easing.type: Easing.InOutCubic
}
}
Timer {
id: fadeTimer
interval: 3000
repeat: false
onTriggered: root.state = "idle"
}
}

View File

@ -17,6 +17,12 @@ define MYCROFT_GUI_CHANGE_IMAGE
$(@D)/application/
endef
define MYCROFT_GUI_CHANGE_STATUS
cp $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/mycroft-gui/StatusIndicator.qml \
$(@D)/import/qml/
endef
MYCROFT_GUI_PRE_CONFIGURE_HOOKS += MYCROFT_GUI_CHANGE_IMAGE
MYCROFT_GUI_PRE_CONFIGURE_HOOKS += MYCROFT_GUI_CHANGE_STATUS
$(eval $(cmake-package))

View File

@ -0,0 +1,10 @@
config BR2_PACKAGE_PYTHON_ASTRAL
bool "python-astral"
help
This is astral a Python module which calculates
- Times for various positions of the sun: dawn,
sunrise, solar noon, sunset, dusk, solar elevation,
solar azimuth and rahukaalam.
- The phase of the moon.
https://github.com/sffjunkie/astral

View File

@ -0,0 +1,2 @@
# md5, sha256 from https://pypi.org/pypi/
sha256 e7f2c825ac101c0953812e0f4c617ca48bd9dd5f4ebf450f7ce9086ed8f5a1fe astral-1.4.zip

View File

@ -0,0 +1,21 @@
################################################################################
#
# python-astral
#
################################################################################
PYTHON_ASTRAL_VERSION = 1.4
PYTHON_ASTRAL_SOURCE = astral-$(PYTHON_ASTRAL_VERSION).zip
PYTHON_ASTRAL_SITE = https://files.pythonhosted.org/packages/a4/d6/c309f266677372964c6002a56a7bec2a90875338a71325e20b24d6d1e187
PYTHON_ASTRAL_DEPENDENCIES = host-python-pytz
PYTHON_ASTRAL_SETUP_TYPE = setuptools
PYTHON_ASTRAL_LICENSE = Apache-2.0
PYTHON_ASTRAL_LICENSE_FILES = LICENSE
define PYTHON_ASTRAL_EXTRACT_CMDS
$(UNZIP) -d $(@D) $(DL_DIR)/python-astral/$(PYTHON_ASTRAL_SOURCE)
mv $(@D)/astral-$(PYTHON_ASTRAL_VERSION)/* $(@D)
$(RM) -r $(@D)/astral-$(PYTHON_ASTRAL_VERSION)
endef
$(eval $(python-package))

View File

@ -0,0 +1,68 @@
From 7aaece5945a8cb942c29b2d51d82123ff39aed85 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Thu, 7 Jan 2021 14:05:19 +0100
Subject: [PATCH 1/1] Update version info
---
CHANGELOG.rst | 0
setup.cfg | 14 +++++++-------
setup.py | 2 +-
3 files changed, 8 insertions(+), 8 deletions(-)
create mode 100644 CHANGELOG.rst
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
new file mode 100644
index 0000000..e69de29
diff --git a/setup.cfg b/setup.cfg
index a6616d0..284dfa1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,7 +1,7 @@
[metadata]
-name = %%name%%
-version = %%version%%
-summary = %%description%%
+name = colour
+version = 0.1.5
+summary = converts and manipulates various color representation (HSL, RVB, web, X11, ...)
description-file =
README.rst
CHANGELOG.rst
@@ -10,9 +10,9 @@ license_file = LICENSE
requires-dist =
## sdist info
-author = %%author%%
-author_email = %%email%%
-home_page = http://github.com/vaab/%%name%%
+author = Valentin LAB
+author_email = valentin.lab@kalysto.org
+home_page = http://github.com/vaab/colour
license = BSD 3-Clause License
classifier =
Programming Language :: Python
@@ -30,7 +30,7 @@ classifier =
[files]
-modules = %%name%%
+modules = colour
extra_files =
README.rst
CHANGELOG.rst
diff --git a/setup.py b/setup.py
index 47038f9..92c38b7 100644
--- a/setup.py
+++ b/setup.py
@@ -20,7 +20,7 @@ except ImportError:
## Ensure that ``./autogen.sh`` is run prior to using ``setup.py``
##
-if "%%short-version%%".startswith("%%"):
+if "0.1.5".startswith("%%"):
import os.path
import sys
WIN32 = sys.platform == 'win32'
--
2.20.1

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_PYTHON_COLOUR
bool "python-colour"
help
Converts and manipulates common color
representation (RGB, HSL, web, …)
https://github.com/vaab/colour

View File

@ -0,0 +1,2 @@
# md5, sha256 from https://pypi.org/pypi
sha256 af20120fefd2afede8b001fbef2ea9da70ad7d49fafdb6489025dae8745c3aee colour-0.1.5.tar.gz

View File

@ -0,0 +1,12 @@
################################################################################
#
# python-colour
#
################################################################################
PYTHON_COLOUR_VERSION = 0.1.5
PYTHON_COLOUR_SOURCE = colour-$(PYTHON_COLOUR_VERSION).tar.gz
PYTHON_COLOUR_SITE = https://files.pythonhosted.org/packages/a0/d4/5911a7618acddc3f594ddf144ecd8a03c29074a540f4494670ad8f153efe
PYTHON_COLOUR_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -0,0 +1,11 @@
config BR2_PACKAGE_PYTHON_CONVERTDATE
bool "python-convertdate"
select BR2_PACKAGE_PYTHON_PYMEEUS # runtime
select BR2_PACKAGE_PYTHON_PYTZ # runtime
help
Converts between Gregorian dates and other calendar
systems.Calendars included: Baha'i, French Republican,
Hebrew, Indian Civil, Islamic, ISO, Julian, Mayan and
Persian.
https://github.com/fitnr/convertdate

View File

@ -0,0 +1,4 @@
# md5, sha256 from https://pypi.org/pypi/convertdate/json
sha256 9d2b0cd8d5382d2458d4cfa59665abba398a9e9bfd3a01c6f61b7b47768d28bf convertdate-2.2.0.tar.gz
# Locally computed sha256 checksums
sha256 9ba9629594544da774effccbc0d1e7c9ebe17438e860db8a1bf11cf8081aef9f LICENSE

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-convertdate
#
################################################################################
PYTHON_CONVERTDATE_VERSION = 2.2.0
PYTHON_CONVERTDATE_SOURCE = convertdate-$(PYTHON_CONVERTDATE_VERSION).tar.gz
PYTHON_CONVERTDATE_SITE = https://files.pythonhosted.org/packages/92/c1/1125eba52ce9bccf783f0640eaad39ffa6e4271dcf37d19438c2ef115233
PYTHON_CONVERTDATE_SETUP_TYPE = setuptools
PYTHON_CONVERTDATE_LICENSE = MIT
PYTHON_CONVERTDATE_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -1,6 +1,6 @@
# md5, sha256 from https://pypi.org/pypi/feedparser/json
md5 ee8bd99535a4261b8e26976984dd6b26 feedparser-5.2.1.tar.bz2
sha256 ce875495c90ebd74b179855449040003a1beb40cd13d5f037a0654251e260b02 feedparser-5.2.1.tar.bz2
sha256 1b00a105425f492f3954fd346e5b524ca9cef3a4bbf95b8809470e9857aa1074 feedparser-6.0.2.tar.gz
# Locally computed sha256 checksums
sha256 3adcffa23e565106bd6af3aacc5d03cf7948073791c842037181683c61f4163f LICENSE
sha256 961b8d49c0f06d3569d787a8bf8b885faa0837e89d2dd6011cb8c70347aafee3 docs/license.rst

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_FEEDPARSER_VERSION = 5.2.1
PYTHON_FEEDPARSER_SOURCE = feedparser-$(PYTHON_FEEDPARSER_VERSION).tar.bz2
PYTHON_FEEDPARSER_SITE = https://files.pythonhosted.org/packages/91/d8/7d37fec71ff7c9dbcdd80d2b48bcdd86d6af502156fc93846fb0102cb2c4
PYTHON_FEEDPARSER_VERSION = 6.0.2
PYTHON_FEEDPARSER_SOURCE = feedparser-$(PYTHON_FEEDPARSER_VERSION).tar.gz
PYTHON_FEEDPARSER_SITE = https://files.pythonhosted.org/packages/1b/84/934fc369d2e36d7fd9a196a72e68035cabc672c46bf7aa2661838e4d0ca9
PYTHON_FEEDPARSER_SETUP_TYPE = setuptools
PYTHON_FEEDPARSER_LICENSE = BSD-2-Clause
PYTHON_FEEDPARSER_LICENSE_FILES = LICENSE docs/license.rst

View File

@ -0,0 +1,11 @@
config BR2_PACKAGE_PYTHON_GEOCODER
bool "python-geocoder"
select BR2_PACKAGE_PYTHON_CLICK # runtime
select BR2_PACKAGE_PYTHON_FUTURE # runtime
select BR2_PACKAGE_PYTHON_RATELIM # runtime
select BR2_PACKAGE_PYTHON_REQUESTS # runtime
select BR2_PACKAGE_PYTHON_SIX # runtime
help
Geocoder is a simple and consistent geocoding library.
https://github.com/DenisCarriere/geocoder

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/geocoder/json
md5 360f693a51f7ea4b4078f9ef96222ee8 geocoder-1.38.1.tar.gz
sha256 c9925374c961577d0aee403b09e6f8ea1971d913f011f00ca70c76beaf7a77e7 geocoder-1.38.1.tar.gz
# Locally computed sha256 checksums
sha256 bba08f43391d2c055c1c30db4c8409f345359b03b6c276295db14f1d99de7993 LICENSE

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-geocoder
#
################################################################################
PYTHON_GEOCODER_VERSION = 1.38.1
PYTHON_GEOCODER_SOURCE = geocoder-$(PYTHON_GEOCODER_VERSION).tar.gz
PYTHON_GEOCODER_SITE = https://files.pythonhosted.org/packages/ea/0b/2ea440270c1efb7ac73450cb704344c8127f45dabff0bea48711dc9dd93a
PYTHON_GEOCODER_SETUP_TYPE = setuptools
PYTHON_GEOCODER_LICENSE = MIT
PYTHON_GEOCODER_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -0,0 +1,10 @@
config BR2_PACKAGE_PYTHON_HOLIDAYS
bool "python-holidays"
select BR2_PACKAGE_PYTHON_CONVERTDATE # runtime
select BR2_PACKAGE_PYTHON_DATEUTIL # runtime
select BR2_PACKAGE_PYTHON_KOREAN_LUNAR_CALENDAR # runtime
select BR2_PACKAGE_PYTHON_SIX # runtime
help
Generate and work with holidays in Python.
https://github.com/dr-prodigy/python-holidays

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/holidays/json
md5 9326c201d11ea0b174b43312c14876b7 holidays-0.10.4.tar.gz
sha256 72378e7c00139ab157adf5155c0ec7af62489b7cae8d66dfc53a9a02ddcb1cab holidays-0.10.4.tar.gz
# Locally computed sha256 checksums
sha256 24c74ea476883dbe660246063bf533c7f56515b0b97e7613d72b746e3eb9c38f LICENSE

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-holidays
#
################################################################################
PYTHON_HOLIDAYS_VERSION = 0.10.4
PYTHON_HOLIDAYS_SOURCE = holidays-$(PYTHON_HOLIDAYS_VERSION).tar.gz
PYTHON_HOLIDAYS_SITE = https://files.pythonhosted.org/packages/cc/14/a8a30bae14091984acd262526a258b1890c3ada0e5ae0da747e2b8f2b77d
PYTHON_HOLIDAYS_SETUP_TYPE = setuptools
PYTHON_HOLIDAYS_LICENSE = MIT
PYTHON_HOLIDAYS_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_PYTHON_KOREAN_LUNAR_CALENDAR
bool "python-korean-lunar-calendar"
help
Korean Lunar Calendar.
https://github.com/usingsky/korean_lunar_calendar_py

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/korean_lunar_calendar/json
md5 1fda622625f7b0d6843eb0465a128fca korean_lunar_calendar-0.2.1.tar.gz
sha256 12ce54b1392ed45a82dc6cea85ee5f7e33630556e82488f57e37a22482c8275d korean_lunar_calendar-0.2.1.tar.gz
# Locally computed sha256 checksums
sha256 0ba0b32231bea04f4b037b9b138d83e78dc0781a3f568668b921e95dc6ca09f5 LICENSE

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-korean-lunar-calendar
#
################################################################################
PYTHON_KOREAN_LUNAR_CALENDAR_VERSION = 0.2.1
PYTHON_KOREAN_LUNAR_CALENDAR_SOURCE = korean_lunar_calendar-$(PYTHON_KOREAN_LUNAR_CALENDAR_VERSION).tar.gz
PYTHON_KOREAN_LUNAR_CALENDAR_SITE = https://files.pythonhosted.org/packages/fa/c4/2f0f2329098ee24f629c3ad4dcb210fbedb52e51fa6348ebdcbd7af2151b
PYTHON_KOREAN_LUNAR_CALENDAR_SETUP_TYPE = setuptools
PYTHON_KOREAN_LUNAR_CALENDAR_LICENSE = MIT
PYTHON_KOREAN_LUNAR_CALENDAR_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -0,0 +1,168 @@
From ed8c1bae5f26f7327090ac56a6522c78a914e78c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=85ke=20Forslund?= <ake.forslund@gmail.com>
Date: Mon, 28 Sep 2020 17:53:40 +0200
Subject: [PATCH 1/2] Only show the pako warning if it's used
---
msm/skill_entry.py | 44 ++++++++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 20 deletions(-)
diff --git a/msm/skill_entry.py b/msm/skill_entry.py
index 3170656..c64e666 100644
--- a/msm/skill_entry.py
+++ b/msm/skill_entry.py
@@ -327,6 +327,7 @@ def run_pip(self, constraints=None):
return True
def install_system_deps(self):
+ success = True
self.run_requirements_sh()
system_packages = {
exe: (packages or '').split()
@@ -334,26 +335,29 @@ def install_system_deps(self):
}
LOG.info('Installing system requirements...')
all_deps = system_packages.pop('all', [])
- try:
- manager = PakoManager()
- success = manager.install(all_deps, overrides=system_packages)
- except RuntimeError as e:
- LOG.warning('Failed to launch package manager: {}'.format(e))
- success = False
- missing_exes = [
- exe for exe in self.dependencies.get('exes') or []
- if not shutil.which(exe)
- ]
- if missing_exes:
- if not success:
- LOG.warning('Failed to install dependencies.')
- if all_deps:
- LOG.warning('Please install manually: {}'.format(
- ' '.join(all_deps)
- ))
- raise SkillRequirementsException('Could not find exes: {}'.format(
- ', '.join(missing_exes)
- ))
+ use_pako = bool(all_deps)
+ if use_pako: # Only try to install if there are packages to install
+ try:
+ manager = PakoManager()
+ success = manager.install(all_deps, overrides=system_packages)
+ except RuntimeError as e:
+ LOG.warning('Failed to launch package manager: {}'.format(e))
+ success = False
+ missing_exes = [
+ exe for exe in self.dependencies.get('exes') or []
+ if not shutil.which(exe)
+ ]
+ if missing_exes:
+ if use_pako:
+ # Pako was used and apparently failed.
+ LOG.warning('Failed to install dependencies.')
+ if all_deps:
+ LOG.warning('Please install manually: {}'.format(
+ ' '.join(all_deps)
+ ))
+ raise SkillRequirementsException(
+ 'Could not find exes: {}'.format(', '.join(missing_exes))
+ )
return success
def run_requirements_sh(self):
From d1cdbb40ed09f067f9fa9295ab6fca654f5f0fe1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=85ke=20Forslund?= <ake.forslund@gmail.com>
Date: Tue, 29 Sep 2020 19:57:35 +0200
Subject: [PATCH 2/2] Move pako handling into function
---
msm/skill_entry.py | 63 ++++++++++++++++++++++++++++------------------
1 file changed, 38 insertions(+), 25 deletions(-)
diff --git a/msm/skill_entry.py b/msm/skill_entry.py
index c64e666..9268d41 100644
--- a/msm/skill_entry.py
+++ b/msm/skill_entry.py
@@ -57,6 +57,23 @@
FIVE_MINUTES = 300
+def _perform_pako_install(packages):
+ """Install the list of packagess using Pako.
+
+ Arguments:
+ packages (list): list of packages to install.
+ Returns:
+ (bool) True if install completed successfully, else False
+ """
+ try:
+ manager = PakoManager()
+ success = manager.install(packages, overrides=system_packages)
+ except RuntimeError as e:
+ LOG.warning('Failed to launch package manager: {}'.format(e))
+ success = False
+ return success
+
+
@contextmanager
def work_dir(directory):
old_dir = os.getcwd()
@@ -327,37 +344,33 @@ def run_pip(self, constraints=None):
return True
def install_system_deps(self):
- success = True
self.run_requirements_sh()
system_packages = {
exe: (packages or '').split()
for exe, packages in self.dependent_system_packages.items()
}
LOG.info('Installing system requirements...')
- all_deps = system_packages.pop('all', [])
- use_pako = bool(all_deps)
- if use_pako: # Only try to install if there are packages to install
- try:
- manager = PakoManager()
- success = manager.install(all_deps, overrides=system_packages)
- except RuntimeError as e:
- LOG.warning('Failed to launch package manager: {}'.format(e))
- success = False
- missing_exes = [
- exe for exe in self.dependencies.get('exes') or []
- if not shutil.which(exe)
- ]
- if missing_exes:
- if use_pako:
- # Pako was used and apparently failed.
- LOG.warning('Failed to install dependencies.')
- if all_deps:
- LOG.warning('Please install manually: {}'.format(
- ' '.join(all_deps)
- ))
- raise SkillRequirementsException(
- 'Could not find exes: {}'.format(', '.join(missing_exes))
- )
+ packages = system_packages.pop('all', [])
+ if packages: # Only try to install if there are packages to install
+ success = _perform_pako_install(packages)
+ else:
+ success = True # No packages to install
+
+ missing_exes = [
+ exe for exe in self.dependencies.get('exes') or []
+ if not shutil.which(exe)
+ ]
+ # If executables are missing on the system inform of the issue.
+ if missing_exes:
+ # Pako was used and apparently failed.
+ LOG.warning('Failed to install dependencies.')
+ if packages:
+ LOG.warning('Please install manually: {}'.format(
+ ' '.join(all_deps)
+ ))
+ raise SkillRequirementsException(
+ 'Could not find exes: {}'.format(', '.join(missing_exes))
+ )
return success
def run_requirements_sh(self):

View File

@ -0,0 +1,32 @@
From 89782d56ed0fa1b63fef350520abea59c79bf283 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Mon, 14 Sep 2020 16:38:58 +0200
Subject: [PATCH 1/1] Remove "sudo" pip logic and change to --user by default
---
msm/skill_entry.py | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/msm/skill_entry.py b/msm/skill_entry.py
index 3170656..ec78609 100644
--- a/msm/skill_entry.py
+++ b/msm/skill_entry.py
@@ -295,14 +295,10 @@ class SkillEntry(object):
constraints = DEFAULT_CONSTRAINTS
LOG.info('Installing requirements.txt for ' + self.name)
- can_pip = os.access(dirname(sys.executable), os.W_OK | os.X_OK)
- pip_args = [sys.executable, '-m', 'pip', 'install']
+ pip_args = [sys.executable, '-m', 'pip', 'install', '--user']
if constraints:
pip_args += ['-c', constraints]
- if not can_pip:
- pip_args = ['sudo', '-n'] + pip_args
-
with self.pip_lock:
"""
Iterate over the individual Python packages and
--
2.20.1

View File

@ -0,0 +1,9 @@
config BR2_PACKAGE_PYTHON_MYCROFT_MESSAGEBUS_CLIENT
bool "python-mycroft-messagebus-client"
help
This module is a simple interface for the mycroft
messagebus and can be used to connect to mycroft,
send messages and react to messages sent by the
Mycroft system.
https://github.com/MycroftAI/mycroft-messagebus-client

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/msm/json
md5 fe54a2aecd6751bef66fdcd27ffd3cdc msm-0.5.19.tar.gz
sha256 4a3d2325407b95f4a13871e1f45a7041014699201531e452b63efa8fdd7ef48d mycroft-messagebus-client-0.8.4.tar.gz
# Locally computed sha256 checksums
sha256 a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 LICENSE

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-mycroft-messagebus-client
#
################################################################################
PYTHON_MYCROFT_MESSAGEBUS_CLIENT_VERSION = 0.8.4
PYTHON_MYCROFT_MESSAGEBUS_CLIENT_SOURCE = mycroft-messagebus-client-$(PYTHON_MYCROFT_MESSAGEBUS_CLIENT_VERSION).tar.gz
PYTHON_MYCROFT_MESSAGEBUS_CLIENT_SITE = https://files.pythonhosted.org/packages/06/15/881da04555710caa2b5fd0d582aa21ed6ecaf88fc5c2343f46caa1b84ccf
PYTHON_MYCROFT_MESSAGEBUS_CLIENT_SETUP_TYPE = setuptools
PYTHON_MYCROFT_MESSAGEBUS_CLIENT_LICENSE = Apache-2.0
PYTHON_MYCROFT_MESSAGEBUS_CLIENT_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_PYTHON_OVOS_UTILS
bool "python-ovos-utils"
help
collection of simple utilities for use
across the mycroft ecosystem
https://github.com/OpenVoiceOS/ovos_utils

View File

@ -0,0 +1 @@
sha256 51de8154a8b07f2b9058f1cdf4c6b4e68db46d5cefd2cfe67597c90ec4520e91 python-ovos-utils-fb04a83594705aabbefc3534bc7c3b18580aee6f.tar.gz

View File

@ -0,0 +1,12 @@
################################################################################
#
# python-ovos-utils
#
################################################################################
PYTHON_OVOS_UTILS_VERSION = fb04a83594705aabbefc3534bc7c3b18580aee6f
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
$(eval $(python-package))

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_PYTHON_PHONEME_GUESSER
bool "python-phoneme-guesser"
select BR2_PACKAGE_PYTHON_UNIDECODE # runtime
help
phonemes from text.
https://github.com/OpenJarbas/phoneme_guesser

View File

@ -0,0 +1,3 @@
# md5, sha256 from https://pypi.org/pypi/phoneme_guesser/json
md5 a7d51cccf538c6440c0eadf8b4da704f phoneme_guesser-0.1.0.tar.gz
sha256 4f3b593563593fac668c94de34503a66fd9c307d4fad2a33c92c6db03f7f9eef phoneme_guesser-0.1.0.tar.gz

View File

@ -0,0 +1,12 @@
################################################################################
#
# python-phoneme-guesser
#
################################################################################
PYTHON_PHONEME_GUESSER_VERSION = 0.1.0
PYTHON_PHONEME_GUESSER_SOURCE = phoneme_guesser-$(PYTHON_PHONEME_GUESSER_VERSION).tar.gz
PYTHON_PHONEME_GUESSER_SITE = https://files.pythonhosted.org/packages/c7/ea/c5b389b6d593212935412e5f314978d860bc59c393a8c1029ada3992f4bd
PYTHON_PHONEME_GUESSER_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_PYTHON_PYMEEUS
bool "python-pymeeus"
help
Python implementation of Jean Meeus astronomical routines.
https://github.com/architest/pymeeus

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/pymeeus/json
md5 47dd9b52aa30a096bf25029e087fb793 PyMeeus-0.3.7.tar.gz
sha256 56430209e6f9a039f1ba73f107ab0b23121548e2a67ed2855f2416c3749a5662 PyMeeus-0.3.7.tar.gz
# Locally computed sha256 checksums
sha256 e79e9c8a0c85d735ff98185918ec94ed7d175efc377012787aebcf3b80f0d90b LICENSE.txt

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-pymeeus
#
################################################################################
PYTHON_PYMEEUS_VERSION = 0.3.7
PYTHON_PYMEEUS_SOURCE = PyMeeus-$(PYTHON_PYMEEUS_VERSION).tar.gz
PYTHON_PYMEEUS_SITE = https://files.pythonhosted.org/packages/2c/30/47957d487fff94083bdd17247734c165f12b5ac39a3abd1aa476a93eea6e
PYTHON_PYMEEUS_SETUP_TYPE = setuptools
PYTHON_PYMEEUS_LICENSE = GPL-3.0
PYTHON_PYMEEUS_LICENSE_FILES = LICENSE.txt
$(eval $(python-package))

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_PYTHON_RATELIM
bool "python-ratelim"
select BR2_PACKAGE_PYTHON_DECORATOR # runtime
help
Makes it easy to respect rate limits.
http://github.com/themiurgo/ratelim

View File

@ -0,0 +1,3 @@
# md5, sha256 from https://pypi.org/pypi/ratelim/json
md5 91063fcac413e9faba01c9046c5134dc ratelim-0.1.6.tar.gz
sha256 826d32177e11f9a12831901c9fda6679fd5bbea3605910820167088f5acbb11d ratelim-0.1.6.tar.gz

View File

@ -0,0 +1,12 @@
################################################################################
#
# python-ratelim
#
################################################################################
PYTHON_RATELIM_VERSION = 0.1.6
PYTHON_RATELIM_SOURCE = ratelim-$(PYTHON_RATELIM_VERSION).tar.gz
PYTHON_RATELIM_SITE = https://files.pythonhosted.org/packages/c5/5a/e1440017bccb14523bb76356e6f3a5468386b8a9192bd901e98babd1a1ea
PYTHON_RATELIM_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -0,0 +1,38 @@
From aabf33f93a95b4ccbd900dfee2b7508227ee9ac7 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Thu, 7 Jan 2021 19:21:24 +0100
Subject: [PATCH 1/1] No package name variables
---
setup.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/setup.py b/setup.py
index d2afc06..0cfac34 100755
--- a/setup.py
+++ b/setup.py
@@ -11,15 +11,15 @@ setup(
# version: in VERSION file https://packaging.python.org/guides/single-sourcing-package-version/
# With this approach you must make sure that the VERSION file is included in all your source
# and binary distributions (e.g. add include VERSION to your MANIFEST.in).
- author='Jannik Michelfeit',
+ author='J. Michelfeit',
author_email='python@michelfe.it',
license='MIT licence',
- url=f'https://github.com/MrMinimal64/{PACKAGE_NAME}', # use the URL to the github repo
+ url='https://github.com/MrMinimal64/timezonefinder', # use the URL to the github repo
project_urls={
- "Source Code": f"https://github.com/MrMinimal64/{PACKAGE_NAME}",
- "Documentation": f"https://{PACKAGE_NAME}.readthedocs.io/en/latest/",
- "Changelog": f"https://github.com/MrMinimal64/{PACKAGE_NAME}/blob/master/CHANGELOG.rst",
- "License": f"https://github.com/MrMinimal64/{PACKAGE_NAME}/blob/master/LICENSE",
+ "Source Code": "https://github.com/MrMinimal64/timezonefinder",
+ "Documentation": "https://timezonefinder.readthedocs.io/en/latest/",
+ "Changelog": "https://github.com/MrMinimal64/timezonefinder/blob/master/CHANGELOG.rst",
+ "License": "https://github.com/MrMinimal64/timezonefinder/blob/master/LICENSE",
},
keywords='timezone coordinates latitude longitude location pytzwhere tzwhere',
classifiers=[
--
2.20.1

View File

@ -0,0 +1,9 @@
config BR2_PACKAGE_PYTHON_TIMEZONEFINDER
bool "python-timezonefinder"
help
This is a fast and lightweight python
package for looking up the corresponding
timezone for given coordinates on earth
entirely offline.
https://github.com/MrMinimal64/timezonefinder

View File

@ -0,0 +1,2 @@
# md5, sha256 from https://pypi.org/pypi/
sha256 d8a05c207aab92d6f01b426dc4bcef08118ec31cf4504bd4011c7551f3160694 timezonefinder-5.0.0.tar.gz

View File

@ -0,0 +1,13 @@
################################################################################
#
# python-timezonefinder
#
################################################################################
PYTHON_TIMEZONEFINDER_VERSION = 5.0.0
PYTHON_TIMEZONEFINDER_SOURCE = timezonefinder-$(PYTHON_TIMEZONEFINDER_VERSION).tar.gz
PYTHON_TIMEZONEFINDER_SITE = https://files.pythonhosted.org/packages/74/d2/e6cc8edf6a6da56c5311776334b4bd2a271757573dd020592a8540512b88
PYTHON_TIMEZONEFINDER_SETUP_TYPE = setuptools
PYTHON_TIMEZONEFINDER_DEPENDENCIES = host-python-numpy
$(eval $(python-package))

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_PYTHON_TZLOCAL
bool "python-tzlocal"
help
This Python module returns a tzinfo object
with the local timezone information
https://github.com/regebro/tzlocal

View File

@ -0,0 +1,2 @@
# md5, sha256 from https://pypi.org/pypi/
sha256 d160c2ce4f8b1831dabfe766bd844cf9012f766539cf84139c2faac5201882ce tzlocal-1.3.tar.gz

View File

@ -0,0 +1,12 @@
################################################################################
#
# python-tzlocal
#
################################################################################
PYTHON_TZLOCAL_VERSION = 1.3
PYTHON_TZLOCAL_SOURCE = tzlocal-$(PYTHON_TZLOCAL_VERSION).tar.gz
PYTHON_TZLOCAL_SITE = https://files.pythonhosted.org/packages/d3/64/e4b18738496213f82b88b31c431a0e4ece143801fb6771dddd1c2bf0101b
PYTHON_TZLOCAL_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_PYTHON_UNIDECODE
bool "python-unidecode"
help
ASCII transliterations of Unicode text.

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/unidecode/json
md5 5d36d06fe14172657e944ac208e9d213 Unidecode-1.1.2.tar.gz
sha256 a039f89014245e0cad8858976293e23501accc9ff5a7bdbc739a14a2b7b85cdc Unidecode-1.1.2.tar.gz
# Locally computed sha256 checksums
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-unidecode
#
################################################################################
PYTHON_UNIDECODE_VERSION = 1.1.2
PYTHON_UNIDECODE_SOURCE = Unidecode-$(PYTHON_UNIDECODE_VERSION).tar.gz
PYTHON_UNIDECODE_SITE = https://files.pythonhosted.org/packages/45/dd/544c34ddf9ab0ead3746110ad6fbdac26ca5f4a1666db22dc8aaf447d0c9
PYTHON_UNIDECODE_SETUP_TYPE = setuptools
PYTHON_UNIDECODE_LICENSE = GPL-2.0
PYTHON_UNIDECODE_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -20,8 +20,8 @@
"pulse_duck": true
},
"skills": {
"blacklisted_skills": ["mycroft-pairing.mycroftai"],
"priority_skills": ["skill-ovos-enclosure", "skill-ovos-mycroftgui", "skill-balena-wifi-setup", "skill-ovos-pairing"]
"blacklisted_skills": ["mycroft-pairing.mycroftai", "mycroft-mark-2.mycroftai"],
"priority_skills": ["skill-ovos-enclosure", "skill-ovos-mycroftgui", "skill-balena-wifi-setup", "skill-ovos-pairing", "skill-ovos-homescreen"]
},
"log_level": "INFO"
}

View File

@ -1,6 +1,8 @@
from mycroft import MycroftSkill, intent_handler
from mycroft.util import create_daemon, connected
from mycroft.configuration import LocalConf, USER_CONFIG
from mycroft.api import is_paired
from mycroft.messagebus.message import Message
import subprocess
import pexpect
from time import sleep
@ -70,7 +72,6 @@ class WifiConnect(MycroftSkill):
self.log.info("Wifi watchdog started")
output = subprocess.check_output("nmcli connection show",
shell=True).decode("utf-8")
self.log.warning(output)
if "wifi" in output:
self.log.info("Detected previously configured wifi, starting "
"grace period to allow it to connect")
@ -222,10 +223,10 @@ class WifiConnect(MycroftSkill):
"""Provide instructions for setting up wifi."""
self.gui.remove_page("status.qml")
self.gui["phone_image"] = "1_phone_connect-to-ap.png"
self.gui["prompt"] = "Connect to the \nWifi network"
self.gui["prompt"] = "Connect to the Wi-Fi network"
self.gui["highlight"] = self.ssid
self.gui["color"] = self.settings["color"]
self.gui.show_page("prompt.qml")
self.gui.show_page("prompt.qml", override_idle=True, override_animations=True)
# allow GUI to linger around for a bit, will block the wifi setup loop
sleep(2)
@ -234,10 +235,10 @@ class WifiConnect(MycroftSkill):
self.gui.remove_page("status.qml")
self.gui.clear()
self.gui["phone_image"] = "3_phone_choose-wifi.png"
self.gui["prompt"] = "Choose the \nWifi network to \nconnect your \ndevice"
self.gui["highlight"] = ""
self.gui["prompt"] = "Select local Wi-Fi network to connect"
self.gui["highlight"] = "OVOS Device"
self.gui["color"] = self.settings["color"]
self.gui.show_page("prompt.qml")
self.gui.show_page("prompt.qml", override_idle=True, override_animations=True)
# allow GUI to linger around for a bit, will block the wifi setup loop
sleep(2)
@ -255,10 +256,14 @@ class WifiConnect(MycroftSkill):
self.gui["label"] = "Connected"
self.gui["bgColor"] = "#40DBB0"
self.gui.remove_page("prompt.qml")
self.gui.show_page("status.qml")
self.gui.show_page("status.qml", override_idle=True, override_animations=True)
# allow GUI to linger around for a bit, will block the wifi setup loop
sleep(3)
self.gui.release()
if not is_paired():
self.bus.emit(Message("mycroft.not.paired"))
else:
self.bus.emit(Message("show.not.ready"))
self.gui.release()
def report_setup_failed(self, message=None):
"""Wifi setup failed"""
@ -268,7 +273,7 @@ class WifiConnect(MycroftSkill):
self.gui["icon"] = "times-circle.svg"
self.gui["label"] = "Connection Failed"
self.gui["bgColor"] = "#FF0000"
self.gui.show_page("status.qml")
self.gui.show_page("status.qml", override_idle=True, override_animations=True)
# allow GUI to linger around for a bit, will block the wifi setup loop
sleep(2)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -19,60 +19,75 @@ import QtQuick.Layouts 1.4
import QtQuick 2.4
import QtQuick.Controls 2.0
import org.kde.kirigami 2.4 as Kirigami
import Mycroft 1.0 as Mycroft
Mycroft.ProportionalDelegate {
Mycroft.Delegate {
id: root
property var spacingUnit: 30
property var phone: sessionData.phone_image
property var prompt: sessionData.prompt
property var highlight: sessionData.highlight
property var color: sessionData.color
Row {
spacing: spacingUnit
Image {
id: img
source: Qt.resolvedUrl(phone)
Layout.fillHeight: true
height: root.height * 0.8
fillMode: Image.PreserveAspectFit
verticalAlignment: Image.AlignBottom
anchors.bottom: parent.bottom
}
ColumnLayout {
Kirigami.Heading {
id: sentence
property bool horizontalMode: root.width > root.height ? 1 : 0
leftPadding: 0
rightPadding: 0
topPadding: 0
bottomPadding: 0
Rectangle {
anchors.fill: parent
color: "#000000"
GridLayout {
anchors.fill: parent
anchors.margins: Kirigami.Units.largeSpacing
columns: horizontalMode ? 2 : 1
ColumnLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft
Layout.leftMargin: spacingUnit
Layout.topMargin: 80
horizontalAlignment: Text.AlignHLeft
wrapMode: Text.WordWrap
elide: Text.ElideRight
font.family: "Noto Sans"
font.bold: true
font.weight: Font.Bold
font.pixelSize: 38
visible: !content.visible
text: prompt
Layout.fillHeight: true
Kirigami.Heading {
id: sentence
Layout.fillWidth: true
Layout.alignment: horizontalMode ? Qt.AlignLeft : Qt.AlignHCenter | Qt.AlignVCenter
Layout.leftMargin: horizontalMode ? spacingUnit : 0
horizontalAlignment: horizontalMode ? Text.AlignLeft : Text.AlignHCenter
verticalAlignment: horizontalMode ? Text.AlignVCenter : Text.AlignTop
wrapMode: Text.WordWrap
elide: Text.ElideRight
font.family: "Noto Sans"
font.bold: true
font.weight: Font.Bold
font.pixelSize: horizontalMode ? root.width * 0.065 : root.height * 0.075
text: prompt
}
Kirigami.Heading {
id: url
Layout.fillWidth: true
Layout.leftMargin: horizontalMode ? spacingUnit : 0
Layout.alignment: horizontalMode ? Qt.AlignLeft : Qt.AlignHCenter | Qt.AlignTop
horizontalAlignment: horizontalMode ? Text.AlignLeft : Text.AlignHCenter
verticalAlignment: horizontalMode ? Text.AlignVCenter : Text.AlignTop
wrapMode: Text.WordWrap
elide: Text.ElideRight
font.family: "Noto Sans"
font.bold: true
font.weight: Font.Bold
font.pixelSize: horizontalMode ? root.width * 0.065 : root.height * 0.075
color: root.color
text: highlight
}
}
Kirigami.Heading {
id: url
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft
Layout.leftMargin: spacingUnit
horizontalAlignment: Text.AlignHLeft
wrapMode: Text.WordWrap
elide: Text.ElideRight
font.family: "Noto Sans"
font.bold: true
font.weight: Font.Bold
font.pixelSize: 36
visible: !content.visible
color: root.color
text: highlight
Image {
id: img
source: Qt.resolvedUrl(phone)
Layout.preferredWidth: horizontalMode ? parent.width / 2 : parent.width
Layout.preferredHeight: horizontalMode ? parent.height * 0.9 : parent.height / 2
Layout.alignment: Qt.AlignBottom
fillMode: Image.PreserveAspectFit
}
}
}

@ -0,0 +1 @@
Subproject commit b5b7ded3149c1929b46c2e294fc6980325416cf6

@ -0,0 +1 @@
Subproject commit 6affba69d1bc42d93b29ad89a181c9402b226c35

@ -1 +1 @@
Subproject commit 28c5b09ead07b1d4aab933ccb1ed207bff9c5371
Subproject commit d98871d8cac30534f08a3ea846f26a413d8a23be

@ -1 +1 @@
Subproject commit 2198b59e0b437bdb5aede5c38e33acb80f8da75e
Subproject commit ee7be95809963a4557d941f614fbb6bdb9093bd9

View File

@ -0,0 +1,40 @@
From 20473efe71d8d6aafb9b8604478c0dad88315368 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Thu, 7 Jan 2021 15:54:31 +0100
Subject: [PATCH 1/1] Downgrade python-arrow to 0.12.0
---
package/python-arrow/python-arrow.hash | 2 +-
package/python-arrow/python-arrow.mk | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package/python-arrow/python-arrow.hash b/package/python-arrow/python-arrow.hash
index 90e0533232..9d52c2623c 100644
--- a/package/python-arrow/python-arrow.hash
+++ b/package/python-arrow/python-arrow.hash
@@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/arrow/json
md5 554f18b0e23182ee0e8cb2a882d2f607 arrow-0.15.2.tar.gz
-sha256 10257c5daba1a88db34afa284823382f4963feca7733b9107956bed041aff24f arrow-0.15.2.tar.gz
+sha256 a15ecfddf334316e3ac8695e48c15d1be0d6038603b33043930dcf0e675c86ee arrow-0.12.0.tar.gz
# Locally computed sha256 checksums
sha256 a4b7601be50569c2c96a9818fc809b0149410c84c99714d60c9d4fb0ae861fa2 LICENSE
diff --git a/package/python-arrow/python-arrow.mk b/package/python-arrow/python-arrow.mk
index f8326288b2..d945e76831 100644
--- a/package/python-arrow/python-arrow.mk
+++ b/package/python-arrow/python-arrow.mk
@@ -4,9 +4,9 @@
#
################################################################################
-PYTHON_ARROW_VERSION = 0.15.2
+PYTHON_ARROW_VERSION = 0.12.0
PYTHON_ARROW_SOURCE = arrow-$(PYTHON_ARROW_VERSION).tar.gz
-PYTHON_ARROW_SITE = https://files.pythonhosted.org/packages/43/0e/47416c54ad7742981bf77fdfc405987551ab14b181a6140c8cd2a5823872
+PYTHON_ARROW_SITE = https://files.pythonhosted.org/packages/90/48/7ecfce4f2830f59dfacbb2b5a31e3ff1112b731a413724be40f57faa4450
PYTHON_ARROW_SETUP_TYPE = setuptools
PYTHON_ARROW_LICENSE = Apache-2.0
PYTHON_ARROW_LICENSE_FILES = LICENSE
--
2.20.1

View File

@ -0,0 +1,21 @@
From b457885eba19f8be0be2da35f5dbfca423be651f Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Thu, 7 Jan 2021 17:12:04 +0100
Subject: [PATCH 1/1] Make python-pytz available as host package
---
package/python-pytz/python-pytz.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/python-pytz/python-pytz.mk b/package/python-pytz/python-pytz.mk
index 888f3c4556..7a64656bef 100644
--- a/package/python-pytz/python-pytz.mk
+++ b/package/python-pytz/python-pytz.mk
@@ -12,3 +12,4 @@ PYTHON_PYTZ_LICENSE = MIT
PYTHON_PYTZ_LICENSE_FILES = LICENSE.txt
$(eval $(python-package))
+$(eval $(host-python-package))
--
2.20.1

View File

@ -1,104 +0,0 @@
From 34fcaf17ecc1044aa8e2243dde4f84d9123c1d28 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Fri, 27 Mar 2020 11:26:38 +0100
Subject: [PATCH 1/1] Return rpi fix linking patch
---
package/mpv/0003-rpi-fix-linking-errors.patch | 85 +++++++++++++++++++
1 file changed, 85 insertions(+)
create mode 100644 package/mpv/0003-rpi-fix-linking-errors.patch
diff --git a/package/mpv/0003-rpi-fix-linking-errors.patch b/package/mpv/0003-rpi-fix-linking-errors.patch
new file mode 100644
index 0000000000..7344da5724
--- /dev/null
+++ b/package/mpv/0003-rpi-fix-linking-errors.patch
@@ -0,0 +1,85 @@
+From 8a038f982a4621f4c62947ef3929c3beae7e7744 Mon Sep 17 00:00:00 2001
+From: j1nx <p.steenbergen@j1nx.nl>
+Date: Fri, 27 Mar 2020 10:47:27 +0100
+Subject: [PATCH 1/1] rpi: fix linking errors
+
+---
+ waftools/checks/custom.py | 26 +++++++++++++++++++++++++-
+ wscript | 18 +-----------------
+ 2 files changed, 26 insertions(+), 18 deletions(-)
+
+diff --git a/waftools/checks/custom.py b/waftools/checks/custom.py
+index 821bf9c46f..c2a600abe4 100644
+--- a/waftools/checks/custom.py
++++ b/waftools/checks/custom.py
+@@ -4,7 +4,7 @@ from waflib import Utils
+ import os
+
+ __all__ = ["check_pthreads", "check_iconv", "check_lua",
+- "check_cocoa", "check_wl_protocols", "check_swift"]
++ "check_cocoa", "check_wl_protocols", "check_swift", "check_rpi"]
+
+ pthreads_program = load_fragment('pthreads.c')
+
+@@ -120,3 +120,27 @@ def check_swift(ctx, dependency_identifier):
+ if major >= 3:
+ return True
+ return False
++
++def check_rpi(ctx, dependency_identifier):
++ # We need MMAL/bcm_host/dispmanx APIs.
++ # Upstream keeps pkgconfig files in '/opt/vc/lib/pkgconfig'.
++ # See https://github.com/raspberrypi/userland/issues/245
++ # PKG_CONFIG_SYSROOT_DIR helps with cross compilation.
++ prev_pkg_path = os.getenv('PKG_CONFIG_PATH', '')
++ os.environ['PKG_CONFIG_PATH'] = os.pathsep.join(
++ filter(None, [os.path.join(os.getenv('PKG_CONFIG_SYSROOT_DIR', '/'),
++ 'opt/vc/lib/pkgconfig'),
++ prev_pkg_path]))
++
++ checks = [
++ # We still need all OpenGL symbols, because the vo_opengl code is
++ # generic and supports anything from GLES2/OpenGL 2.1 to OpenGL 4 core.
++ check_pkg_config('bcm_host', uselib_store='bcm_host'),
++ check_pkg_config('egl'),
++ check_pkg_config('glesv2'),
++ check_cc(lib=['mmal_core', 'mmal_util', 'mmal_vc_client'], use=['bcm_host']),
++ ]
++
++ ret = all((fn(ctx, dependency_identifier) for fn in checks))
++ os.environ['PKG_CONFIG_PATH'] = prev_pkg_path
++ return ret
+diff --git a/wscript b/wscript
+index e9e0ab3672..49ed85a294 100644
+--- a/wscript
++++ b/wscript
+@@ -753,25 +753,9 @@ video_output_features = [
+ 'deps': 'win32-desktop && shaderc && crossc',
+ 'func': check_cc(header_name=['d3d11_1.h', 'dxgi1_2.h']),
+ }, {
+- # We need MMAL/bcm_host/dispmanx APIs. Also, most RPI distros require
+- # every project to hardcode the paths to the include directories. Also,
+- # these headers are so broken that they spam tons of warnings by merely
+- # including them (compensate with -isystem and -fgnu89-inline).
+ 'name': '--rpi',
+ 'desc': 'Raspberry Pi support',
+- 'func': compose_checks(
+- check_cc(cflags=["-isystem/opt/vc/include",
+- "-isystem/opt/vc/include/interface/vcos/pthreads",
+- "-isystem/opt/vc/include/interface/vmcs_host/linux",
+- "-fgnu89-inline"],
+- linkflags="-L/opt/vc/lib",
+- header_name="bcm_host.h",
+- lib=['mmal_core', 'mmal_util', 'mmal_vc_client', 'bcm_host']),
+- # We still need all OpenGL symbols, because the vo_gpu code is
+- # generic and supports anything from GLES2/OpenGL 2.1 to OpenGL 4 core.
+- check_cc(lib="EGL", linkflags="-lGLESv2"),
+- check_cc(lib="GLESv2"),
+- ),
++ 'func': check_rpi,
+ } , {
+ 'name': '--ios-gl',
+ 'desc': 'iOS OpenGL ES hardware decoding interop support',
+--
+2.17.1
+
--
2.17.1