samizdatco / skia-canvas

A GPU-accelerated 2D graphics environment for Node.js
MIT License
1.66k stars 64 forks source link

Cannot install v1.0.1 on Ubuntu arm64 #122

Open ewanhowell5195 opened 1 year ago

ewanhowell5195 commented 1 year ago

When trying to install v1.0.1 on Ubuntu 22.04.1 arm64, I get the following error:

npm ERR! code 101
npm ERR! path /home/ubuntu/Javascript/test/node_modules/skia-canvas
npm ERR! command failed
npm ERR! command sh -c -- node-pre-gyp install || npm run build -- --release
npm ERR! response status 403 Forbidden on https://skia-canvas.s3.us-east-1.amazonaws.com/v1.0.1/linux-arm64-napi-v6-glibc.tar.gz
npm ERR!
npm ERR! > skia-canvas@1.0.1 build
npm ERR! > cargo-cp-artifact -nc lib/v6/index.node -- cargo build --message-format=json-render-diagnostics --release
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.10
npm ERR! node-pre-gyp info using node@18.7.0 | linux | arm64
npm ERR! node-pre-gyp info check checked for "/home/ubuntu/Javascript/test/node_modules/skia-canvas/lib/v6/index.node" (not found)
npm ERR! node-pre-gyp http GET https://skia-canvas.s3.us-east-1.amazonaws.com/v1.0.1/linux-arm64-napi-v6-glibc.tar.gz
npm ERR! node-pre-gyp ERR! install response status 403 Forbidden on https://skia-canvas.s3.us-east-1.amazonaws.com/v1.0.1/linux-arm64-napi-v6-glibc.tar.gz
npm ERR! node-pre-gyp ERR! install error
npm ERR! node-pre-gyp ERR! stack Error: response status 403 Forbidden on https://skia-canvas.s3.us-east-1.amazonaws.com/v1.0.1/linux-arm64-napi-v6-glibc.tar.gz
npm ERR! node-pre-gyp ERR! stack     at /home/ubuntu/Javascript/test/node_modules/@mapbox/node-pre-gyp/lib/install.js:67:15
npm ERR! node-pre-gyp ERR! stack     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
npm ERR! node-pre-gyp ERR! System Linux 5.15.0-1017-oracle
npm ERR! node-pre-gyp ERR! command "/usr/bin/node" "/home/ubuntu/Javascript/test/node_modules/.bin/node-pre-gyp" "install"
npm ERR! node-pre-gyp ERR! cwd /home/ubuntu/Javascript/test/node_modules/skia-canvas
npm ERR! node-pre-gyp ERR! node -v v18.7.0
npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.10
npm ERR! node-pre-gyp ERR! not ok
npm ERR! error: could not find `Cargo.toml` in `/home/ubuntu/Javascript/test/node_modules/skia-canvas` or any parent directory
npm ERR! Did not copy "cdylib:skia-canvas"

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ubuntu/.npm/_logs/2022-10-23T21_57_44_833Z-debug-0.log

Full log: 2022-10-23T21_57_44_833Z-debug-0.log

renambot commented 1 year ago

Same here. Link on AWS works for 1.0.0 but not 1.0.1 HTTP request sent, awaiting response... 403 Forbidden

renambot commented 1 year ago

seems to install properly now

Rinse12 commented 1 year ago

I'm getting a similar error too, although I'm using a virtualized raspberry pi environment using arm-runner-action.

[5/5] Building fresh packages...
error /plebbit-cli/node_modules/captcha-canvas/node_modules/skia-canvas: Command failed.
Exit code: 1
Command: node-pre-gyp install || npm run build -- --release
Arguments: 
Directory: /plebbit-cli/node_modules/captcha-canvas/node_modules/skia-canvas
Output:
node-pre-gyp info it worked if it ends with ok
node-pre-gyp info using node-pre-gyp@1.0.10
node-pre-gyp info using node@16.18.1 | linux | arm64
node-pre-gyp info check checked for "/plebbit-cli/node_modules/captcha-canvas/node_modules/skia-canvas/lib/v6/index.node" (not found)
node-pre-gyp http GET https://skia-canvas.s3.us-east-1.amazonaws.com/v1.0.1/linux-arm64-napi-v6-glibc.tar.gz
node-pre-gyp ERR! install response status 403 Forbidden on https://skia-canvas.s3.us-east-1.amazonaws.com/v1.0.1/linux-arm64-napi-v6-glibc.tar.gz 
node-pre-gyp ERR! install error 
node-pre-gyp ERR! stack Error: response status 403 Forbidden on https://skia-canvas.s3.us-east-1.amazonaws.com/v1.0.1/linux-arm64-napi-v6-glibc.tar.gz
node-pre-gyp ERR! stack     at /plebbit-cli/node_modules/@mapbox/node-pre-gyp/lib/install.js:67:15
node-pre-gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:96:5)
node-pre-gyp ERR! System Linux 5.15.0-1024-azure
node-pre-gyp ERR! command "/usr/bin/node" "/plebbit-cli/node_modules/captcha-canvas/node_modules/skia-canvas/node_modules/.bin/node-pre-gyp" "install"
node-pre-gyp ERR! cwd /plebbit-cli/node_modules/captcha-canvas/node_modules/skia-canvas
node-pre-gyp ERR! node -v v16.18.1
node-pre-gyp ERR! node-pre-gyp -v v1.0.10
node-pre-gyp ERR! not ok 
response status 403 Forbidden on https://skia-canvas.s3.us-east-1.amazonaws.com/v1.0.1/linux-arm64-napi-v6-glibc.tar.gz

> skia-canvas@1.0.1 build
> cargo-cp-artifact -nc lib/v6/index.node -- cargo build --message-format=json-render-diagnostics --release

Error: could not find the `cargo` executable.

You can find instructions for installing Rust and Cargo at:

    https://www.rust-lang.org/tools/install

Did not copy "cdylib:skia-canvas"
renambot commented 1 year ago

yes installed 1.0.1 on my laptop. But now it fails again on a different machine in a CI workflow. Maybe hitting some download limits ?

Rinse12 commented 1 year ago

@renambot Is your laptop arm64? I'm building for multiple platforms and all of them succeed except on arm64

renambot commented 1 year ago

yes M1 macbook pro

rctheriot commented 1 year ago

Running into the same issue on a MacBook with an m1 processor.

Lianecx commented 1 year ago

Getting the same problem here

Rinse12 commented 1 year ago

@samizdatco

Turtlepaw commented 1 year ago

Version 1.0.0 seems to be working

Julusian commented 1 year ago

I am having the same problem. This is quite a problem for us, as we need to support linux-arm64

BridgeSenseDev commented 1 year ago

I am having the same problem. This is quite a problem for us, as we need to support linux-arm64

Forcing the version to 1.0.0 like this: "skia-canvas": "1.0.0" works for linux-arm64

Julusian commented 1 year ago

I've resorted to publishing a fork to workaround this issue. That was very tedious to get up and running, as the ci in this repository is rather broken due to various platform deprecations, and some of it relying on self-hosted arm/arm64 runners.

Tbh, using @mapbox/node-pre-gyp in this repository makes for messy usage in my project, so part of my motivation or forking was to have the option of changing that out too. I think I could potentially have overridden the s3 url with an environment variable otherwise.

egorov-evrone commented 4 months ago

I'm experiencing the same problem. Downgrading to 1.0.0 helped, but it's more of a temporary solution (thanks @BridgeSenseDev by the way). Is there any progress here or we need to compile it from source manually?

mpaperno commented 4 months ago

I've published some of the binaries in my fork as well, which contain various updates as per release notes on each version (also the updated CHANGELOG). There are no linux-x86 versions though.

https://github.com/mpaperno/skia-canvas/releases

(Note that the binaries published prior to latest version do not include Window support.)

I don't have anything published on NPM, but the fork can be installed/used directly with a URL, eg.

npm install mpaperno/skia-canvas#master

or

"dependencies": {
  "skia-canvas": "github:mpaperno/skia-canvas#master"
}