diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
commit | 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch) | |
tree | cd70a267a5ef105ba32f200aa088e281fbd85747 /external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft | |
parent | 4204309872da5cb401cbb2729d9e2d4869a87f42 (diff) |
basesystem-jjsandbox/ToshikazuOhiwa/master-jj
recipes
Diffstat (limited to 'external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft')
11 files changed, 678 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch new file mode 100644 index 00000000..245785c8 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch @@ -0,0 +1,194 @@ +From 07fce2101d83b5334de78e661ba0361c2874ebdf Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Mon, 18 Mar 2019 16:30:45 -0700 +Subject: [PATCH 1/7] Remove python venv + +Remove the python venv requirements and instead just use the native +python and pip pacakges. + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 39 --------------------------------------- + start-mycroft.sh | 13 ------------- + venv-activate.sh | 44 +------------------------------------------- + 3 files changed, 1 insertion(+), 95 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index cf81ed25f0f..99a44bfd8a7 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -338,18 +338,6 @@ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools pytho + fi + } + +-VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${TOP}/.venv"} +- +-function install_venv() { +- $opt_python -m venv "${VIRTUALENV_ROOT}/" --without-pip +- # Force version of pip for reproducability, but there is nothing special +- # about this version. Update whenever a new version is released and +- # verified functional. +- curl https://bootstrap.pypa.io/3.3/get-pip.py | "${VIRTUALENV_ROOT}/bin/python" - 'pip==18.0.0' +- # Function status depending on if pip exists +- [[ -x ${VIRTUALENV_ROOT}/bin/pip ]] +-} +- + install_deps + + # Configure to use the standard commit template for +@@ -383,17 +371,6 @@ else + fi + fi + +-if [[ ! -x ${VIRTUALENV_ROOT}/bin/activate ]] ; then +- if ! install_venv ; then +- echo 'Failed to set up virtualenv for mycroft, exiting setup.' +- exit 1 +- fi +-fi +- +-# Start the virtual environment +-source "${VIRTUALENV_ROOT}/bin/activate" +-cd "$TOP" +- + # Install pep8 pre-commit hook + HOOK_FILE='./.git/hooks/pre-commit' + if [[ -n $INSTALL_PRECOMMIT_HOOK ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +@@ -408,22 +385,6 @@ fi + + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + +-# Add mycroft-core to the virtualenv path +-# (This is equivalent to typing 'add2virtualenv $TOP', except +-# you can't invoke that shell function from inside a script) +-VENV_PATH_FILE="${VIRTUALENV_ROOT}/lib/$PYTHON/site-packages/_virtualenv_path_extensions.pth" +-if [[ ! -f $VENV_PATH_FILE ]] ; then +- echo 'import sys; sys.__plen = len(sys.path)' > "$VENV_PATH_FILE" || return 1 +- echo "import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)" >> "$VENV_PATH_FILE" || return 1 +-fi +- +-if ! grep -q "$TOP" $VENV_PATH_FILE ; then +- echo 'Adding mycroft-core to virtualenv path' +- sed -i.tmp '1 a\ +-'"$TOP"' +-' "$VENV_PATH_FILE" +-fi +- + # install required python modules + if ! pip install -r requirements.txt ; then + echo 'Warning: Failed to install all requirements. Continue? y/N' +diff --git a/start-mycroft.sh b/start-mycroft.sh +index 0f88430982e..3aed2f189d4 100755 +--- a/start-mycroft.sh ++++ b/start-mycroft.sh +@@ -20,7 +20,6 @@ script=${0} + script=${script##*/} + cd -P "$( dirname "$SOURCE" )" + DIR="$( pwd )" +-VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${DIR}/.venv"} + + function help() { + echo "${script}: Mycroft command/service launcher" +@@ -76,19 +75,11 @@ function name-to-script-path() { + esac + } + +-function source-venv() { +- # Enter Python virtual environment, unless under Docker +- if [ ! -f "/.dockerenv" ] ; then +- source ${VIRTUALENV_ROOT}/bin/activate +- fi +-} +- + first_time=true + function init-once() { + if ($first_time) ; then + echo "Initializing..." + "${DIR}/scripts/prepare-msm.sh" +- source-venv + first_time=false + fi + } +@@ -225,15 +216,12 @@ case ${_opt} in + # launch-background ${_opt} + # ;; + "unittest") +- source-venv + pytest test/unittests/ --cov=mycroft "$@" + ;; + "singleunittest") +- source-venv + pytest "$@" + ;; + "skillstest") +- source-venv + pytest test/integrationtests/skills/discover_tests.py "$@" + ;; + "audiotest") +@@ -243,7 +231,6 @@ case ${_opt} in + launch-process ${_opt} + ;; + "sdkdoc") +- source-venv + cd doc + make ${_params} + cd .. +diff --git a/venv-activate.sh b/venv-activate.sh +index d1e7bcb44e7..10b46d4de3b 100644 +--- a/venv-activate.sh ++++ b/venv-activate.sh +@@ -22,49 +22,7 @@ + + # wrap in function to allow local variables, since this file will be source'd + function main() { +- local quiet=0 +- +- for arg in "$@" +- do +- case $arg in +- "-q"|"--quiet" ) +- quiet=1 +- ;; +- +- "-h"|"--help" ) +- echo "venv-activate.sh: Enter the Mycroft virtual environment" +- echo "Usage:" +- echo " source venv-activate.sh" +- echo "or" +- echo " . venv-activate.sh" +- echo "" +- echo "Options:" +- echo " -q | --quiet Don't show instructions." +- echo " -h | --help Show help." +- return 0 +- ;; +- +- *) +- echo "ERROR: Unrecognized option: $@" +- return 1 +- ;; +- esac +- done +- +- if [ "$0" == "$BASH_SOURCE" ] ; then +- # Prevent running in script then exiting immediately +- echo "ERROR: Invoke with 'source venv-activate.sh' or '. venv-activate.sh'" +- else +- local SRC_DIR="$( builtin cd "$( dirname "${BASH_SOURCE}" )" ; pwd -P )" +- source ${SRC_DIR}/.venv/bin/activate +- +- # Provide an easier to find "mycroft-" prefixed command. +- unalias mycroft-venv-activate 2>/dev/null +- alias mycroft-venv-deactivate="deactivate && unalias mycroft-venv-deactivate 2>/dev/null && alias mycroft-venv-activate=\"source '${SRC_DIR}/venv-activate.sh'\"" +- if [ $quiet -eq 0 ] ; then +- echo "Entering Mycroft virtual environment. Run 'mycroft-venv-deactivate' to exit" +- fi +- fi ++ echo "Not entering Python VENV" + } + + main $@ +-- +2.23.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch new file mode 100644 index 00000000..637854fd --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch @@ -0,0 +1,48 @@ +From 88696037af52d6a7f57bc0fb82598de1a25365cc Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Fri, 29 Mar 2019 16:09:57 -0700 +Subject: [PATCH 2/7] dev_setup.sh: Remove the git dependency + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 99a44bfd8a7..672b27080c2 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -340,10 +340,6 @@ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools pytho + + install_deps + +-# Configure to use the standard commit template for +-# this repo only. +-git config commit.template .gitmessage +- + # Check whether to build mimic (it takes a really long time!) + build_mimic='n' + if [[ $opt_forcemimicbuild == true ]] ; then +@@ -371,18 +367,6 @@ else + fi + fi + +-# Install pep8 pre-commit hook +-HOOK_FILE='./.git/hooks/pre-commit' +-if [[ -n $INSTALL_PRECOMMIT_HOOK ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +- if [[ ! -f $HOOK_FILE ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +- echo 'Installing PEP8 check as precommit-hook' +- echo "#! $(which python)" > $HOOK_FILE +- echo '# MYCROFT DEV SETUP' >> $HOOK_FILE +- cat ./scripts/pre-commit >> $HOOK_FILE +- chmod +x $HOOK_FILE +- fi +-fi +- + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + + # install required python modules +-- +2.23.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch new file mode 100644 index 00000000..d803f526 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch @@ -0,0 +1,37 @@ +From 5ef52cdea278a1dff966a912549cb6708f2cb699 Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Tue, 17 Sep 2019 11:31:47 -0700 +Subject: [PATCH 3/7] dev_setup.sh: Remove the TERM dependency + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 672b27080c2..72f734f36bf 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -115,18 +115,6 @@ function get_YN() { + done + } + +-# If tput is available and can handle multiple colors +-if found_exe tput ; then +- if [[ $(tput colors) != "-1" ]]; then +- GREEN=$(tput setaf 2) +- BLUE=$(tput setaf 4) +- CYAN=$(tput setaf 6) +- YELLOW=$(tput setaf 3) +- RESET=$(tput sgr0) +- HIGHLIGHT=$YELLOW +- fi +-fi +- + # Run a setup wizard the very first time that guides the user through some decisions + if [[ ! -f .dev_opts.json && -z $CI ]] ; then + echo " +-- +2.23.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch new file mode 100644 index 00000000..d2dc179c --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch @@ -0,0 +1,31 @@ +From e3b6ca995caca22e65d012a54bc2aeb08eb7e9d4 Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Tue, 15 Oct 2019 17:09:06 -0700 +Subject: [PATCH 4/7] dev_setup.sh: Ignore missing package manager + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 72f734f36bf..0c8e11b8170 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -317,12 +317,6 @@ Please review the following package changes carefully." + echo -e "${YELLOW}Could not find package manager + ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools python-venv pygobject libtool libffi libjpg openssl autoconf bison swig glib2.0 portaudio19 mpg123 flac curl fann g++ jq\n$RESET" + +- echo 'Warning: Failed to install all dependencies. Continue? y/N' +- read -n1 continue +- if [[ $continue != 'y' ]] ; then +- exit 1 +- fi +- + fi + } + +-- +2.23.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch new file mode 100644 index 00000000..7f63ea13 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch @@ -0,0 +1,103 @@ +From 04b14c4569309f1a433d955773aeb8a3607a1360 Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Tue, 19 Mar 2019 13:32:54 -0700 +Subject: [PATCH 5/7] pip requirements: Don't install requirements with pip + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 15 +-------------- + requirements.txt | 36 ------------------------------------ + test-requirements.txt | 7 ------- + 3 files changed, 1 insertion(+), 57 deletions(-) + delete mode 100644 requirements.txt + delete mode 100644 test-requirements.txt + +diff --git a/dev_setup.sh b/dev_setup.sh +index 0c8e11b8170..be4a19de0c3 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -351,19 +351,6 @@ fi + + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + +-# install required python modules +-if ! pip install -r requirements.txt ; then +- echo 'Warning: Failed to install all requirements. Continue? y/N' +- read -n1 continue +- if [[ $continue != 'y' ]] ; then +- exit 1 +- fi +-fi +- +-if ! pip install -r test-requirements.txt ; then +- echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." +-fi +- + SYSMEM=$(free | awk '/^Mem:/ { print $2 }') + MAXCORES=$(($SYSMEM / 512000)) + MINCORES=1 +@@ -420,4 +407,4 @@ if [[ ! -w /var/log/mycroft/ ]] ; then + fi + + #Store a fingerprint of setup +-md5sum requirements.txt test-requirements.txt dev_setup.sh > .installed ++md5sum dev_setup.sh > .installed +diff --git a/requirements.txt b/requirements.txt +deleted file mode 100644 +index 0140d5465dc..00000000000 +--- a/requirements.txt ++++ /dev/null +@@ -1,36 +0,0 @@ +-six==1.10.0 +-cryptography==2.6.1 +-requests==2.20.0 +-gTTS==2.0.3 +-gTTS-token==1.1.3 +-PyAudio==0.2.11 +-pyee==5.0.0 +-SpeechRecognition==3.8.1 +-tornado==4.5.3 +-websocket-client==0.54.0 +-requests-futures==0.9.5 +-pyalsaaudio==0.8.2 +-xmlrunner==1.7.7 +-pyserial==3.0 +-psutil==5.2.1 +-pocketsphinx==0.1.0 +-inflection==0.3.1 +-pillow==4.1.1 +-python-dateutil==2.6.0 +-pychromecast==3.2.2 +-python-vlc==1.1.2 +-google-api-python-client==1.6.4 +-fasteners==0.14.1 +-PyYAML==3.13 +- +-msm==0.8.3 +-msk==0.3.13 +-adapt-parser==0.3.3 +-padatious==0.4.6 +-fann2==1.0.7 +-padaos==0.1.9 +-precise-runner==0.2.1 +-petact==0.1.2 +- +-# dev setup tools +-pep8==1.7.0 +diff --git a/test-requirements.txt b/test-requirements.txt +deleted file mode 100644 +index fd129e3f66d..00000000000 +--- a/test-requirements.txt ++++ /dev/null +@@ -1,7 +0,0 @@ +-pycodestyle===2.5.0 +-coveralls==1.5.0 +-pytest==3.5.0 +-pytest-cov==2.5.1 +-cov-core==1.15.0 +-sphinx==1.8.2 +-sphinx-rtd-theme==0.4.2 +-- +2.23.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch new file mode 100644 index 00000000..6f1f6f78 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch @@ -0,0 +1,121 @@ +From 86a1d18d96f827baa0c1029c85a53fc89d436e17 Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Tue, 19 Mar 2019 13:38:44 -0700 +Subject: [PATCH 6/7] Use python3 and pip3 instead of python and pip + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + bin/mycroft-cli-client | 2 +- + bin/mycroft-pip | 2 +- + bin/mycroft-say-to | 2 +- + bin/mycroft-skill-testrunner | 4 ++-- + bin/mycroft-speak | 2 +- + dev_setup.sh | 6 +++--- + scripts/install-pocketsphinx.sh | 2 +- + 7 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/bin/mycroft-cli-client b/bin/mycroft-cli-client +index f40a316e3f6..de2040d9e67 100755 +--- a/bin/mycroft-cli-client ++++ b/bin/mycroft-cli-client +@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )" + source "$DIR/../venv-activate.sh" -q + + # Invoke the Command Line Interface +-python -m mycroft.client.text $@ ++python3 -m mycroft.client.text $@ +diff --git a/bin/mycroft-pip b/bin/mycroft-pip +index a42b16b847a..81bd5bfb3cf 100755 +--- a/bin/mycroft-pip ++++ b/bin/mycroft-pip +@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )" + source "$DIR/../venv-activate.sh" -q + + # Install pip packages within the Mycroft venv +-pip $@ +\ No newline at end of file ++pip3 $@ +\ No newline at end of file +diff --git a/bin/mycroft-say-to b/bin/mycroft-say-to +index 4ae597f3062..8bb4039996d 100755 +--- a/bin/mycroft-say-to ++++ b/bin/mycroft-say-to +@@ -26,4 +26,4 @@ set -- "${1:-$(</dev/stdin)}" "${@:2}" + + # Send a message to be spoken + data="$@" +-output=$(python -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$data\"], \"lang\": \"en-us\"}") ++output=$(python3 -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$data\"], \"lang\": \"en-us\"}") +diff --git a/bin/mycroft-skill-testrunner b/bin/mycroft-skill-testrunner +index 9699a4d138f..282f5ca65b0 100755 +--- a/bin/mycroft-skill-testrunner ++++ b/bin/mycroft-skill-testrunner +@@ -22,7 +22,7 @@ source "$DIR/../venv-activate.sh" -q + + # Invoke the individual skill tester + if [ "$#" -eq 0 ] ; then +- python -m test.integrationtests.skills.runner . ++ python3 -m test.integrationtests.skills.runner . + else +- python -m test.integrationtests.skills.runner $@ ++ python3 -m test.integrationtests.skills.runner $@ + fi +\ No newline at end of file +diff --git a/bin/mycroft-speak b/bin/mycroft-speak +index d80f0e75b13..9448ea3400f 100755 +--- a/bin/mycroft-speak ++++ b/bin/mycroft-speak +@@ -24,4 +24,4 @@ source "$DIR/../venv-activate.sh" -q + + # Send a message to be spoken + data="$@" +-output=$(python -m mycroft.messagebus.send "speak" "{\"utterance\": \"$data\"}") ++output=$(python3 -m mycroft.messagebus.send "speak" "{\"utterance\": \"$data\"}") +diff --git a/dev_setup.sh b/dev_setup.sh +index be4a19de0c3..2d9e17ddfd6 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -48,7 +48,7 @@ param='' + + for var in "$@" ; do + # Check if parameter should be read +- if [[ $param == 'python' ]] ; then ++ if [[ $param == 'python3' ]] ; then + opt_python=$var + param="" + continue +@@ -75,7 +75,7 @@ for var in "$@" ; do + opt_skipmimicbuild=true + fi + if [[ $var == '-p' || $var == '--python' ]] ; then +- param='python' ++ param='python3' + fi + done + +@@ -349,7 +349,7 @@ else + fi + fi + +-PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") ++PYTHON=$(python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + + SYSMEM=$(free | awk '/^Mem:/ { print $2 }') + MAXCORES=$(($SYSMEM / 512000)) +diff --git a/scripts/install-pocketsphinx.sh b/scripts/install-pocketsphinx.sh +index 44d329b7985..d45f5c22747 100755 +--- a/scripts/install-pocketsphinx.sh ++++ b/scripts/install-pocketsphinx.sh +@@ -47,7 +47,7 @@ function install_pocketsphinx() { + + # build and install pocketsphinx python bindings + cd ${TOP}/pocketsphinx-python +- python setup.py install ++ python3 setup.py install + } + + if [ "$1" = "-q" ] ; then +-- +2.23.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch new file mode 100644 index 00000000..574bda14 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch @@ -0,0 +1,30 @@ +From b48b3d240cb0fa5e76aa5daf578e51bb8126431d Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Wed, 16 Oct 2019 09:18:39 -0700 +Subject: [PATCH 7/7] mycroft.conf: Use pocketsphinx by default + +precise only works on certain architectures, to make Mycroft more +versitle use pocketsphinx as it is architecture independent. + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + mycroft/configuration/mycroft.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mycroft/configuration/mycroft.conf b/mycroft/configuration/mycroft.conf +index 1d0be0dcd2b..d2dc75dac44 100644 +--- a/mycroft/configuration/mycroft.conf ++++ b/mycroft/configuration/mycroft.conf +@@ -196,7 +196,7 @@ + // Hotword configurations + "hotwords": { + "hey mycroft": { +- "module": "precise", ++ "module": "pocketsphinx", + "phonemes": "HH EY . M AY K R AO F T", + "threshold": 1e-90, + "lang": "en-us" +-- +2.23.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json new file mode 100644 index 00000000..5ed85faf --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json @@ -0,0 +1 @@ +{"use_branch": "dev", "auto_update": false}
\ No newline at end of file diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service new file mode 100644 index 00000000..4b4bcdd7 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service @@ -0,0 +1,12 @@ +[Unit] +Description=Mycroft Setup +DefaultDependencies=no +After=systemd-user-sessions.service + +[Service] +Type=oneshot +ExecStart=cp -rf @LIBDIR@/mycroft /var/ +ExecStart=/var/mycroft/dev_setup.sh --allow-root + +[Install] +WantedBy=multi-user.target diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service new file mode 100644 index 00000000..c7f477f1 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service @@ -0,0 +1,14 @@ +[Unit] +Description=Mycroft +RequiresMountsFor=/var +After=mycroft-setup.service + +[Service] +Type=forking +WorkingDirectory=/var/mycroft +ExecStartPre=mkdir -p /var/log/mycroft +ExecStart=/var/mycroft/start-mycroft.sh all +ExecStop=/var/mycroft/stop-mycroft.sh all + +[Install] +WantedBy=multi-user.target diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb new file mode 100644 index 00000000..62d1ad7f --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb @@ -0,0 +1,87 @@ +SUMMARY = "Mycroft is a hackable open source voice assistant." +DESCRIPTION = "Mycroft is the world’s first open source assistant. " +HOMEPAGE = "https://mycroft.ai/" +SECTION = "multimedia" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6" + +SRCREV = "913f29d3d550637934f9abf43a097eb2c30d76fc" +SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \ + file://0001-Remove-python-venv.patch \ + file://0002-dev_setup.sh-Remove-the-git-dependency.patch \ + file://0003-dev_setup.sh-Remove-the-TERM-dependency.patch \ + file://0004-dev_setup.sh-Ignore-missing-package-manager.patch \ + file://0005-pip-requirements-Don-t-install-requirements-with-pip.patch \ + file://0006-Use-python3-and-pip3-instead-of-python-and-pip.patch \ + file://0007-mycroft.conf-Use-pocketsphinx-by-default.patch \ + file://dev_opts.json \ + file://mycroft-setup.service \ + file://mycroft.service \ + " + +S = "${WORKDIR}/git" + +inherit systemd + +# Mycroft installs itself on the host +# Just copy the setup files to the rootfs +# The mycroft-setup service will copy the files to /var/ where we run them from +do_install() { + install -d ${D}${libdir}/ + cp -r ${B} ${D}${libdir}/mycroft + rm -r ${D}${libdir}/mycroft/.git + + # Install the dev opts so it doesn't ask us on initial setup. + install -m 644 ${WORKDIR}/dev_opts.json ${D}${libdir}/mycroft/.dev_opts.json + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/mycroft-setup.service ${D}${systemd_unitdir}/system + sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft-setup.service + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/mycroft.service ${D}${systemd_unitdir}/system + sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft.service + fi +} + +FILES_${PN} += "${libdir}/mycroft" + +RDEPENDS_${PN} = "python3" + +RDEPENDS_${PN} += "python3-requests python3-pillow \ + python3-tornado python3-pyyaml \ + python3-pyalsaaudio python3-inflection \ + python3-pyserial python3-psutil \ + python3-pyaudio python3-fann2 \ + python3-pocketsphinx \ + python3-xxhash python3-pako \ + python3-six python3-cryptography \ + python3-requests-futures \ + python3-xmlrunner python3-fasteners \ + python3-python-vlc \ + python3-padatious python3-padaos \ + python3-petact python3-precise-runner \ + python3-pulsectl python3-pychromecast \ + python3-msm python3-msk \ + python3-websocket-client \ + python3-google-api-python-client \ + " + +# These packages need to be installed on the target +# python3-speechrecognition python3-pyee==5.0.0 python3-six==1.10.0 +# python3-websocket-client==0.54.0 python3-gtts python3-gtts-token +# python3-python-dateutil python3-adapt-parser python3-lazy + +# Mycroft uses Alsa, PulseAudio and Flac +RDEPENDS_${PN} += "alsa-utils alsa-plugins alsa-tools" +RDEPENDS_${PN} += "pulseaudio pulseaudio-misc pulseaudio-server" +RDEPENDS_${PN} += "flac mpg123" + +# Mycroft can do this itself on the target, but it's quicker to do it here +RDEPENDS_${PN} += "mimic" + +SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service" |