MTG / essentia.js

JavaScript library for music/audio analysis and processing powered by Essentia WebAssembly
https://essentia.upf.edu/essentiajs
GNU Affero General Public License v3.0
627 stars 41 forks source link

Build errors trying to build onsets demo #122

Open boxabirds opened 1 year ago

boxabirds commented 1 year ago

What is the issue about?

What part(s) of Essentia.js is involved?

Description

yarn install inside demos/onsets fails. Is it because I don't have Python 2.7 installed? I'm happy to patch the scripts to support Python 3.x but the error is an inline command I can't find in source. And I'm also having difficulty building source so hopefully it's something else.

Steps to reproduce / Code snippets / Screenshots

yarn install

Output

(onsets) ➜  onsets git:(master) ✗ yarn install 
yarn install v1.22.19
info No lockfile found.
[1/4] 🔍  Resolving packages...
warning freesound > web-audio-api > av > coffeeify > coffee-script@1.7.1: CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
warning freesound > web-audio-api > av > coffeeify > coffee-script > mkdirp@0.3.5: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
warning babel-core > babel-register > core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
warning babel-core > babel-runtime > core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
warning babel-polyfill > core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
warning babel-preset-es2015@6.24.1: 🙌  Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!
warning bootstrap-vue > popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
warning css-loader > cssnano > autoprefixer > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
warning css-loader > cssnano > postcss-merge-rules > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
warning css-loader > cssnano > postcss-merge-rules > caniuse-api > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
warning css-loader > cssnano > postcss-merge-rules > postcss-selector-parser > flatten@1.0.3: flatten is deprecated in favor of utility frameworks such as lodash.
warning css-loader > cssnano > postcss-svgo > svgo@0.7.2: This SVGO version is no longer supported. Upgrade to v2.x.x.
warning node-sass > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning node-sass > node-gyp > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning node-sass > request > har-validator@5.1.5: this library is no longer supported
warning node-sass > request > uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
warning node-sass > node-gyp > tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
warning webpack > watchpack > watchpack-chokidar2 > chokidar@2.1.8: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
warning webpack > micromatch > snapdragon > source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
warning webpack > node-libs-browser > url > querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
warning webpack > watchpack > watchpack-chokidar2 > chokidar > fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
warning webpack > micromatch > snapdragon > source-map-resolve > resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
warning webpack > micromatch > snapdragon > source-map-resolve > source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
warning webpack > micromatch > snapdragon > source-map-resolve > urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning " > @vue/composition-api@1.7.1" has incorrect peer dependency "vue@>= 2.5 < 2.7".
warning " > bootstrap@4.6.2" has unmet peer dependency "jquery@1.9.1 - 3".
warning " > bootstrap@4.6.2" has unmet peer dependency "popper.js@^1.16.1".
warning " > bootstrap5@5.2.3" has unmet peer dependency "@popperjs/core@^2.11.6".
[4/4] 🔨  Building fresh packages...
[1/5] ⠠ speaker
[-/5] ⠠ waiting...
[3/5] ⠠ fsevents
[-/5] ⠠ waiting...
warning Error running install script for optional dependency: "/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/speaker: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments: 
Directory: /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/speaker
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@9.3.1
gyp info using node@18.15.0 | darwin | arm64
gyp info find Python using Python version 3.11.2 found at \"/Users/julian/.local/share/virtualenvs/onsets-X0Qe9aVa/bin/python3\"
gyp info spawn /Users/julian/.local/share/virtualenvs/onsets-X0Qe9aVa/bin/python3
gyp info spawn args [
gyp info spawn args   '/Users/julian/.nvm/versions/node/v18.15.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/speaker/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/julian/.nvm/versions/node/v18.15.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/julian/Library/Caches/node-gyp/18.15.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/julian/Library/Caches/node-gyp/18.15.0',
gyp info spawn args   '-Dnode_gyp_dir=/Users/julian/.nvm/versions/node/v18.15.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/julian/Library/Caches/node-gyp/18.15.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/speaker',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp: name 'mpg123_cpu' is not defined while evaluating condition 'mpg123_cpu==\"arm_nofpu\"' in deps/mpg123/mpg123.gyp while loading dependencies of binding.gyp while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/Users/julian/.nvm/versions/node/v18.15.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:325:16)
gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:291:12)
gyp ERR! System Darwin 22.3.0
gyp ERR! command \"/Users/julian/.nvm/versions/node/v18.15.0/bin/node\" \"/Users/julian/.nvm/versions/node/v18.15.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"
gyp ERR! cwd /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/speaker
[-/5] ⠈ waiting...
[-/5] ⠈ waiting...
[3/5] ⠈ fsevents
[-/5] ⠈ waiting...
error /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments: 
Directory: /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/node-sass
Output:
Building: /Users/julian/.nvm/versions/node/v18.15.0/bin/node /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli   '/Users/julian/.nvm/versions/node/v18.15.0/bin/node',
gyp verb cli   '/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library='
gyp verb cli ]
gyp info using node-gyp@3.8.0
gyp info using node@18.15.0 | darwin | arm64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/which/which.js:89:16
gyp verb `which` failed     at /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/isexe/index.js:42:5
gyp verb `which` failed     at /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/isexe/mode.js:8:5
gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:208:21)
gyp verb `which` failed  python2 Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/which/which.js:89:16
gyp verb `which` failed     at /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/isexe/index.js:42:5
gyp verb `which` failed     at /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/isexe/mode.js:8:5
gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:208:21) {
gyp verb `which` failed   code: 'ENOENT'
gyp verb `which` failed }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python /Users/julian/.local/share/virtualenvs/onsets-X0Qe9aVa/bin/python
gyp ERR! configure error 
gyp ERR! stack Error: Command failed: /Users/julian/.local/share/virtualenvs/onsets-X0Qe9aVa/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "<string>", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gyp ERR! stack SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
gyp ERR! stack 
gyp ERR! stack     at ChildProcess.exithandler (node:child_process:419:12)
gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
gyp ERR! stack     at maybeClose (node:internal/child_process:1091:16)
gyp ERR! stack     at Socket.<anonymous> (node:internal/child_process:449:11)
gyp ERR! stack     at Socket.emit (node:events:513:28)
gyp ERR! stack     at Pipe.<anonymous> (node:net:322:12)
gyp ERR! System Darwin 22.3.0
gyp ERR! command "/Users/julian/.nvm/versions/node/v18.15.0/bin/node" "/Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /Users/julian/expts/essentia.js-orig/examples/demos/onsets/node_modules/node-sass
gyp ERR! node -v v18.15.0
gyp ERR! node-gyp -v v3.8.0

System info

Essentia 0.1.3 Mac OS Ventura 13.2 Python 3.11 node 18.15.0 node-gp v3.8.0