webdriverio / visual-testing

Image comparison / visual regression testing for WebdriverIO
https://webdriver.io/docs/visual-testing
MIT License
110 stars 41 forks source link

Not able run the install --save wdio-image-comparison-service on Apple M1 Pro Machines #128

Closed jeraldvirgo closed 10 months ago

jeraldvirgo commented 1 year ago

NOTE: Be aware of the fact that this module is only a plugin that provides all functionality from webdriver-image-comparison. So please check if this is an issue with this plugin or with webdriver-image-comparison.

Environment (please complete the following information):

Not able run the npm install --save wdio-image-comparison-service on Apple M1 Pro Machines

npm ERR! code 1 npm ERR! path /Users/xxxxxx/project-foldername/node_modules/canvas npm ERR! command failed npm ERR! command sh -c node-pre-gyp install --fallback-to-build --update-binary npm ERR! SOLINK_MODULE(target) Release/canvas-postbuild.node npm ERR! CXX(target) Release/obj.target/canvas/src/backend/Backend.o npm ERR! Failed to execute '/Users/xxxxxx/.nvm/versions/node/v18.17.0/bin/node /Users/xxxxxx/.nvm/versions/node/v18.17.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --update-binary --module=/Users/xxxxxx/project-foldername/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/Users/xxxxxx/project-foldername/node_modules/canvas/build/Release --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (1) npm ERR! node-pre-gyp info it worked if it ends with ok npm ERR! node-pre-gyp info using node-pre-gyp@1.0.11 npm ERR! node-pre-gyp info using node@18.17.0 | darwin | arm64 npm ERR! node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v108-darwin-unknown-arm64.tar.gz npm ERR! node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v108-darwin-unknown-arm64.tar.gz npm ERR! node-pre-gyp WARN Pre-built binaries not installable for canvas@2.11.2 and node@18.17.0 (node-v108 ABI, unknown) (falling back to source compile with node-gyp) npm ERR! node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v108-darwin-unknown-arm64.tar.gz npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@9.3.1 npm ERR! gyp info using node@18.17.0 | darwin | arm64 npm ERR! gyp info ok npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@9.3.1 npm ERR! gyp info using node@18.17.0 | darwin | arm64 npm ERR! gyp info find Python using Python version 3.9.6 found at "/Library/Developer/CommandLineTools/usr/bin/python3" npm ERR! gyp info spawn /Library/Developer/CommandLineTools/usr/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/Users/xxxxxx/.nvm/versions/node/v18.17.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/xxxxxx/project-foldername/node_modules/canvas/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/xxxxxx/.nvm/versions/node/v18.17.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/xxxxxx/Library/Caches/node-gyp/18.17.0/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/Users/xxxxxx/Library/Caches/node-gyp/18.17.0', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/Users/xxxxxx/.nvm/versions/node/v18.17.0/lib/node_modules/npm/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/Users/xxxxxx/Library/Caches/node-gyp/18.17.0/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/Users/xxxxxx/project-foldername/node_modules/canvas', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! Package libffi was not found in the pkg-config search path. npm ERR! Perhaps you should add the directory containing libffi.pc' npm ERR! to the PKG_CONFIG_PATH environment variable npm ERR! Package 'libffi', required by 'gobject-2.0', not found npm ERR! Package zlib was not found in the pkg-config search path. npm ERR! Perhaps you should add the directory containingzlib.pc' npm ERR! to the PKG_CONFIG_PATH environment variable npm ERR! Package 'zlib', required by 'libpng', not found npm ERR! Package libffi was not found in the pkg-config search path. npm ERR! Perhaps you should add the directory containing libffi.pc' npm ERR! to the PKG_CONFIG_PATH environment variable npm ERR! Package 'libffi', required by 'gobject-2.0', not found npm ERR! Package zlib was not found in the pkg-config search path. npm ERR! Perhaps you should add the directory containingzlib.pc' npm ERR! to the PKG_CONFIG_PATH environment variable npm ERR! Package 'zlib', required by 'freetype2', not found npm ERR! gyp info ok npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@9.3.1 npm ERR! gyp info using node@18.17.0 | darwin | arm64 npm ERR! gyp info spawn make npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] npm ERR! In file included from ../src/backend/Backend.cc:1: npm ERR! ../src/backend/Backend.h:3:10: fatal error: 'cairo.h' file not found npm ERR! #include npm ERR! ^~~~~ npm ERR! 1 error generated. npm ERR! make: *** [Release/obj.target/canvas/src/backend/Backend.o] Error 1 npm ERR! gyp ERR! build error npm ERR! gyp ERR! stack Error: make failed with exit code: 2 npm ERR! gyp ERR! stack at ChildProcess.onExit (/Users/xxxxxx/.nvm/versions/node/v18.17.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:203:23) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:514:28) npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:291:12) npm ERR! gyp ERR! System Darwin 22.6.0 npm ERR! gyp ERR! command "/Users/xxxxxx/.nvm/versions/node/v18.17.0/bin/node" "/Users/xxxxxx/.nvm/versions/node/v18.17.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--update-binary" "--module=/Users/xxxxxx/project-foldername/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/Users/xxxxxx/project-foldername/node_modules/canvas/build/Release" "--napi_version=9" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v108" npm ERR! gyp ERR! cwd /Users/xxxxxx/project-foldername/node_modules/canvas npm ERR! gyp ERR! node -v v18.17.0 npm ERR! gyp ERR! node-gyp -v v9.3.1 npm ERR! gyp ERR! not ok npm ERR! node-pre-gyp ERR! build error npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/Users/xxxxxx/.nvm/versions/node/v18.17.0/bin/node /Users/xxxxxx/.nvm/versions/node/v18.17.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --update-binary --module=/Users/xxxxxx/project-foldername/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/Users/xxxxxx/project-foldername/node_modules/canvas/build/Release --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (1) npm ERR! node-pre-gyp ERR! stack at ChildProcess. (/Users/xxxxxx/project-foldername/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23) npm ERR! node-pre-gyp ERR! stack at ChildProcess.emit (node:events:514:28) npm ERR! node-pre-gyp ERR! stack at maybeClose (node:internal/child_process:1091:16) npm ERR! node-pre-gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:302:5) npm ERR! node-pre-gyp ERR! System Darwin 22.6.0 npm ERR! node-pre-gyp ERR! command "/Users/xxxxxx/.nvm/versions/node/v18.17.0/bin/node" "/Users/xxxxxx/project-foldername/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--update-binary" npm ERR! node-pre-gyp ERR! cwd /Users/xxxxxx/project-foldername/node_modules/canvas npm ERR! node-pre-gyp ERR! node -v v18.17.0 npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.11 npm ERR! node-pre-gyp ERR! not ok

prasoon0909 commented 1 year ago

Facing same issue on Macbook M1 @wswebcreation any update on this?

rjones-sw commented 1 year ago

Finding the same issue on Macbook M1

aaa-vinaydara commented 11 months ago

Having the issue on M1 pro

Shogobg commented 10 months ago

Their dependency is not building on M1 / M2 (arm architecture) and there is no pre-built binary. I've fixed this on my M2 by installing the cairo and pango dependencies brew install cairo pango

https://github.com/Automattic/node-canvas/issues/2251

wswebcreation commented 10 months ago

Sorry for not responding for a while. I will update the docs soon, but here's already an answer on how to solve this. This is not specifically linked to an M1