Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Node 18 prebuilds #2025

Closed
ImRodry opened this issue Apr 20, 2022 · 19 comments
Closed

Add Node 18 prebuilds #2025

ImRodry opened this issue Apr 20, 2022 · 19 comments

Comments

@ImRodry
Copy link

ImRodry commented Apr 20, 2022

Note from maintainers: Please follow the instructions for building from source until we fix Node 18 prebuilds: https://github.com/Automattic/node-canvas#compiling

Steps to Reproduce

  1. Install node 18
  2. Try to install canvas
  3. Observe the following error, among others
    image

Your Environment

  • Version of node-canvas (output of npm list canvas or yarn list canvas): 2.9.0
  • Environment (e.g. node 4.2.0 on Mac OS X 10.8): node v18.0.0 on Windows 11
@jmbluethner
Copy link

jmbluethner commented Apr 25, 2022

Same here.
Causes quite a lot of errors in my prod pipelines.
Would really appreciate Node 18 support 😃

Btw. thanks for this awesome repo!

I don't think it's required because the problem is obvious, but here's the log output of my docker:latest (dind) runner (alpine based):

npm ERR! code 1
npm ERR! path /usr/src/app/node_modules/canvas
npm ERR! command failed
npm ERR! command sh -c node-pre-gyp install --fallback-to-build
npm ERR! Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/src/app/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/usr/src/app/node_modules/canvas/build/Release --napi_version=8 --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.9
npm ERR! node-pre-gyp info using node@18.0.0 | linux | x64
npm ERR! node-pre-gyp info check checked for "/usr/src/app/node_modules/canvas/build/Release/canvas.node" (not found)
npm ERR! node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.8.0/canvas-v2.8.0-node-v108-linux-glibc-x64.tar.gz
npm ERR! node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.8.0/canvas-v2.8.0-node-v108-linux-glibc-x64.tar.gz 
npm ERR! node-pre-gyp WARN Pre-built binaries not installable for canvas@2.8.0 and node@18.0.0 (node-v108 ABI, glibc) (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.8.0/canvas-v2.8.0-node-v108-linux-glibc-x64.tar.gz 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.0.0
npm ERR! gyp info using node@18.0.0 | linux | x64
npm ERR! gyp info ok 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.0.0
npm ERR! gyp info using node@18.0.0 | linux | x64
npm ERR! gyp info find Python using Python version 3.9.2 found at "/usr/bin/python3"
npm ERR! gyp http GET https://nodejs.org/download/release/v18.0.0/node-v18.0.0-headers.tar.gz
npm ERR! gyp http 200 https://nodejs.org/download/release/v18.0.0/node-v18.0.0-headers.tar.gz
npm ERR! gyp http GET https://nodejs.org/download/release/v18.0.0/SHASUMS256.txt
npm ERR! gyp http 200 https://nodejs.org/download/release/v18.0.0/SHASUMS256.txt
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/usr/local/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   '/usr/src/app/node_modules/canvas/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/root/.cache/node-gyp/18.0.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=/root/.cache/node-gyp/18.0.0',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/18.0.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/usr/src/app/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 pangocairo was not found in the pkg-config search path.
npm ERR! Perhaps you should add the directory containing `pangocairo.pc'
npm ERR! to the PKG_CONFIG_PATH environment variable
npm ERR! No package 'pangocairo' found
npm ERR! gyp: Call to 'pkg-config pangocairo --libs' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
npm ERR! gyp ERR! configure error 
npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1
npm ERR! gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:261:16)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.4.109+
npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/usr/src/app/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/usr/src/app/node_modules/canvas/build/Release" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v108"
npm ERR! gyp ERR! cwd /usr/src/app/node_modules/canvas
npm ERR! gyp ERR! node -v v18.0.0
npm ERR! gyp ERR! node-gyp -v v9.0.0
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 '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/src/app/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/usr/src/app/node_modules/canvas/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (1)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/usr/src/app/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
npm ERR! node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1090: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 Linux 5.4.109+
npm ERR! node-pre-gyp ERR! command "/usr/local/bin/node" "/usr/src/app/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
npm ERR! node-pre-gyp ERR! cwd /usr/src/app/node_modules/canvas
npm ERR! node-pre-gyp ERR! node -v v18.0.0
npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.9
npm ERR! node-pre-gyp ERR! not ok
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2022-04-25T10_08_29_333Z-debug-0.log

@jmbluethner
Copy link

@jacobk999 Do you already know when Node 18 support will come? I can't build my prod containers atm 😢
Cheers

@zbjornson
Copy link
Collaborator

@zbjornson
Copy link
Collaborator

Each OS failed for a different reason. This will take a while to fix 😩. Please follow the README for instructions on building from source meanwhile. https://github.com/Automattic/node-canvas#compiling

@zbjornson zbjornson changed the title Support Node 18 Add Node 18 prebuilds Apr 28, 2022
@jmbluethner
Copy link

@zbjornson Thanks for the update! I'll use the workaround for now ^^
Btw., if there is anything I can help with to contribute to this project feel free to let me know ✌

@ImRodry
Copy link
Author

ImRodry commented Apr 29, 2022

@zbjornson on you release the prebuilds for node 18, can you also do so for v2.9.0 and not just the latest? I currently cannot use v2.9.1 due to #2015

@renorari

This comment was marked as duplicate.

@renorari

This comment was marked as duplicate.

@nikeee
Copy link

nikeee commented Jun 19, 2022

Any chance to resolve this issue? We're having trouble upgrading to Node 18 ATM.

Anything we can do?

@DoubleBullet

This comment was marked as duplicate.

@zbjornson
Copy link
Collaborator

I fixed one of the prebuild issues while working on the v2.9.2 release, but now it looks like a legit bug in node-canvas that happens in Node.js v18 only:

> mocha test/*.test.js
  Canvas
Assertion failed: (object->InternalFieldCount() > 0), function Unwrap, file nan_object_wrap.h, line 32.

Help is always appreciated. I won't have time to work on this for quite a while.

@ImRodry
Copy link
Author

ImRodry commented Sep 8, 2022

@zbjornson I've seen a few versions being published lately and node v18 will be coming to LTS in just over a month, is there any progress on this?

@romainmenke
Copy link

because time goes by so quickly

Node 16 will have a shorter LTS time span : https://nodejs.org/en/blog/announcements/nodejs16-eol/

This means that ± 1 year from now node 18 will be the lowest supported (in terms of security patches) node version.

@makarasty
Copy link

waiting for the node 18+ version :D

@zbjornson
Copy link
Collaborator

node-canvas v2.10.2 is released with Node.js v18 and v19 support.

@zbjornson zbjornson unpinned this issue Oct 30, 2022
@nikeee
Copy link

nikeee commented Oct 30, 2022

Thank you, you're awesome! :)

@calebguy
Copy link

node-canvas v2.10.2 is released with Node.js v18 and v19 support.

You guys rock

@hassenc
Copy link

hassenc commented Nov 20, 2022

Prebuilds for arm processors are missing.
I get a 404 for
https://github.com/Automattic/node-canvas/releases/download/v2.10.2/canvas-v2.10.2-node-v108-darwin-unknown-arm64.tar.gz

EDIT
Solved with
brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman

@tirenucci
Copy link

Prebuilds for arm processors are missing. I get a 404 for https://github.com/Automattic/node-canvas/releases/download/v2.10.2/canvas-v2.10.2-node-v108-darwin-unknown-arm64.tar.gz

EDIT Solved with brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman

same here

@Automattic Automattic locked as resolved and limited conversation to collaborators Nov 21, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests