diff options
9 files changed, 566 insertions, 0 deletions
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch new file mode 100644 index 0000000000..c03bccd3da --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch | |||
| @@ -0,0 +1,192 @@ | |||
| 1 | From 6272f36080bd440a5825b526f4c06223c5bb9fbb Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alistair Francis <alistair.francis@wdc.com> | ||
| 3 | Date: Mon, 18 Mar 2019 16:30:45 -0700 | ||
| 4 | Subject: [PATCH 1/5] Remove python venv | ||
| 5 | |||
| 6 | Remove the python venv requirements and instead just use the native | ||
| 7 | python and pip pacakges. | ||
| 8 | |||
| 9 | Signed-off-by: Alistair Francis <alistair.francis@wdc.com> | ||
| 10 | Upstream-Status: Inappropriate [embedded specific] | ||
| 11 | --- | ||
| 12 | dev_setup.sh | 36 ------------------------------------ | ||
| 13 | start-mycroft.sh | 13 ------------- | ||
| 14 | venv-activate.sh | 44 +------------------------------------------- | ||
| 15 | 3 files changed, 1 insertion(+), 92 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/dev_setup.sh b/dev_setup.sh | ||
| 18 | index e0b07bf25cf..aed54b2167a 100755 | ||
| 19 | --- a/dev_setup.sh | ||
| 20 | +++ b/dev_setup.sh | ||
| 21 | @@ -310,18 +310,6 @@ function install_deps() { | ||
| 22 | fi | ||
| 23 | } | ||
| 24 | |||
| 25 | -VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${TOP}/.venv"} | ||
| 26 | - | ||
| 27 | -function install_venv() { | ||
| 28 | - ${opt_python} -m venv "${VIRTUALENV_ROOT}/" --without-pip | ||
| 29 | - # Force version of pip for reproducability, but there is nothing special | ||
| 30 | - # about this version. Update whenever a new version is released and | ||
| 31 | - # verified functional. | ||
| 32 | - curl https://bootstrap.pypa.io/3.3/get-pip.py | "${VIRTUALENV_ROOT}/bin/python" - 'pip==18.0.0' | ||
| 33 | - # Function status depending on if pip exists | ||
| 34 | - [ -x "${VIRTUALENV_ROOT}/bin/pip" ] | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | install_deps | ||
| 38 | |||
| 39 | # Configure to use the standard commit template for | ||
| 40 | @@ -355,15 +343,7 @@ else | ||
| 41 | fi | ||
| 42 | fi | ||
| 43 | |||
| 44 | -if [ ! -x "${VIRTUALENV_ROOT}/bin/activate" ] ; then | ||
| 45 | - if ! install_venv ; then | ||
| 46 | - echo "Failed to set up virtualenv for mycroft, exiting setup." | ||
| 47 | - exit 1 | ||
| 48 | - fi | ||
| 49 | -fi | ||
| 50 | - | ||
| 51 | # Start the virtual environment | ||
| 52 | -source "${VIRTUALENV_ROOT}/bin/activate" | ||
| 53 | cd "${TOP}" | ||
| 54 | |||
| 55 | # Install pep8 pre-commit hook | ||
| 56 | @@ -380,22 +360,6 @@ fi | ||
| 57 | |||
| 58 | PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) | ||
| 59 | |||
| 60 | -# Add mycroft-core to the virtualenv path | ||
| 61 | -# (This is equivalent to typing 'add2virtualenv $TOP', except | ||
| 62 | -# you can't invoke that shell function from inside a script) | ||
| 63 | -VENV_PATH_FILE="${VIRTUALENV_ROOT}/lib/$PYTHON/site-packages/_virtualenv_path_extensions.pth" | ||
| 64 | -if [ ! -f "$VENV_PATH_FILE" ] ; then | ||
| 65 | - echo "import sys; sys.__plen = len(sys.path)" > "$VENV_PATH_FILE" || return 1 | ||
| 66 | - 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 | ||
| 67 | -fi | ||
| 68 | - | ||
| 69 | -if ! grep -q "$TOP" $VENV_PATH_FILE ; then | ||
| 70 | - echo "Adding mycroft-core to virtualenv path" | ||
| 71 | - sed -i.tmp '1 a\ | ||
| 72 | -'"$TOP"' | ||
| 73 | -' "${VENV_PATH_FILE}" | ||
| 74 | -fi | ||
| 75 | - | ||
| 76 | # install required python modules | ||
| 77 | if ! pip install -r requirements.txt ; then | ||
| 78 | echo "Warning: Failed to install all requirements. Continue? y/N" | ||
| 79 | diff --git a/start-mycroft.sh b/start-mycroft.sh | ||
| 80 | index b9514a61ba5..64e0216a62f 100755 | ||
| 81 | --- a/start-mycroft.sh | ||
| 82 | +++ b/start-mycroft.sh | ||
| 83 | @@ -20,7 +20,6 @@ script=${0} | ||
| 84 | script=${script##*/} | ||
| 85 | cd -P "$( dirname "$SOURCE" )" | ||
| 86 | DIR="$( pwd )" | ||
| 87 | -VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${DIR}/.venv"} | ||
| 88 | |||
| 89 | function help() { | ||
| 90 | echo "${script}: Mycroft command/service launcher" | ||
| 91 | @@ -76,19 +75,11 @@ function name-to-script-path() { | ||
| 92 | esac | ||
| 93 | } | ||
| 94 | |||
| 95 | -function source-venv() { | ||
| 96 | - # Enter Python virtual environment, unless under Docker | ||
| 97 | - if [ ! -f "/.dockerenv" ] ; then | ||
| 98 | - source ${VIRTUALENV_ROOT}/bin/activate | ||
| 99 | - fi | ||
| 100 | -} | ||
| 101 | - | ||
| 102 | first_time=true | ||
| 103 | function init-once() { | ||
| 104 | if ($first_time) ; then | ||
| 105 | echo "Initializing..." | ||
| 106 | "${DIR}/scripts/prepare-msm.sh" | ||
| 107 | - source-venv | ||
| 108 | first_time=false | ||
| 109 | fi | ||
| 110 | } | ||
| 111 | @@ -225,15 +216,12 @@ case ${_opt} in | ||
| 112 | # launch-background ${_opt} | ||
| 113 | # ;; | ||
| 114 | "unittest") | ||
| 115 | - source-venv | ||
| 116 | pytest test/unittests/ --cov=mycroft "$@" | ||
| 117 | ;; | ||
| 118 | "singleunittest") | ||
| 119 | - source-venv | ||
| 120 | pytest "$@" | ||
| 121 | ;; | ||
| 122 | "skillstest") | ||
| 123 | - source-venv | ||
| 124 | pytest test/integrationtests/skills/discover_tests.py "$@" | ||
| 125 | ;; | ||
| 126 | "audiotest") | ||
| 127 | @@ -243,7 +231,6 @@ case ${_opt} in | ||
| 128 | launch-process ${_opt} | ||
| 129 | ;; | ||
| 130 | "sdkdoc") | ||
| 131 | - source-venv | ||
| 132 | cd doc | ||
| 133 | make ${opt} | ||
| 134 | cd .. | ||
| 135 | diff --git a/venv-activate.sh b/venv-activate.sh | ||
| 136 | index d1e7bcb44e7..10b46d4de3b 100644 | ||
| 137 | --- a/venv-activate.sh | ||
| 138 | +++ b/venv-activate.sh | ||
| 139 | @@ -22,49 +22,7 @@ | ||
| 140 | |||
| 141 | # wrap in function to allow local variables, since this file will be source'd | ||
| 142 | function main() { | ||
| 143 | - local quiet=0 | ||
| 144 | - | ||
| 145 | - for arg in "$@" | ||
| 146 | - do | ||
| 147 | - case $arg in | ||
| 148 | - "-q"|"--quiet" ) | ||
| 149 | - quiet=1 | ||
| 150 | - ;; | ||
| 151 | - | ||
| 152 | - "-h"|"--help" ) | ||
| 153 | - echo "venv-activate.sh: Enter the Mycroft virtual environment" | ||
| 154 | - echo "Usage:" | ||
| 155 | - echo " source venv-activate.sh" | ||
| 156 | - echo "or" | ||
| 157 | - echo " . venv-activate.sh" | ||
| 158 | - echo "" | ||
| 159 | - echo "Options:" | ||
| 160 | - echo " -q | --quiet Don't show instructions." | ||
| 161 | - echo " -h | --help Show help." | ||
| 162 | - return 0 | ||
| 163 | - ;; | ||
| 164 | - | ||
| 165 | - *) | ||
| 166 | - echo "ERROR: Unrecognized option: $@" | ||
| 167 | - return 1 | ||
| 168 | - ;; | ||
| 169 | - esac | ||
| 170 | - done | ||
| 171 | - | ||
| 172 | - if [ "$0" == "$BASH_SOURCE" ] ; then | ||
| 173 | - # Prevent running in script then exiting immediately | ||
| 174 | - echo "ERROR: Invoke with 'source venv-activate.sh' or '. venv-activate.sh'" | ||
| 175 | - else | ||
| 176 | - local SRC_DIR="$( builtin cd "$( dirname "${BASH_SOURCE}" )" ; pwd -P )" | ||
| 177 | - source ${SRC_DIR}/.venv/bin/activate | ||
| 178 | - | ||
| 179 | - # Provide an easier to find "mycroft-" prefixed command. | ||
| 180 | - unalias mycroft-venv-activate 2>/dev/null | ||
| 181 | - alias mycroft-venv-deactivate="deactivate && unalias mycroft-venv-deactivate 2>/dev/null && alias mycroft-venv-activate=\"source '${SRC_DIR}/venv-activate.sh'\"" | ||
| 182 | - if [ $quiet -eq 0 ] ; then | ||
| 183 | - echo "Entering Mycroft virtual environment. Run 'mycroft-venv-deactivate' to exit" | ||
| 184 | - fi | ||
| 185 | - fi | ||
| 186 | + echo "Not entering Python VENV" | ||
| 187 | } | ||
| 188 | |||
| 189 | main $@ | ||
| 190 | -- | ||
| 191 | 2.21.0 | ||
| 192 | |||
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch new file mode 100644 index 0000000000..ca79d00b42 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | From 142bc3912ea9e1a4ecf4db0e2bec3049aa416464 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alistair Francis <alistair.francis@wdc.com> | ||
| 3 | Date: Tue, 19 Mar 2019 13:32:54 -0700 | ||
| 4 | Subject: [PATCH 2/5] pip requirements: Remove ones installed by OE | ||
| 5 | |||
| 6 | Signed-off-by: Alistair Francis <alistair.francis@wdc.com> | ||
| 7 | Upstream-Status: Inappropriate [embedded specific] | ||
| 8 | --- | ||
| 9 | requirements.txt | 14 -------------- | ||
| 10 | test-requirements.txt | 1 - | ||
| 11 | 2 files changed, 15 deletions(-) | ||
| 12 | |||
| 13 | diff --git a/requirements.txt b/requirements.txt | ||
| 14 | index 7e4faf48182..29536e990ac 100644 | ||
| 15 | --- a/requirements.txt | ||
| 16 | +++ b/requirements.txt | ||
| 17 | @@ -1,20 +1,10 @@ | ||
| 18 | -six==1.10.0 | ||
| 19 | -requests==2.20.0 | ||
| 20 | gTTS==2.0.3 | ||
| 21 | gTTS-token==1.1.3 | ||
| 22 | -PyAudio==0.2.11 | ||
| 23 | pyee==5.0.0 | ||
| 24 | SpeechRecognition==3.8.1 | ||
| 25 | -tornado==4.5.3 | ||
| 26 | websocket-client==0.54.0 | ||
| 27 | requests-futures==0.9.5 | ||
| 28 | -pyalsaaudio==0.8.2 | ||
| 29 | xmlrunner==1.7.7 | ||
| 30 | -pyserial==3.0 | ||
| 31 | -psutil==5.2.1 | ||
| 32 | -pocketsphinx==0.1.0 | ||
| 33 | -inflection==0.3.1 | ||
| 34 | -pillow==4.1.1 | ||
| 35 | python-dateutil==2.6.0 | ||
| 36 | pychromecast==0.7.7 | ||
| 37 | python-vlc==1.1.2 | ||
| 38 | @@ -26,10 +16,6 @@ msm==0.7.3 | ||
| 39 | msk==0.3.12 | ||
| 40 | adapt-parser==0.3.2 | ||
| 41 | padatious==0.4.6 | ||
| 42 | -fann2==1.0.7 | ||
| 43 | padaos==0.1.9 | ||
| 44 | precise-runner==0.2.1 | ||
| 45 | petact==0.1.2 | ||
| 46 | - | ||
| 47 | -# dev setup tools | ||
| 48 | -pep8==1.7.0 | ||
| 49 | diff --git a/test-requirements.txt b/test-requirements.txt | ||
| 50 | index 8ada8157c95..eb4e364a9b4 100644 | ||
| 51 | --- a/test-requirements.txt | ||
| 52 | +++ b/test-requirements.txt | ||
| 53 | @@ -1,6 +1,5 @@ | ||
| 54 | pep8==1.7.0 | ||
| 55 | coveralls==1.5.0 | ||
| 56 | -pytest==3.5.0 | ||
| 57 | pytest-cov==2.5.1 | ||
| 58 | cov-core==1.15.0 | ||
| 59 | mock==2.0.0 | ||
| 60 | -- | ||
| 61 | 2.21.0 | ||
| 62 | |||
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch new file mode 100644 index 0000000000..a1f04b4b47 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch | |||
| @@ -0,0 +1,135 @@ | |||
| 1 | From 87b94e54fefa1f83b41030444fc87b421c97b2c5 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alistair Francis <alistair.francis@wdc.com> | ||
| 3 | Date: Tue, 19 Mar 2019 13:38:44 -0700 | ||
| 4 | Subject: [PATCH 3/5] Use python3 and pip3 instead of python and pip | ||
| 5 | |||
| 6 | Signed-off-by: Alistair Francis <alistair.francis@wdc.com> | ||
| 7 | Upstream-Status: Inappropriate [embedded specific] | ||
| 8 | --- | ||
| 9 | bin/mycroft-cli-client | 2 +- | ||
| 10 | bin/mycroft-pip | 2 +- | ||
| 11 | bin/mycroft-say-to | 2 +- | ||
| 12 | bin/mycroft-skill-testrunner | 4 ++-- | ||
| 13 | bin/mycroft-speak | 2 +- | ||
| 14 | dev_setup.sh | 10 +++++----- | ||
| 15 | scripts/install-pocketsphinx.sh | 2 +- | ||
| 16 | 7 files changed, 12 insertions(+), 12 deletions(-) | ||
| 17 | |||
| 18 | diff --git a/bin/mycroft-cli-client b/bin/mycroft-cli-client | ||
| 19 | index f40a316e3f6..de2040d9e67 100755 | ||
| 20 | --- a/bin/mycroft-cli-client | ||
| 21 | +++ b/bin/mycroft-cli-client | ||
| 22 | @@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )" | ||
| 23 | source "$DIR/../venv-activate.sh" -q | ||
| 24 | |||
| 25 | # Invoke the Command Line Interface | ||
| 26 | -python -m mycroft.client.text $@ | ||
| 27 | +python3 -m mycroft.client.text $@ | ||
| 28 | diff --git a/bin/mycroft-pip b/bin/mycroft-pip | ||
| 29 | index a42b16b847a..81bd5bfb3cf 100755 | ||
| 30 | --- a/bin/mycroft-pip | ||
| 31 | +++ b/bin/mycroft-pip | ||
| 32 | @@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )" | ||
| 33 | source "$DIR/../venv-activate.sh" -q | ||
| 34 | |||
| 35 | # Install pip packages within the Mycroft venv | ||
| 36 | -pip $@ | ||
| 37 | \ No newline at end of file | ||
| 38 | +pip3 $@ | ||
| 39 | \ No newline at end of file | ||
| 40 | diff --git a/bin/mycroft-say-to b/bin/mycroft-say-to | ||
| 41 | index 964e16eb0c5..5575969715c 100755 | ||
| 42 | --- a/bin/mycroft-say-to | ||
| 43 | +++ b/bin/mycroft-say-to | ||
| 44 | @@ -22,4 +22,4 @@ DIR="$( pwd )" | ||
| 45 | source "$DIR/../venv-activate.sh" -q | ||
| 46 | |||
| 47 | # Send a message to be spoken | ||
| 48 | -output=$(python -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$@\"], \"lang\": \"en-us\"}") | ||
| 49 | +output=$(python3 -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$@\"], \"lang\": \"en-us\"}") | ||
| 50 | diff --git a/bin/mycroft-skill-testrunner b/bin/mycroft-skill-testrunner | ||
| 51 | index 9699a4d138f..282f5ca65b0 100755 | ||
| 52 | --- a/bin/mycroft-skill-testrunner | ||
| 53 | +++ b/bin/mycroft-skill-testrunner | ||
| 54 | @@ -22,7 +22,7 @@ source "$DIR/../venv-activate.sh" -q | ||
| 55 | |||
| 56 | # Invoke the individual skill tester | ||
| 57 | if [ "$#" -eq 0 ] ; then | ||
| 58 | - python -m test.integrationtests.skills.runner . | ||
| 59 | + python3 -m test.integrationtests.skills.runner . | ||
| 60 | else | ||
| 61 | - python -m test.integrationtests.skills.runner $@ | ||
| 62 | + python3 -m test.integrationtests.skills.runner $@ | ||
| 63 | fi | ||
| 64 | \ No newline at end of file | ||
| 65 | diff --git a/bin/mycroft-speak b/bin/mycroft-speak | ||
| 66 | index 51facf29189..c65556f1173 100755 | ||
| 67 | --- a/bin/mycroft-speak | ||
| 68 | +++ b/bin/mycroft-speak | ||
| 69 | @@ -22,4 +22,4 @@ DIR="$( pwd )" | ||
| 70 | source "$DIR/../venv-activate.sh" -q | ||
| 71 | |||
| 72 | # Send a message to be spoken | ||
| 73 | -output=$(python -m mycroft.messagebus.send "speak" "{\"utterance\": \"$@\"}") | ||
| 74 | \ No newline at end of file | ||
| 75 | +output=$(python3 -m mycroft.messagebus.send "speak" "{\"utterance\": \"$@\"}") | ||
| 76 | \ No newline at end of file | ||
| 77 | diff --git a/dev_setup.sh b/dev_setup.sh | ||
| 78 | index aed54b2167a..dd391181f19 100755 | ||
| 79 | --- a/dev_setup.sh | ||
| 80 | +++ b/dev_setup.sh | ||
| 81 | @@ -48,7 +48,7 @@ param="" | ||
| 82 | |||
| 83 | for var in "$@" ; do | ||
| 84 | # Check if parameter should be read | ||
| 85 | - if [[ ${param} == "python" ]] ; then | ||
| 86 | + if [[ ${param} == "python3" ]] ; then | ||
| 87 | opt_python=${var} | ||
| 88 | param="" | ||
| 89 | continue | ||
| 90 | @@ -351,17 +351,17 @@ if [ -z ${INSTALL_PRECOMMIT_HOOK} ] ; then | ||
| 91 | HOOK_FILE="./.git/hooks/pre-commit" | ||
| 92 | if [ ! -f ${HOOK_FILE} ] || grep -q "MYCROFT DEV SETUP" ${HOOK_FILE} ; then | ||
| 93 | echo "Installing PEP8 check as precommit-hook" | ||
| 94 | - echo "#! $( which python )" > ${HOOK_FILE} | ||
| 95 | + echo "#! $( which python3 )" > ${HOOK_FILE} | ||
| 96 | echo "# MYCROFT DEV SETUP" >> ${HOOK_FILE} | ||
| 97 | cat ./scripts/pre-commit >> ${HOOK_FILE} | ||
| 98 | chmod +x ${HOOK_FILE} | ||
| 99 | fi | ||
| 100 | fi | ||
| 101 | |||
| 102 | -PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) | ||
| 103 | +PYTHON=$( python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) | ||
| 104 | |||
| 105 | # install required python modules | ||
| 106 | -if ! pip install -r requirements.txt ; then | ||
| 107 | +if ! pip3 install -r requirements.txt ; then | ||
| 108 | echo "Warning: Failed to install all requirements. Continue? y/N" | ||
| 109 | read -n1 continue | ||
| 110 | if [[ "$continue" != "y" ]] ; then | ||
| 111 | @@ -369,7 +369,7 @@ if ! pip install -r requirements.txt ; then | ||
| 112 | fi | ||
| 113 | fi | ||
| 114 | |||
| 115 | -if ! pip install -r test-requirements.txt ; then | ||
| 116 | +if ! pip3 install -r test-requirements.txt ; then | ||
| 117 | echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." | ||
| 118 | fi | ||
| 119 | |||
| 120 | diff --git a/scripts/install-pocketsphinx.sh b/scripts/install-pocketsphinx.sh | ||
| 121 | index 44d329b7985..d45f5c22747 100755 | ||
| 122 | --- a/scripts/install-pocketsphinx.sh | ||
| 123 | +++ b/scripts/install-pocketsphinx.sh | ||
| 124 | @@ -47,7 +47,7 @@ function install_pocketsphinx() { | ||
| 125 | |||
| 126 | # build and install pocketsphinx python bindings | ||
| 127 | cd ${TOP}/pocketsphinx-python | ||
| 128 | - python setup.py install | ||
| 129 | + python3 setup.py install | ||
| 130 | } | ||
| 131 | |||
| 132 | if [ "$1" = "-q" ] ; then | ||
| 133 | -- | ||
| 134 | 2.21.0 | ||
| 135 | |||
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch new file mode 100644 index 0000000000..b7ca16013f --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch | |||
| @@ -0,0 +1,48 @@ | |||
| 1 | From a480dde949f820fda6e46c13261883e851f5a430 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alistair Francis <alistair.francis@wdc.com> | ||
| 3 | Date: Fri, 29 Mar 2019 16:09:57 -0700 | ||
| 4 | Subject: [PATCH 4/5] dev_setup.sh: Remove the git dependency | ||
| 5 | |||
| 6 | Signed-off-by: Alistair Francis <alistair.francis@wdc.com> | ||
| 7 | Upstream-Status: Inappropriate [embedded specific] | ||
| 8 | --- | ||
| 9 | dev_setup.sh | 16 ---------------- | ||
| 10 | 1 file changed, 16 deletions(-) | ||
| 11 | |||
| 12 | diff --git a/dev_setup.sh b/dev_setup.sh | ||
| 13 | index dd391181f19..c6aa783e1ef 100755 | ||
| 14 | --- a/dev_setup.sh | ||
| 15 | +++ b/dev_setup.sh | ||
| 16 | @@ -312,10 +312,6 @@ function install_deps() { | ||
| 17 | |||
| 18 | install_deps | ||
| 19 | |||
| 20 | -# Configure to use the standard commit template for | ||
| 21 | -# this repo only. | ||
| 22 | -git config commit.template .gitmessage | ||
| 23 | - | ||
| 24 | # Check whether to build mimic (it takes a really long time!) | ||
| 25 | build_mimic="n" | ||
| 26 | if [[ ${opt_forcemimicbuild} == true ]] ; then | ||
| 27 | @@ -346,18 +342,6 @@ fi | ||
| 28 | # Start the virtual environment | ||
| 29 | cd "${TOP}" | ||
| 30 | |||
| 31 | -# Install pep8 pre-commit hook | ||
| 32 | -if [ -z ${INSTALL_PRECOMMIT_HOOK} ] ; then | ||
| 33 | - HOOK_FILE="./.git/hooks/pre-commit" | ||
| 34 | - if [ ! -f ${HOOK_FILE} ] || grep -q "MYCROFT DEV SETUP" ${HOOK_FILE} ; then | ||
| 35 | - echo "Installing PEP8 check as precommit-hook" | ||
| 36 | - echo "#! $( which python3 )" > ${HOOK_FILE} | ||
| 37 | - echo "# MYCROFT DEV SETUP" >> ${HOOK_FILE} | ||
| 38 | - cat ./scripts/pre-commit >> ${HOOK_FILE} | ||
| 39 | - chmod +x ${HOOK_FILE} | ||
| 40 | - fi | ||
| 41 | -fi | ||
| 42 | - | ||
| 43 | PYTHON=$( python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) | ||
| 44 | |||
| 45 | # install required python modules | ||
| 46 | -- | ||
| 47 | 2.21.0 | ||
| 48 | |||
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch new file mode 100644 index 0000000000..5ae8683764 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | From 7fc38ae0dec30789fa0d365f1764f4950b700a98 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alistair Francis <alistair.francis@wdc.com> | ||
| 3 | Date: Tue, 2 Apr 2019 16:52:44 -0700 | ||
| 4 | Subject: [PATCH 5/5] dev_setup.sh: Remove the test setup dependency | ||
| 5 | |||
| 6 | Signed-off-by: Alistair Francis <alistair.francis@wdc.com> | ||
| 7 | Upstream-Status: Inappropriate [embedded specific] | ||
| 8 | |||
| 9 | Signed-off-by: Alistair Francis <alistair.francis@wdc.com> | ||
| 10 | --- | ||
| 11 | dev_setup.sh | 4 ---- | ||
| 12 | 1 file changed, 4 deletions(-) | ||
| 13 | |||
| 14 | diff --git a/dev_setup.sh b/dev_setup.sh | ||
| 15 | index c6aa783e1ef..bcfaa0c16c2 100755 | ||
| 16 | --- a/dev_setup.sh | ||
| 17 | +++ b/dev_setup.sh | ||
| 18 | @@ -353,10 +353,6 @@ if ! pip3 install -r requirements.txt ; then | ||
| 19 | fi | ||
| 20 | fi | ||
| 21 | |||
| 22 | -if ! pip3 install -r test-requirements.txt ; then | ||
| 23 | - echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." | ||
| 24 | -fi | ||
| 25 | - | ||
| 26 | SYSMEM=$( free | awk '/^Mem:/ { print $2 }' ) | ||
| 27 | MAXCORES=$(($SYSMEM / 512000)) | ||
| 28 | MINCORES=1 | ||
| 29 | -- | ||
| 30 | 2.21.0 | ||
| 31 | |||
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json b/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json new file mode 100644 index 0000000000..5ed85faf41 --- /dev/null +++ b/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/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service new file mode 100644 index 0000000000..07598235ee --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | [Unit] | ||
| 2 | Description=Mycroft Setup | ||
| 3 | DefaultDependencies=no | ||
| 4 | After=systemd-user-sessions.service | ||
| 5 | |||
| 6 | [Service] | ||
| 7 | Type=oneshot | ||
| 8 | ExecStart=@LIBDIR@/mycroft/dev_setup.sh --allow-root | ||
| 9 | |||
| 10 | [Install] | ||
| 11 | WantedBy=multi-user.target | ||
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service new file mode 100644 index 0000000000..04cf436204 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | [Unit] | ||
| 2 | Description=Mycroft | ||
| 3 | DefaultDependencies=no | ||
| 4 | After=mycroft-setup | ||
| 5 | |||
| 6 | [Service] | ||
| 7 | Type=forking | ||
| 8 | ExecStartPre=mkdir -p /var/log/mycroft | ||
| 9 | ExecStart=@LIBDIR@/mycroft/start-mycroft.sh all | ||
| 10 | ExecStop=@LIBDIR@/mycroft/stop-mycroft.sh all | ||
| 11 | |||
| 12 | [Install] | ||
| 13 | WantedBy=multi-user.target | ||
diff --git a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.2.bb b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.2.bb new file mode 100644 index 0000000000..c8ae534681 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.2.bb | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | SUMMARY = "Mycroft is a hackable open source voice assistant." | ||
| 2 | DESCRIPTION = "Mycroft is the world’s first open source assistant. " | ||
| 3 | HOMEPAGE = "https://mycroft.ai/" | ||
| 4 | SECTION = "multimedia" | ||
| 5 | |||
| 6 | LICENSE = "Apache-2.0" | ||
| 7 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6" | ||
| 8 | |||
| 9 | SRCREV = "6706c377820912f83c1838d9eb32950ca9e39ec7" | ||
| 10 | SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \ | ||
| 11 | file://0001-Remove-python-venv.patch \ | ||
| 12 | file://0002-pip-requirements-Remove-ones-installed-by-OE.patch \ | ||
| 13 | file://0003-Use-python3-and-pip3-instead-of-python-and-pip.patch \ | ||
| 14 | file://0004-dev_setup.sh-Remove-the-git-dependency.patch \ | ||
| 15 | file://0005-dev_setup.sh-Remove-the-test-setup-dependency.patch \ | ||
| 16 | file://dev_opts.json \ | ||
| 17 | file://mycroft-setup.service \ | ||
| 18 | file://mycroft.service \ | ||
| 19 | " | ||
| 20 | |||
| 21 | S = "${WORKDIR}/git" | ||
| 22 | |||
| 23 | inherit systemd | ||
| 24 | |||
| 25 | # Mycroft installs itself on the host | ||
| 26 | # Just copy the setup files to the rootfs | ||
| 27 | do_install() { | ||
| 28 | install -d ${D}${libdir}/ | ||
| 29 | cp -r ${B} ${D}${libdir}/mycroft | ||
| 30 | rm -r ${D}${libdir}/mycroft/.git | ||
| 31 | |||
| 32 | # Install the dev opts so it doesn't ask us on initial setup. | ||
| 33 | install -m 644 ${WORKDIR}/dev_opts.json ${D}${libdir}/mycroft/.dev_opts.json | ||
| 34 | |||
| 35 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then | ||
| 36 | install -d ${D}${systemd_unitdir}/system | ||
| 37 | install -m 644 ${WORKDIR}/mycroft-setup.service ${D}${systemd_unitdir}/system | ||
| 38 | sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft-setup.service | ||
| 39 | fi | ||
| 40 | |||
| 41 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then | ||
| 42 | install -d ${D}${systemd_unitdir}/system | ||
| 43 | install -m 644 ${WORKDIR}/mycroft.service ${D}${systemd_unitdir}/system | ||
| 44 | sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft.service | ||
| 45 | fi | ||
| 46 | } | ||
| 47 | |||
| 48 | FILES_${PN} += "${libdir}/mycroft" | ||
| 49 | |||
| 50 | RDEPENDS_${PN} = "python3" | ||
| 51 | |||
| 52 | # Install as many Python packages as we can. | ||
| 53 | # We don't yet have all the packages in meta-python. | ||
| 54 | # Install as many as we can and we will install the rest on the target with pip. | ||
| 55 | # TODO: Add all the remaining packages and remove pip | ||
| 56 | RDEPENDS_${PN} += "python3-pip \ | ||
| 57 | python3-requests python3-pillow \ | ||
| 58 | python3-tornado python3-pyyaml \ | ||
| 59 | python3-pyalsaaudio python3-inflection \ | ||
| 60 | python3-pyserial python3-psutil \ | ||
| 61 | python3-pyaudio python3-fann2 \ | ||
| 62 | python3-pocketsphinx \ | ||
| 63 | python3-xxhash \ | ||
| 64 | " | ||
| 65 | |||
| 66 | # Mycroft uses Alsa and PulseAudio | ||
| 67 | RDEPENDS_${PN} += "alsa-oss alsa-utils alsa-plugins alsa-tools" | ||
| 68 | RDEPENDS_${PN} += "pulseaudio pulseaudio-misc pulseaudio-server" | ||
| 69 | |||
| 70 | # Mycroft can do this itself on the target, but it's quicker to do it here | ||
| 71 | RDEPENDS_${PN} += "mimic" | ||
| 72 | |||
| 73 | SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service" | ||
