Skip to content
New issue

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

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

Already on GitHub? # to your account

Build failed when deploy to Heroku #1005

Closed
preco21 opened this issue Sep 18, 2017 · 27 comments
Closed

Build failed when deploy to Heroku #1005

preco21 opened this issue Sep 18, 2017 · 27 comments

Comments

@preco21
Copy link
Contributor

preco21 commented Sep 18, 2017

Hello all, I got this error when I try to deploy app to Heroku:

remote: -----> Node.js app detected
remote: 
remote: -----> Creating runtime environment
remote:        
remote:        NPM_CONFIG_LOGLEVEL=error
remote:        NPM_CONFIG_PRODUCTION=false
remote:        NODE_VERBOSE=false
remote:        NODE_ENV=production
remote:        NODE_MODULES_CACHE=true
remote: 
remote: -----> Installing binaries
remote:        engines.node (package.json):  >= 8
remote:        engines.npm (package.json):   unspecified (use default)
remote:        engines.yarn (package.json):  unspecified (use default)
remote:        
remote:        Resolving node version >= 8...
remote:        Downloading and installing node 8.5.0...
remote:        Using default npm version: 5.3.0
remote:        Resolving yarn version 0.28.4...
remote:        Downloading and installing yarn (0.28.4)...
remote:        Installed yarn 0.28.4
remote: 
remote: -----> Restoring cache
remote:        Loading 2 from cacheDirectories (default):
remote:        - node_modules
remote:        - bower_components (not cached - skipping)
remote: 
remote: -----> Building dependencies
remote:        Installing node modules (yarn.lock)
remote:        yarn install v0.28.4
remote:        [1/4] Resolving packages...
remote:        [2/4] Fetching packages...
remote:        warning fsevents@1.0.17: The platform "linux" is incompatible with this module.
remote:        info "fsevents@1.0.17" is an optional dependency and failed compatibility check. Excluding it from installation.
remote:        [3/4] Linking dependencies...
remote:        warning "ajv-keywords@1.5.1" has incorrect peer dependency "ajv@>=4.10.0".
remote:        [4/4] Building fresh packages...
remote:        error /tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/node_modules/canvas: Command failed.
remote:        Exit code: 1
remote:        Command: sh
remote:        Arguments: -c node-gyp rebuild
remote:        Directory: /tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/node_modules/canvas
remote:        Output:
remote:        make: Entering directory '/tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/node_modules/canvas/build'
remote:        SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node
remote:        COPY Release/canvas-postbuild.node
remote:        CXX(target) Release/obj.target/canvas/src/Canvas.o
remote:        CXX(target) Release/obj.target/canvas/src/CanvasGradient.o
remote:        CXX(target) Release/obj.target/canvas/src/CanvasPattern.o
remote:        CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o
remote:        CXX(target) Release/obj.target/canvas/src/color.o
remote:        CXX(target) Release/obj.target/canvas/src/Image.o
remote:        CXX(target) Release/obj.target/canvas/src/ImageData.o
remote:        CXX(target) Release/obj.target/canvas/src/init.o
remote:        CXX(target) Release/obj.target/canvas/src/FontFace.o
remote:        SOLINK_MODULE(target) Release/obj.target/canvas.node
remote:        /usr/bin/ld: /tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.apt/usr/lib/x86_64-linux-gnu/libcairo.a(cairo.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
remote:        /tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.apt/usr/lib/x86_64-linux-gnu/libcairo.a: error adding symbols: Bad value
remote:        collect2: error: ld returned 1 exit status
remote:        canvas.target.mk:162: recipe for target 'Release/obj.target/canvas.node' failed
remote:        make: *** [Release/obj.target/canvas.node] Error 1
remote:        make: Leaving directory '/tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/node_modules/canvas/build'
remote:        gyp ERR! build error
remote:        gyp ERR! stack Error: `make` failed with exit code: 2
remote:        gyp ERR! stack     at ChildProcess.onExit (/tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
remote:        gyp ERR! stack     at emitTwo (events.js:125:13)
remote:        gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
remote:        gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
remote:        gyp ERR! System Linux 3.13.0-128-generic
remote:        gyp ERR! command "/tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.heroku/node/bin/node" "/tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
remote:        gyp ERR! cwd /tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/node_modules/canvas
remote:        gyp ERR! node -v v8.5.0
remote:        gyp ERR! node-gyp -v v3.6.2
remote:        gyp ERR! not ok
remote:        info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
remote: 
remote: -----> Build failed
remote:        
remote:        We're sorry this build is failing! You can troubleshoot common issues here:
remote:        https://devcenter.heroku.com/articles/troubleshooting-node-deploys
remote:        
remote:        Some possible problems:
remote:        
remote:        - Dangerous semver range (>) in engines.node
remote:        https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
remote:        
remote:        - This project was built with yarn, which is new and under development. Some projects can still be built more reliably with npm
remote:        https://devcenter.heroku.com/articles/nodejs-support#build-behavior
remote:        
remote:        Love,
remote:        Heroku
remote:        
remote:  !     Push rejected, failed to compile Node.js app.
remote: 
remote:  !     Push failed

Here is the instruction what I followed:

  1. Install cairo + pango dependencies by adding: libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++ to Aptfile of Heroku apt buildpack.
  2. Run yarn add canvas@next.
  3. Push to Heroku
  4. The error comes out.

I don't see I did anything wrong, when I try this on macOS 10.12.6 it worked just fine. However, once I tried to deploy to Heroku, the error comes out as above.

I think this part seems to be a problem, but I have no idea for that:

remote:        SOLINK_MODULE(target) Release/obj.target/canvas.node
remote:        /usr/bin/ld: /tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.apt/usr/lib/x86_64-linux-gnu/libcairo.a(cairo.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
remote:        /tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.apt/usr/lib/x86_64-linux-gnu/libcairo.a: error adding symbols: Bad value

Any ideas?

Environment

  • Node.js: 8.5.0.
  • Version of node-canvas (e.g. 1.4.0): 2.0.0-alpha.5 and tried 1.6.7.
  • Environment (e.g. node 4.2.0 on Mac OS X 10.8): Heroku apt + nodejs buildpack.
@preco21 preco21 changed the title Command failed when deploy to Heroku Build failed when deploy to Heroku Sep 18, 2017
@LinusU
Copy link
Collaborator

LinusU commented Sep 18, 2017

This seems to be to actual problem, not sure how to solve it though 🤔

/usr/bin/ld: /tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.apt/usr/lib/x86_64-linux-gnu/libcairo.a(cairo.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/tmp/build_3e9452e97a0ab7a77a67ce1a77c7096f/.apt/usr/lib/x86_64-linux-gnu/libcairo.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
canvas.target.mk:162: recipe for target 'Release/obj.target/canvas.node' failed

@preco21
Copy link
Contributor Author

preco21 commented Sep 19, 2017

In the meantime, I addressed the issue with canvas-prebuilt

And here is some extra information:

  • Heroku stack: Heroku-16
  • Yarn version: 1.0.2
  • g++ version: 4.9

@zbjornson
Copy link
Collaborator

@preco21 can you provide more info on your cairo installation (where/how you obtained it)? libcairo.a means it's a static library, and you need shared (.so) libraries for this to build. The -fPIC error is erroneous. :)

@preco21
Copy link
Contributor Author

preco21 commented Sep 19, 2017

@zbjornson I just used Aptfile config via Heroku apt buildpack to specify what packages to fetch when building.

I have no idea to gather more debug information in Heroku in this case.

Here is the Aptfile what I used:

libcairo2-dev
libjpeg8-dev
libpango1.0-dev
libgif-dev
build-essential
g++

And here is the log:

``` -----> Apt app detected -----> Detected Aptfile changes, flushing cache -----> Adding custom repositories -----> Updating apt caches Ign http://archive.ubuntu.com trusty InRelease Get:1 http://apt.postgresql.org trusty-pgdg InRelease [56.4 kB] Get:2 http://archive.ubuntu.com trusty-security InRelease [65.9 kB] Get:3 http://archive.ubuntu.com trusty-updates InRelease [65.9 kB] Get:4 http://archive.ubuntu.com trusty Release.gpg [933 B] Get:5 http://archive.ubuntu.com trusty Release [58.5 kB] Get:6 http://apt.postgresql.org trusty-pgdg/main amd64 Packages [73.0 kB] Get:7 http://archive.ubuntu.com trusty-security/main amd64 Packages [669 kB] Ign http://apt.postgresql.org trusty-pgdg/main Translation-en_US Ign http://apt.postgresql.org trusty-pgdg/main Translation-en Get:8 http://archive.ubuntu.com trusty-security/universe amd64 Packages [186 kB] Get:9 http://archive.ubuntu.com trusty-security/main Translation-en [361 kB] Get:10 http://archive.ubuntu.com trusty-security/universe Translation-en [107 kB] Get:11 http://archive.ubuntu.com trusty-updates/main amd64 Packages [1,022 kB] Get:12 http://archive.ubuntu.com trusty-updates/universe amd64 Packages [427 kB] Get:13 http://archive.ubuntu.com trusty-updates/main Translation-en [505 kB] Get:14 http://archive.ubuntu.com trusty-updates/universe Translation-en [231 kB] Get:15 http://archive.ubuntu.com trusty/main amd64 Packages [1,350 kB] Get:16 http://archive.ubuntu.com trusty/universe amd64 Packages [5,859 kB] Get:17 http://archive.ubuntu.com trusty/main Translation-en [762 kB] Get:18 http://archive.ubuntu.com trusty/universe Translation-en [4,089 kB] Ign http://archive.ubuntu.com trusty/main Translation-en_US Ign http://archive.ubuntu.com trusty/universe Translation-en_US Fetched 15.9 MB in 8s (1,900 kB/s) Reading package lists... -----> Fetching .debs for libcairo2-dev Reading package lists... Building dependency tree... 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 20 not upgraded. Need to get 574 kB of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libcairo2-dev amd64 1.13.0~20140204-0ubuntu1.1 [574 kB] Fetched 574 kB in 0s (1,081 kB/s) Download complete and in download only mode -----> Fetching .debs for libjpeg8-dev Reading package lists... Building dependency tree... 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 20 not upgraded. Need to get 1,552 B of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main libjpeg8-dev amd64 8c-2ubuntu8 [1,552 B] Fetched 1,552 B in 0s (9,954 B/s) Download complete and in download only mode -----> Fetching .debs for libpango1.0-dev Reading package lists... Building dependency tree... The following extra packages will be installed: bsdmainutils debhelper dh-apparmor gettext gettext-base gir1.2-pango-1.0 intltool-debian libasprintf-dev libasprintf0c2 libgettextpo-dev libgettextpo0 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 libmail-sendmail-perl libpangoxft-1.0-0 libpipeline1 libsys-hostname-long-perl libunistring0 libxft-dev man-db po-debconf Suggested packages: wamerican wordlist whois vacation dh-make apparmor-easyprof gettext-doc libpango1.0-doc groff www-browser libmail-box-perl The following NEW packages will be installed: bsdmainutils debhelper dh-apparmor gettext gettext-base gir1.2-pango-1.0 intltool-debian libasprintf-dev libasprintf0c2 libgettextpo-dev libgettextpo0 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 libmail-sendmail-perl libpango1.0-dev libpangoxft-1.0-0 libpipeline1 libsys-hostname-long-perl libunistring0 libxft-dev man-db po-debconf 0 upgraded, 23 newly installed, 0 to remove and 20 not upgraded. Need to get 3,773 kB of archives. After this operation, 14.2 MB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libasprintf0c2 amd64 0.18.3.1-1ubuntu3 [6,712 B] Get:2 http://archive.ubuntu.com/ubuntu/ trusty/main libpipeline1 amd64 1.3.0-1 [24.0 kB] Get:3 http://archive.ubuntu.com/ubuntu/ trusty/main bsdmainutils amd64 9.0.5ubuntu1 [203 kB] Get:4 http://archive.ubuntu.com/ubuntu/ trusty-updates/main man-db amd64 2.6.7.1-1ubuntu1 [857 kB] Get:5 http://archive.ubuntu.com/ubuntu/ trusty/main libunistring0 amd64 0.9.3-5ubuntu3 [271 kB] Get:6 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libgettextpo0 amd64 0.18.3.1-1ubuntu3 [108 kB] Get:7 http://archive.ubuntu.com/ubuntu/ trusty-security/main libharfbuzz-gobject0 amd64 0.9.27-1ubuntu1.1 [10.4 kB] Get:8 http://archive.ubuntu.com/ubuntu/ trusty-security/main libharfbuzz-icu0 amd64 0.9.27-1ubuntu1.1 [5,116 B] Get:9 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libpangoxft-1.0-0 amd64 1.36.3-1ubuntu1.1 [14.8 kB] Get:10 http://archive.ubuntu.com/ubuntu/ trusty-updates/main gettext-base amd64 0.18.3.1-1ubuntu3 [48.8 kB] Get:11 http://archive.ubuntu.com/ubuntu/ trusty-updates/main gettext amd64 0.18.3.1-1ubuntu3 [829 kB] Get:12 http://archive.ubuntu.com/ubuntu/ trusty/main intltool-debian all 0.35.0+20060710.1 [31.6 kB] Get:13 http://archive.ubuntu.com/ubuntu/ trusty/main po-debconf all 1.0.16+nmu2ubuntu1 [210 kB] Get:14 http://archive.ubuntu.com/ubuntu/ trusty-security/main dh-apparmor all 2.10.95-0ubuntu2.6~14.04.1 [13.0 kB] Get:15 http://archive.ubuntu.com/ubuntu/ trusty/main debhelper all 9.20131227ubuntu1 [604 kB] Get:16 http://archive.ubuntu.com/ubuntu/ trusty-updates/main gir1.2-pango-1.0 amd64 1.36.3-1ubuntu1.1 [19.1 kB] Get:17 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libasprintf-dev amd64 0.18.3.1-1ubuntu3 [4,438 B] Get:18 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libgettextpo-dev amd64 0.18.3.1-1ubuntu3 [122 kB] Get:19 http://archive.ubuntu.com/ubuntu/ trusty-security/main libharfbuzz-dev amd64 0.9.27-1ubuntu1.1 [29.1 kB] Get:20 http://archive.ubuntu.com/ubuntu/ trusty/main libsys-hostname-long-perl all 1.4-3 [11.3 kB] Get:21 http://archive.ubuntu.com/ubuntu/ trusty/main libmail-sendmail-perl all 0.79.16-1 [26.5 kB] Get:22 http://archive.ubuntu.com/ubuntu/ trusty/main libxft-dev amd64 2.3.1-2 [45.8 kB] Get:23 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libpango1.0-dev amd64 1.36.3-1ubuntu1.1 [278 kB] Fetched 3,773 kB in 0s (8,252 kB/s) Download complete and in download only mode -----> Fetching .debs for libgif-dev Reading package lists... Building dependency tree... The following NEW packages will be installed: libgif-dev 0 upgraded, 1 newly installed, 0 to remove and 20 not upgraded. Need to get 20.3 kB of archives. After this operation, 119 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main libgif-dev amd64 4.1.6-11 [20.3 kB] Fetched 20.3 kB in 0s (89.9 kB/s) Download complete and in download only mode -----> Fetching .debs for build-essential Reading package lists... Building dependency tree... 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 20 not upgraded. Need to get 4,838 B of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main build-essential amd64 11.6ubuntu6 [4,838 B] Fetched 4,838 B in 0s (30.6 kB/s) Download complete and in download only mode -----> Fetching .debs for g++-4.9 Reading package lists... Building dependency tree... E: Unable to locate package g++-4.9 E: Couldn't find any package by regex 'g++-4.9' -----> Installing bsdmainutils_9.0.5ubuntu1_amd64.deb -----> Installing build-essential_11.6ubuntu6_amd64.deb -----> Installing debhelper_9.20131227ubuntu1_all.deb -----> Installing dh-apparmor_2.10.95-0ubuntu2.6~14.04.1_all.deb -----> Installing gettext_0.18.3.1-1ubuntu3_amd64.deb -----> Installing gettext-base_0.18.3.1-1ubuntu3_amd64.deb -----> Installing gir1.2-pango-1.0_1.36.3-1ubuntu1.1_amd64.deb -----> Installing intltool-debian_0.35.0+20060710.1_all.deb -----> Installing libasprintf0c2_0.18.3.1-1ubuntu3_amd64.deb -----> Installing libasprintf-dev_0.18.3.1-1ubuntu3_amd64.deb -----> Installing libcairo2-dev_1.13.0~20140204-0ubuntu1.1_amd64.deb -----> Installing libgettextpo0_0.18.3.1-1ubuntu3_amd64.deb -----> Installing libgettextpo-dev_0.18.3.1-1ubuntu3_amd64.deb -----> Installing libgif-dev_4.1.6-11_amd64.deb -----> Installing libharfbuzz-dev_0.9.27-1ubuntu1.1_amd64.deb -----> Installing libharfbuzz-gobject0_0.9.27-1ubuntu1.1_amd64.deb -----> Installing libharfbuzz-icu0_0.9.27-1ubuntu1.1_amd64.deb -----> Installing libjpeg8-dev_8c-2ubuntu8_amd64.deb -----> Installing libmail-sendmail-perl_0.79.16-1_all.deb -----> Installing libpango1.0-dev_1.36.3-1ubuntu1.1_amd64.deb -----> Installing libpangoxft-1.0-0_1.36.3-1ubuntu1.1_amd64.deb -----> Installing libpipeline1_1.3.0-1_amd64.deb -----> Installing libsys-hostname-long-perl_1.4-3_all.deb -----> Installing libunistring0_0.9.3-5ubuntu3_amd64.deb -----> Installing libxft-dev_2.3.1-2_amd64.deb -----> Installing man-db_2.6.7.1-1ubuntu1_amd64.deb -----> Installing po-debconf_1.0.16+nmu2ubuntu1_all.deb -----> Writing profile script -----> Rewrite package-config files ```

Do you see any clue?

@zbjornson
Copy link
Collaborator

Is it possible for you to run ls /usr/lib/x86_64-linux-gnu/ after the apt install step but before the npm install step? It looks like you should have both .a and .so files in there, but I don't know if Heroku does anything special.

@nirzaq
Copy link

nirzaq commented Sep 19, 2017

try to use my forked buildpacks
https://github.com/nirzaq/heroku-buildpack-cairo

@preco21
Copy link
Contributor Author

preco21 commented Sep 20, 2017

Okay, currently the service is live, I'll take a look after once it closed. Or I can create new instance for testing later.

@preco21
Copy link
Contributor Author

preco21 commented Nov 28, 2017

@zbjornson Sorry for the late feedback (it's nearly two months 😅), here is the results which I collected by running ls /usr/lib/x86_64-linux-gnu/ before npm install but after apt install in heroku:

Logs ``` remote: $ ls /usr/lib/x86_64-linux-gnu/ remote: audit remote: avahi remote: coreutils remote: crt1.o remote: crti.o remote: crtn.o remote: gconv remote: gcrt1.o remote: gdk-pixbuf-2.0 remote: gio remote: girepository-1.0 remote: glib-2.0 remote: gtk-2.0 remote: icu remote: ImageMagick-6.8.9 remote: krb5 remote: libanl.a remote: libanl.so remote: libapparmor.so remote: libapt-inst.so remote: libapt-inst.so.2.0 remote: libapt-inst.so.2.0.0 remote: libapt-pkg.so remote: libapt-pkg.so.5.0 remote: libapt-pkg.so.5.0.0 remote: libapt-private.so.0.0 remote: libapt-private.so.0.0.0 remote: libasan.so.2 remote: libasan.so.2.0.0 remote: libasn1.so.8 remote: libasn1.so.8.0.0 remote: libatk-1.0.so.0 remote: libatk-1.0.so.0.21809.1 remote: libatomic.so.1 remote: libatomic.so.1.1.0 remote: libaudit.a remote: libaudit.so remote: libavahi-client.so.3 remote: libavahi-client.so.3.2.9 remote: libavahi-common.so.3 remote: libavahi-common.so.3.5.3 remote: libbfd-2.26.1-system.so remote: libbfd-2.26-system.so remote: libbind9.so.140 remote: libbind9.so.140.0.10 remote: libBrokenLocale.a remote: libBrokenLocale.so remote: libbsd.a remote: libbsd-ctor.a remote: libbsd.so remote: libbz2.a remote: libbz2.so remote: libc.a remote: libcairo.a remote: libcairo-gobject.a remote: libcairo-gobject.so remote: libcairo-gobject.so.2 remote: libcairo-gobject.so.2.11400.6 remote: libcairo-script-interpreter.a remote: libcairo-script-interpreter.so remote: libcairo-script-interpreter.so.2 remote: libcairo-script-interpreter.so.2.11400.6 remote: libcairo.so remote: libcairo.so.2 remote: libcairo.so.2.11400.6 remote: libcap.a remote: libcap-ng.so.0 remote: libcap-ng.so.0.0.0 remote: libcap.so remote: libcc1.so.0 remote: libcc1.so.0.0.0 remote: libcidn.so remote: libcilkrts.so.5 remote: libcilkrts.so.5.0.0 remote: libc_nonshared.a remote: libcom_err.a remote: libcom_err.so remote: libcroco-0.6.so.3 remote: libcroco-0.6.so.3.0.1 remote: libcrypt.a remote: libcrypto.a remote: libcrypto.so remote: libcrypt.so remote: libc.so remote: libcupsfilters.so.1 remote: libcupsfilters.so.1.0.0 remote: libcupsimage.so.2 remote: libcups.so.2 remote: libcurl.a remote: libcurl-gnutls.so.3 remote: libcurl-gnutls.so.4 remote: libcurl-gnutls.so.4.4.0 remote: libcurl.la remote: libcurl.so remote: libcurl.so.3 remote: libcurl.so.4 remote: libcurl.so.4.4.0 remote: libcurses.a remote: libcurses.so remote: libdatrie.so.1 remote: libdatrie.so.1.3.3 remote: libdb-5.3.a remote: libdb-5.3.so remote: libdb.a remote: libdb.so remote: libdebconfclient.so.0 remote: libdebconfclient.so.0.0.0 remote: libdjvulibre.a remote: libdjvulibre.so remote: libdjvulibre.so.21 remote: libdjvulibre.so.21.6.0 remote: libdl.a remote: libdl.so remote: libdns-pkcs11.so.162 remote: libdns-pkcs11.so.162.1.3 remote: libdns.so.162 remote: libdns.so.162.1.3 remote: libedit.so.2 remote: libedit.so.2.0.53 remote: libelf-0.165.so remote: libelf.so.1 remote: libev.a remote: libevent-2.0.so.5 remote: libevent-2.0.so.5.1.9 remote: libevent.a remote: libevent_core-2.0.so.5 remote: libevent_core-2.0.so.5.1.9 remote: libevent_core.a remote: libevent_core.so remote: libevent_extra-2.0.so.5 remote: libevent_extra-2.0.so.5.1.9 remote: libevent_extra.a remote: libevent_extra.so remote: libevent_openssl-2.0.so.5 remote: libevent_openssl-2.0.so.5.1.9 remote: libevent_openssl.a remote: libevent_openssl.so remote: libevent_pthreads-2.0.so.5 remote: libevent_pthreads-2.0.so.5.1.9 remote: libevent_pthreads.a remote: libevent_pthreads.so remote: libevent.so remote: libev.so remote: libev.so.4 remote: libev.so.4.0.0 remote: libexif.a remote: libexif.so remote: libexif.so.12 remote: libexif.so.12.3.3 remote: libexpat.a remote: libexpat.la remote: libexpat.so remote: libexpatw.a remote: libexpatw.la remote: libexpatw.so remote: libexpatw.so.1 remote: libexpatw.so.1.6.0 remote: libexslt.a remote: libexslt.so remote: libexslt.so.0 remote: libexslt.so.0.8.17 remote: libfakeroot remote: libffi.a remote: libffi_pic.a remote: libffi.so remote: libffi.so.6 remote: libffi.so.6.0.4 remote: libfftw3_omp.so.3 remote: libfftw3_omp.so.3.4.4 remote: libfftw3.so.3 remote: libfftw3.so.3.4.4 remote: libfftw3_threads.so.3 remote: libfftw3_threads.so.3.4.4 remote: libfontconfig.a remote: libfontconfig.so remote: libfontconfig.so.1 remote: libfontconfig.so.1.9.0 remote: libform.a remote: libform.so remote: libform.so.5 remote: libform.so.5.9 remote: libformw.a remote: libformw.so remote: libformw.so.5 remote: libformw.so.5.9 remote: libfreetype.a remote: libfreetype.la remote: libfreetype.so remote: libfreetype.so.6 remote: libfreetype.so.6.12.1 remote: libg.a remote: libgcrypt.a remote: libgcrypt.so remote: libgd.a remote: libgdbm.a remote: libgdbm_compat.a remote: libgdbm_compat.so remote: libgdbm_compat.so.3 remote: libgdbm_compat.so.3.0.0 remote: libgdbm.so remote: libgdbm.so.3 remote: libgdbm.so.3.0.0 remote: libgdk_pixbuf-2.0.so remote: libgdk_pixbuf-2.0.so.0 remote: libgdk_pixbuf-2.0.so.0.3200.2 remote: libgdk_pixbuf_xlib-2.0.so remote: libgdk_pixbuf_xlib-2.0.so.0 remote: libgdk_pixbuf_xlib-2.0.so.0.3200.2 remote: libgdk-x11-2.0.so.0 remote: libgdk-x11-2.0.so.0.2400.30 remote: libgd.so remote: libgd.so.3 remote: libgd.so.3.0.0 remote: libGeoIP.a remote: libGeoIP.so remote: libGeoIP.so.1 remote: libGeoIP.so.1.6.9 remote: libgio-2.0.a remote: libgio-2.0.so remote: libgio-2.0.so.0 remote: libgio-2.0.so.0.4800.2 remote: libgirepository-1.0.so.1 remote: libgirepository-1.0.so.1.0.0 remote: libglib-2.0.a remote: libglib-2.0.so remote: libgmodule-2.0.a remote: libgmodule-2.0.so remote: libgmodule-2.0.so.0 remote: libgmodule-2.0.so.0.4800.2 remote: libgmp.a remote: libgmp.so remote: libgmp.so.10 remote: libgmp.so.10.3.0 remote: libgmpxx.a remote: libgmpxx.so remote: libgmpxx.so.4 remote: libgmpxx.so.4.5.0 remote: libgnutls.a remote: libgnutls-openssl.a remote: libgnutls-openssl.so remote: libgnutls-openssl.so.27 remote: libgnutls-openssl.so.27.0.2 remote: libgnutls.so remote: libgnutls.so.30 remote: libgnutls.so.30.6.2 remote: libgnutlsxx.a remote: libgnutlsxx.so remote: libgnutlsxx.so.28 remote: libgnutlsxx.so.28.1.0 remote: libgobject-2.0.a remote: libgobject-2.0.so remote: libgobject-2.0.so.0 remote: libgobject-2.0.so.0.4800.2 remote: libgomp.so.1 remote: libgomp.so.1.0.0 remote: libgpg-error.a remote: libgpg-error.la remote: libgpg-error.so remote: libgraphite2.so.2.0.0 remote: libgraphite2.so.3 remote: libgraphite2.so.3.0.1 remote: libgssapi_krb5.so remote: libgssapi_krb5.so.2 remote: libgssapi_krb5.so.2.2 remote: libgssapi.so.3 remote: libgssapi.so.3.0.0 remote: libgs.so.9 remote: libgs.so.9.18 remote: libgssrpc.so remote: libgssrpc.so.4 remote: libgssrpc.so.4.2 remote: libgthread-2.0.a remote: libgthread-2.0.so remote: libgthread-2.0.so.0 remote: libgthread-2.0.so.0.4800.2 remote: libgtk2.0-0 remote: libgtk-x11-2.0.so.0 remote: libgtk-x11-2.0.so.0.2400.30 remote: libHalf.so remote: libHalf.so.12 remote: libHalf.so.12.0.0 remote: libharfbuzz.so.0 remote: libharfbuzz.so.0.10000.1 remote: libhashkit.a remote: libhashkit.so remote: libhashkit.so.2 remote: libhashkit.so.2.0.0 remote: libhcrypto.so.4 remote: libhcrypto.so.4.1.0 remote: libheimbase.so.1 remote: libheimbase.so.1.0.0 remote: libheimntlm.so.0 remote: libheimntlm.so.0.1.0 remote: libhistory.a remote: libhistory.so remote: libhogweed.a remote: libhogweed.so remote: libhogweed.so.4 remote: libhogweed.so.4.2 remote: libhx509.so.5 remote: libhx509.so.5.0.0 remote: libICE.a remote: libICE.so remote: libICE.so.6 remote: libICE.so.6.3.0 remote: libicudata.a remote: libicudata.so remote: libicudata.so.55 remote: libicudata.so.55.1 remote: libicui18n.a remote: libicui18n.so remote: libicui18n.so.55 remote: libicui18n.so.55.1 remote: libicuio.a remote: libicuio.so remote: libicuio.so.55 remote: libicuio.so.55.1 remote: libicule.a remote: libicule.so remote: libicule.so.55 remote: libicule.so.55.1 remote: libiculx.a remote: libiculx.so remote: libiculx.so.55 remote: libiculx.so.55.1 remote: libicutest.a remote: libicutest.so remote: libicutest.so.55 remote: libicutest.so.55.1 remote: libicutu.a remote: libicutu.so remote: libicutu.so.55 remote: libicutu.so.55.1 remote: libicuuc.a remote: libicuuc.so remote: libicuuc.so.55 remote: libicuuc.so.55.1 remote: libidn.a remote: libidn.so remote: libidn.so.11 remote: libidn.so.11.6.15 remote: libieee.a remote: libIex-2_2.so.12 remote: libIex-2_2.so.12.0.0 remote: libIexMath-2_2.so.12 remote: libIexMath-2_2.so.12.0.0 remote: libIexMath.so remote: libIex.so remote: libijs-0.35.so remote: libIlmImf-2_2.so.22 remote: libIlmImf-2_2.so.22.0.0 remote: libIlmImf.a remote: libIlmImf.so remote: libIlmImfUtil-2_2.so.22 remote: libIlmImfUtil-2_2.so.22.0.0 remote: libIlmImfUtil.a remote: libIlmImfUtil.so remote: libIlmThread-2_2.so.12 remote: libIlmThread-2_2.so.12.0.0 remote: libIlmThread.so remote: libImath-2_2.so.12 remote: libImath-2_2.so.12.0.0 remote: libImath.so remote: libisccc.so.140 remote: libisccc.so.140.0.4 remote: libisccfg.so.140 remote: libisccfg.so.140.3.0 remote: libisc-pkcs11.so.160 remote: libisc-pkcs11.so.160.0.0 remote: libisc.so.160 remote: libisc.so.160.0.0 remote: libisl.so.15 remote: libisl.so.15.1.1 remote: libitm.so.1 remote: libitm.so.1.0.0 remote: libjasper.a remote: libjasper.so remote: libjasper.so.1 remote: libjasper.so.1.0.0 remote: libjbig2dec.so.0 remote: libjbig2dec.so.0.0.0 remote: libjbig.a remote: libjbig.so remote: libjbig.so.0 remote: libjpeg.a remote: libjpeg.so remote: libjpeg.so.8 remote: libjpeg.so.8.0.2 remote: libk5crypto.so remote: libk5crypto.so.3 remote: libk5crypto.so.3.1 remote: libkadm5clnt_mit.so remote: libkadm5clnt_mit.so.9 remote: libkadm5clnt_mit.so.9.0 remote: libkadm5clnt.so remote: libkadm5srv_mit.so remote: libkadm5srv_mit.so.9 remote: libkadm5srv_mit.so.9.0 remote: libkadm5srv.so remote: libkdb5.so remote: libkdb5.so.8 remote: libkdb5.so.8.0 remote: libkeyutils.a remote: libkeyutils.so remote: libkmod.so remote: libkrb5.so remote: libkrb5.so.26 remote: libkrb5.so.26.0.0 remote: libkrb5.so.3 remote: libkrb5.so.3.3 remote: libkrb5support.so remote: libkrb5support.so.0 remote: libkrb5support.so.0.1 remote: liblber-2.4.so.2 remote: liblber-2.4.so.2.10.5 remote: liblber.a remote: liblber.so remote: liblcms2.so remote: liblcms2.so.2 remote: liblcms2.so.2.0.6 remote: libldap-2.4.so.2 remote: libldap.a remote: libldap_r-2.4.so.2 remote: libldap_r-2.4.so.2.10.5 remote: libldap_r.a remote: libldap_r.so remote: libldap.so remote: liblqr-1.so remote: liblqr-1.so.0 remote: liblqr-1.so.0.3.2 remote: liblsan.so.0 remote: liblsan.so.0.0.0 remote: libltdl.a remote: libltdl.la remote: libltdl.so remote: libltdl.so.7 remote: libltdl.so.7.3.1 remote: liblwres.so.141 remote: liblwres.so.141.0.3 remote: liblz4.a remote: liblz4.so remote: liblz4.so.1 remote: liblz4.so.1.7.1 remote: liblzma.a remote: liblzma.so remote: libm.a remote: libmagic.a remote: libMagickCore-6.Q16.a remote: libMagickCore-6.Q16.la remote: libMagickCore-6.Q16.so remote: libMagickCore-6.Q16.so.2 remote: libMagickCore-6.Q16.so.2.0.0 remote: libMagickWand-6.Q16.a remote: libMagickWand-6.Q16.la remote: libMagickWand-6.Q16.so remote: libMagickWand-6.Q16.so.2 remote: libMagickWand-6.Q16.so.2.0.0 remote: libmagic.so remote: libmagic.so.1 remote: libmagic.so.1.0.0 remote: libmcheck.a remote: libmemcached.a remote: libmemcached.so remote: libmemcached.so.11 remote: libmemcached.so.11.0.0 remote: libmemcachedutil.a remote: libmemcachedutil.so remote: libmemcachedutil.so.2 remote: libmemcachedutil.so.2.0.0 remote: libmenu.a remote: libmenu.so remote: libmenu.so.5 remote: libmenu.so.5.9 remote: libmenuw.a remote: libmenuw.so remote: libmenuw.so.5 remote: libmenuw.so.5.9 remote: libmpc.so.3 remote: libmpc.so.3.0.0 remote: libmpdec.so.2 remote: libmpdec.so.2.4.2 remote: libmpfr.so.4 remote: libmpfr.so.4.1.4 remote: libmpx.so.0 remote: libmpx.so.0.0.0 remote: libmpxwrappers.so.0 remote: libmpxwrappers.so.0.0.0 remote: libm.so remote: libmvec.a remote: libmvec_nonshared.a remote: libmvec.so remote: libmysqlclient.a remote: libmysqlclient.so remote: libmysqlclient.so.20 remote: libmysqlclient.so.20.3.6 remote: libncurses.a remote: libncurses++.a remote: libncurses.so remote: libncurses++w.a remote: libncursesw.a remote: libncursesw.so remote: libnettle.a remote: libnettle.so remote: libnettle.so.6 remote: libnettle.so.6.2 remote: libnsl.a remote: libnsl.so remote: libnss_compat.so remote: libnss_dns.so remote: libnss_files.so remote: libnss_hesiod.so remote: libnss_nisplus.so remote: libnss_nis.so remote: libopcodes-2.26.1-system.so remote: libopcodes-2.26-system.so remote: libp11-kit.so remote: libp11-kit.so.0 remote: libp11-kit.so.0.1.0 remote: libpam.a remote: libpamc.a remote: libpamc.so remote: libpam_misc.a remote: libpam_misc.so remote: libpam.so remote: libpanel.a remote: libpanel.so remote: libpanel.so.5 remote: libpanel.so.5.9 remote: libpanelw.a remote: libpanelw.so remote: libpanelw.so.5 remote: libpanelw.so.5.9 remote: libpango-1.0.so.0 remote: libpango-1.0.so.0.3800.1 remote: libpangocairo-1.0.so.0 remote: libpangocairo-1.0.so.0.3800.1 remote: libpangoft2-1.0.so.0 remote: libpangoft2-1.0.so.0.3800.1 remote: libpaper.so.1 remote: libpaper.so.1.1.2 remote: libpcre16.a remote: libpcre16.so remote: libpcre16.so.3 remote: libpcre16.so.3.13.2 remote: libpcre32.a remote: libpcre32.so remote: libpcre32.so.3 remote: libpcre32.so.3.13.2 remote: libpcre.a remote: libpcrecpp.a remote: libpcrecpp.so remote: libpcrecpp.so.0 remote: libpcrecpp.so.0.0.1 remote: libpcreposix.a remote: libpcreposix.so remote: libpcreposix.so.3 remote: libpcreposix.so.3.13.2 remote: libpcre.so remote: libperl.so.5.22 remote: libperl.so.5.22.1 remote: libpgcommon.a remote: libpgfeutils.a remote: libpgport.a remote: libpixman-1.a remote: libpixman-1.so remote: libpixman-1.so.0 remote: libpixman-1.so.0.33.6 remote: libpng12.a remote: libpng12.so remote: libpng12.so.0 remote: libpng.a remote: libpng.so remote: libpopt.a remote: libpopt.la remote: libpopt.so remote: libpq.a remote: libpq.so remote: libpq.so.5 remote: libpq.so.5.9 remote: libpthread.a remote: libpthread_nonshared.a remote: libpthread.so remote: libpython2.7.a remote: libpython2.7.so remote: libpython2.7.so.1 remote: libpython2.7.so.1.0 remote: libquadmath.so.0 remote: libquadmath.so.0.0.0 remote: librabbitmq.so remote: librabbitmq.so.4 remote: librabbitmq.so.4.1.3 remote: libreadline.a remote: libreadline.so remote: libresolv.a remote: libresolv.so remote: libroken.so.18 remote: libroken.so.18.1.0 remote: librpcsvc.a remote: librsvg-2.a remote: librsvg-2.so remote: librsvg-2.so.2 remote: librsvg-2.so.2.40.13 remote: librt.a remote: librtmp.a remote: librtmp.so remote: librtmp.so.1 remote: librt.so remote: libruby-2.3.so remote: libruby-2.3.so.2.3 remote: libruby-2.3.so.2.3.0 remote: libruby-2.3-static.a remote: libsasl2.a remote: libsasl2.so remote: libsasl2.so.2 remote: libsasl2.so.2.0.25 remote: libselinux.a remote: libselinux.so remote: libsemanage.a remote: libsemanage.so remote: libsemanage.so.1 remote: libsepol.a remote: libsepol.so remote: libsigsegv.so.2 remote: libsigsegv.so.2.0.3 remote: libSM.a remote: libSM.so remote: libSM.so.6 remote: libSM.so.6.0.1 remote: libsqlite3.so.0 remote: libsqlite3.so.0.8.6 remote: libssl.a remote: libssl.so remote: libstdc++.so.6 remote: libstdc++.so.6.0.21 remote: libsystemd.so remote: libtasn1.a remote: libtasn1.so remote: libtasn1.so.6 remote: libtasn1.so.6.5.1 remote: libtermcap.a remote: libtermcap.so remote: libthai.so.0 remote: libthai.so.0.2.4 remote: libthread_db.so remote: libtic.a remote: libtic.so remote: libtic.so.5 remote: libtic.so.5.9 remote: libtiff.a remote: libtiff.so remote: libtiff.so.5 remote: libtiff.so.5.2.4 remote: libtiffxx.a remote: libtiffxx.so remote: libtiffxx.so.5 remote: libtiffxx.so.5.2.4 remote: libtinfo.a remote: libtinfo.so remote: libtsan.so.0 remote: libtsan.so.0.0.0 remote: libturbojpeg.a remote: libubsan.so.0 remote: libubsan.so.0.0.0 remote: libudev.so remote: libustr-1.0.so remote: libustr-1.0.so.1 remote: libustr-1.0.so.1.0.4 remote: libustr.a remote: libustr.so remote: libutil.a remote: libutil.so remote: libuv.a remote: libuv.so remote: libuv.so.1 remote: libuv.so.1.0.0 remote: libvpx.a remote: libvpx.so remote: libvpx.so.3 remote: libvpx.so.3.0 remote: libvpx.so.3.0.0 remote: libwind.so.0 remote: libwind.so.0.0.0 remote: libwmf-0.2.so.7 remote: libwmf-0.2.so.7.1.0 remote: libwmf.a remote: libwmflite-0.2.so.7 remote: libwmflite-0.2.so.7.0.1 remote: libwmflite.a remote: libwmflite.so remote: libwmf.so remote: libwrap.a remote: libwrap.so remote: libX11.a remote: libX11.so remote: libX11.so.6 remote: libX11.so.6.3.0 remote: libXau.a remote: libXau.so remote: libXau.so.6 remote: libXau.so.6.0.0 remote: libxcb.a remote: libxcb-render.a remote: libxcb-render.so remote: libxcb-render.so.0 remote: libxcb-render.so.0.0.0 remote: libxcb-shm.a remote: libxcb-shm.so remote: libxcb-shm.so.0 remote: libxcb-shm.so.0.0.0 remote: libxcb.so remote: libxcb.so.1 remote: libxcb.so.1.1.0 remote: libXcomposite.so.1 remote: libXcomposite.so.1.0.0 remote: libXcursor.so.1 remote: libXcursor.so.1.0.2 remote: libXdamage.so.1 remote: libXdamage.so.1.1.0 remote: libXdmcp.a remote: libXdmcp.so remote: libXdmcp.so.6 remote: libXdmcp.so.6.0.0 remote: libXext.a remote: libXext.so remote: libXext.so.6 remote: libXext.so.6.4.0 remote: libXfixes.so.3 remote: libXfixes.so.3.1.0 remote: libXinerama.so.1 remote: libXinerama.so.1.0.0 remote: libXi.so.6 remote: libXi.so.6.1.0 remote: libxml2.a remote: libxml2.so remote: libxml2.so.2 remote: libxml2.so.2.9.3 remote: libXmuu.so.1 remote: libXmuu.so.1.0.0 remote: libXpm.a remote: libXpm.so remote: libXpm.so.4 remote: libXpm.so.4.11.0 remote: libXrandr.so.2 remote: libXrandr.so.2.2.0 remote: libXrender.a remote: libXrender.so remote: libXrender.so.1 remote: libXrender.so.1.3.0 remote: libxslt.a remote: libxslt.so remote: libxslt.so.1 remote: libxslt.so.1.1.28 remote: libXt.a remote: libXt.so remote: libXt.so.6 remote: libXt.so.6.0.0 remote: liby.a remote: libyaml-0.so.2 remote: libyaml-0.so.2.0.4 remote: libyaml.a remote: libyaml.so remote: libz.a remote: libz.so remote: Mcrt1.o remote: mit-krb5 remote: openssl-1.0.0 remote: perl remote: perl5 remote: perl-base remote: pkgconfig remote: ruby remote: sasl2 remote: Scrt1.o remote: stunnel remote: test-udev remote: xml2Conf.sh remote: xsltConf.sh ```

And here is the log which snipped from apt dependency installation:
Logs ``` remote: -----> Installing bsdmainutils_9.0.6ubuntu3_amd64.deb remote: -----> Installing build-essential_12.1ubuntu2_amd64.deb remote: -----> Installing debhelper_9.20160115ubuntu3_all.deb remote: -----> Installing dh-strip-nondeterminism_0.015-1_all.deb remote: -----> Installing g++_4%3a5.3.1-1ubuntu1_amd64.deb remote: -----> Installing gettext_0.19.7-2ubuntu3_amd64.deb remote: -----> Installing gettext-base_0.19.7-2ubuntu3_amd64.deb remote: -----> Installing gir1.2-pango-1.0_1.38.1-1_amd64.deb remote: -----> Installing groff-base_1.22.3-7_amd64.deb remote: -----> Installing intltool-debian_0.35.0+20060710.4_all.deb remote: -----> Installing libarchive-zip-perl_1.56-2_all.deb remote: -----> Installing libasprintf0v5_0.19.7-2ubuntu3_amd64.deb remote: -----> Installing libasprintf-dev_0.19.7-2ubuntu3_amd64.deb remote: -----> Installing libcairo2-dev_1.14.6-1_amd64.deb remote: -----> Installing libfile-stripnondeterminism-perl_0.015-1_all.deb remote: -----> Installing libgettextpo0_0.19.7-2ubuntu3_amd64.deb remote: -----> Installing libgettextpo-dev_0.19.7-2ubuntu3_amd64.deb remote: -----> Installing libgif7_5.1.4-0.3~16.04_amd64.deb remote: -----> Installing libgif-dev_5.1.4-0.3~16.04_amd64.deb remote: -----> Installing libharfbuzz-dev_1.0.1-1ubuntu0.1_amd64.deb remote: -----> Installing libharfbuzz-gobject0_1.0.1-1ubuntu0.1_amd64.deb remote: -----> Installing libharfbuzz-icu0_1.0.1-1ubuntu0.1_amd64.deb remote: -----> Installing libjpeg8-dev_8c-2ubuntu8_amd64.deb remote: -----> Installing libmail-sendmail-perl_0.79.16-1_all.deb remote: -----> Installing libpango1.0-dev_1.38.1-1_amd64.deb remote: -----> Installing libpangoxft-1.0-0_1.38.1-1_amd64.deb remote: -----> Installing libpipeline1_1.4.1-2_amd64.deb remote: -----> Installing libsys-hostname-long-perl_1.5-1_all.deb remote: -----> Installing libtimedate-perl_2.3000-2_all.deb remote: -----> Installing libunistring0_0.9.3-5.2ubuntu1_amd64.deb remote: -----> Installing libxft2_2.3.2-1_amd64.deb remote: -----> Installing libxft-dev_2.3.2-1_amd64.deb remote: -----> Installing man-db_2.7.5-1_amd64.deb remote: -----> Installing po-debconf_1.0.19_all.deb ```

And finally snippet of build logs. It looks like kind of tricky, it's still showing errors:

remote:        SOLINK_MODULE(target) Release/obj.target/canvas.node
remote:        /usr/bin/ld: /tmp/build_d5777fc62c527076342fead00832aaf8/.apt/usr/lib/x86_64-linux-gnu/libcairo.a(cairo.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
remote:        /tmp/build_d5777fc62c527076342fead00832aaf8/.apt/usr/lib/x86_64-linux-gnu/libcairo.a: error adding symbols: Bad value
remote:        collect2: error: ld returned 1 exit status
remote:        canvas.target.mk:162: recipe for target 'Release/obj.target/canvas.node' failed
remote:        make: *** [Release/obj.target/canvas.node] Error 1
remote:        make: Leaving directory '/tmp/build_d5777fc62c527076342fead00832aaf8/node_modules/canvas/build'
remote:        gyp ERR! build error
remote:        gyp ERR! stack Error: `make` failed with exit code: 2
remote:        gyp ERR! stack     at ChildProcess.onExit (/tmp/build_d5777fc62c527076342fead00832aaf8/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
remote:        gyp ERR! stack     at ChildProcess.emit (events.js:159:13)
remote:        gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
remote:        gyp ERR! System Linux 3.13.0-133-generic
remote:        gyp ERR! command "/tmp/build_d5777fc62c527076342fead00832aaf8/.heroku/node/bin/node" "/tmp/build_d5777fc62c527076342fead00832aaf8/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
remote:        gyp ERR! cwd /tmp/build_d5777fc62c527076342fead00832aaf8/node_modules/canvas
remote:        gyp ERR! node -v v9.2.0
remote:        gyp ERR! node-gyp -v v3.6.2
remote:        gyp ERR! not ok

@preco21
Copy link
Contributor Author

preco21 commented Nov 28, 2017

@nirzaq I just tried to test it with your build pack but it is showing strange error:

remote: -----> Cairo app detected
remote: -----> Vendoring binaries
remote:        Fetching https://fossies.org/linux/misc/cairo-1.14.10.tar.gz
remote:        Fetching http://ftp.yzu.edu.tw/nongnu/freetype/freetype-2.8.tar.gz
remote: 
remote: gzip: stdin: unexpected end of file
remote: tar: Unexpected EOF in archive
remote: tar: Unexpected EOF in archive
remote: tar: Error is not recoverable: exiting now
remote:  !     Push rejected, failed to compile Cairo app.
remote: 
remote:  !     Push failed

@nirzaq
Copy link

nirzaq commented Nov 29, 2017

@preco21 I updated the buildpacks repository. Please try again.

remote: -----> Build succeeded!
remote: -----> Discovering process types
remote: Procfile declares types -> heroku, worker
remote: Default types for buildpack -> web

@preco21
Copy link
Contributor Author

preco21 commented Dec 3, 2017

@nirzaq It still shows failing build, seems like some packages are missing:

remote:        Package pangocairo was not found in the pkg-config search path.
remote:        Perhaps you should add the directory containing `pangocairo.pc'
remote:        to the PKG_CONFIG_PATH environment variable
remote:        No package 'pangocairo' found
remote:        gyp: Call to 'pkg-config pangocairo --libs' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
remote:        gyp ERR! configure error
remote:        gyp ERR! stack Error: `gyp` failed with exit code: 1
remote:        gyp ERR! stack     at ChildProcess.onCpExit (/tmp/build_f2391019d31a3346c2e49d6b915e7f38/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:336:16)
remote:        gyp ERR! stack     at ChildProcess.emit (events.js:159:13)
remote:        gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
remote:        gyp ERR! System Linux 3.13.0-133-generic
remote:        gyp ERR! command "/tmp/build_f2391019d31a3346c2e49d6b915e7f38/.heroku/node/bin/node" "/tmp/build_f2391019d31a3346c2e49d6b915e7f38/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
remote:        gyp ERR! cwd /tmp/build_f2391019d31a3346c2e49d6b915e7f38/node_modules/canvas
remote:        gyp ERR! node -v v9.2.0
remote:        gyp ERR! node-gyp -v v3.6.2
remote:        gyp ERR! not ok

However sometimes it also failed to build on your buildpack:

remote: -----> Cairo app detected
remote: -----> Vendoring binaries
remote:        Fetching https://fossies.org/linux/misc/cairo-1.14.10.tar.gz
remote:        Fetching http://ftp.yzu.edu.tw/nongnu/freetype/freetype-2.8.tar.gz
remote: 
remote: gzip: stdin: unexpected end of file
remote: tar: Unexpected EOF in archive
remote: tar: Unexpected EOF in archive
remote: tar: Error is not recoverable: exiting now
remote:  !     Push rejected, failed to compile Cairo app.
remote: 
remote:  !     Push failed

The issue above came out when I tried to build again after changing node-canvas version from old one to next.

@Denly
Copy link

Denly commented Jan 22, 2018

Hi I have the same issue too. Hope it can be solved. Thank you!

remote: Building source:
remote: 
remote: -----> Node.js app detected
remote: 
remote: -----> Creating runtime environment
remote:        
remote:        NPM_CONFIG_LOGLEVEL=error
remote:        NPM_CONFIG_PRODUCTION=true
remote:        NODE_VERBOSE=false
remote:        NODE_ENV=production
remote:        NODE_MODULES_CACHE=true
remote: 
remote: -----> Installing binaries
remote:        engines.node (package.json):  unspecified
remote:        engines.npm (package.json):   unspecified (use default)
remote:        engines.yarn (package.json):  unspecified (use default)
remote:        
remote:        Resolving node version 8.x...
remote:        Downloading and installing node 8.9.4...
remote:        Using default npm version: 5.6.0
remote:        Resolving yarn version 1.x...
remote:        Downloading and installing yarn (1.4.0)...
remote:        Installed yarn 1.4.0
remote: 
remote: -----> Restoring cache
remote:        !     node_modules checked into source control
remote:        https://blog.heroku.com/node-habits-2016#9-only-git-the-important-bits
remote:        
remote:        Skipping cache restore (not-found)
remote: 
remote: -----> Building dependencies
remote:        Installing node modules (yarn.lock)
remote:        yarn install v1.4.0
remote:        [1/4] Resolving packages...
remote:        [2/4] Fetching packages...
remote:        [3/4] Linking dependencies...
remote:        [4/4] Building fresh packages...
remote:        error An unexpected error occurred: "/tmp/build_a557f5cab8a90feb899e53fc0f08983e/node_modules/canvas: Command failed.nExit code: 1nCommand: shnArguments: -c node-gyp rebuildnDirectory: /tmp/build_a557f5cab8a90feb899e53fc0f08983e/node_modules/canvasnOutput:nmake: Entering directory `/tmp/build_a557f5cab8a90feb899e53fc0f08983e/node_modules/canvas/build'n  SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.noden  COPY Release/canvas-postbuild.noden  CXX(target) Release/obj.target/canvas/src/Canvas.on  CXX(target) Release/obj.target/canvas/src/CanvasGradient.on  CXX(target) Release/obj.target/canvas/src/CanvasPattern.onIn file included from ../src/CanvasPattern.cc:9:0:n../src/Image.h:19:21: fatal error: gif_lib.h: No such file or directoryn #include <gif_lib.h>n                     ^ncompilation terminated.nmake: *** [Release/obj.target/canvas/src/CanvasPattern.o] Error 1nmake: Leaving directory `/tmp/build_a557f5cab8a90feb899e53fc0f08983e/node_modules/canvas/build'ngyp ERR! build error ngyp ERR! stack Error: `make` failed with exit code: 2ngyp ERR! stack     at ChildProcess.onExit (/tmp/build_a557f5cab8a90feb899e53fc0f08983e/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)ngyp ERR! stack     at emitTwo (events.js:126:13)ngyp ERR! stack     at ChildProcess.emit (events.js:214:7)ngyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)ngyp ERR! System Linux 4.4.0-1010-awsngyp ERR! command "/tmp/build_a557f5cab8a90feb899e53fc0f08983e/.heroku/node/bin/node" "/tmp/build_a557f5cab8a90feb899e53fc0f08983e/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"ngyp ERR! cwd /tmp/build_a557f5cab8a90feb899e53fc0f08983e/node_modules/canvasngyp ERR! node -v v8.9.4ngyp ERR! node-gyp -v v3.6.2ngyp ERR! not ok".
remote:        info If you think this is a bug, please open a bug report with the information provided in "/tmp/build_a557f5cab8a90feb899e53fc0f08983e/yarn-error.log".
remote:        info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
remote: 
remote: -----> Build failed

@rista404
Copy link

rista404 commented May 22, 2018

I tested it on version 2.0.0-alpha.12 by using https://github.com/rista404/heroku-buildpack-cairo and it works.

UPDATE: now using this one: https://github.com/Amondo/heroku-buildpack-cairo

@zbjornson
Copy link
Collaborator

I just successfully installed canvas 2.0.0-alpha.12 and 1.6.11 on the vanilla heroku-16 stack. Both just worked thanks to prebuilds. If anyone has a need to make a from-source build work, I can look into it.

@thofnar
Copy link

thofnar commented Nov 11, 2018

I just successfully installed canvas 2.0.0-alpha.12 and 1.6.11 on the vanilla heroku-16 stack. Both just worked thanks to prebuilds. If anyone has a need to make a from-source build work, I can look into it.

Hi @zbjornson, can I as how you did this? I'm new to node-canvas and followed the instructions on here (https://github.com/Automattic/node-canvas#installation) to get this working locally with Node js. Its all working fine but now I want to deploy to Heroku and I'm seeing a lot of issues. What exactly does it mean to use the prebuilds? I tried adding the buildpack (https://github.com/rista404/heroku-buildpack-cairo) to my Heroku app but still the same errors. My version of canvas is 2.0.0-alpha.2. Any ideas for how to get around this would be greatly appreciated!! :)

Edit:
I've attached my log file if that helps.
heroku_log.txt

I've also tried uninstalling canvas 2.0.0-alpha2 and installing 2.0.0-alpha12 but it seems Heroku is still trying to install alpha.2, could this be the problem?

@rista404
Copy link

Hey @tudorific, try this one: https://github.com/Amondo/heroku-buildpack-cairo
It's currently working for us, we will bump the version every time we encounter an error.

@thofnar
Copy link

thofnar commented Nov 12, 2018

@rista404 thanks! I tried using that buildpack as well and I get the same error. All I did is that I added the buildpack to my Heroku app. Is there anything else I need to do for it to work? Not really sure what else it could be...

@zbjornson
Copy link
Collaborator

zbjornson commented Nov 12, 2018

@tudorific 2.0 is stable (no need for alphas anymore, you can just use npm install canvas@latest).

@tudorific @rista404 The entirety of my demo app is below. I have no buildpacks installed edit aside from the default heroku/nodejs.

package.json

{
  "dependencies": {
    "canvas": "^2.1.0",
    "express": "^4.16.4"
  },
  "scripts": {
    "start": "node index.js"
  }
}

index.js

const express = require('express')
const canvas = require('canvas')
const PORT = process.env.PORT || 5000

express()
	.get('/', (req, res) => res.send({version: canvas.version, cairoVersion: canvas.cairoVersion}))
	.listen(PORT, () => console.log(`Listening on ${PORT}`))

Live here: https://test-canvas-zb1.herokuapp.com/

{"version":"2.1.0","cairoVersion":"1.16.0"}

@thofnar
Copy link

thofnar commented Nov 12, 2018

@zbjornson hmm, I tried installing the latest canvas and I'm still seeing the same problem. Interestingly enough, even though my package.json shows my canvas version as ^2.1.0, the error I get from Heroku is "Failed at the canvas@2.0.0-alpha.2 install script." It doesn't look like its picking up the latest version even though that is the one I am trying to push.

Maybe a bit of background will help, I am trying to use canvas as a way to generate a chart to .png without displaying it on a webpage...using node-chartjs which is dependent on canvas. Here is a copy of my package.json dependencies:

"dependencies": {
    "apiai": "^4.0.3",
    "body-parser": "^1.18.3",
    "browser-cookies": "^1.2.0",
    "canvas": "^2.1.0",
    "chart.js": "^2.7.3",
    "chartjs-node": "^1.7.1",
    "dotenv": "^6.0.0",
    "ejs": "^2.6.1",
    "express": "^4.16.3",
    "express-sanitizer": "^1.0.4",
    "express-session": "^1.15.6",
    "mongoose": "^5.2.6",
    "node-chartjs": "0.0.7",
    "node-gyp": "^3.8.0",
    "passport-oauth2": "^1.4.0",
    "request": "^2.87.0",
    "request-promise": "^4.2.2",
    "simple-oauth2": "^2.2.0",
    "underscore": "^1.9.1",
    "uuid": "^3.3.2"
  }

@zbjornson
Copy link
Collaborator

@tudorific that might be cached by Heroku. Try this? https://devcenter.heroku.com/articles/nodejs-support#cache-behavior

heroku config:set NODE_MODULES_CACHE=false
git commit -am 'disable node_modules cache' --allow-empty
git push heroku master

@zbjornson
Copy link
Collaborator

zbjornson commented Nov 13, 2018

using node-chartjs which is dependent on canvas

Oops, read too quickly. 2.0.0-alpha.2 is in node-chartjs's package.json. Maybe fork it and update it, or get the maintainer to update?

@thofnar
Copy link

thofnar commented Nov 13, 2018

@zbjornson so I did update the version in the node-chartjs to use the latest version of canvas...unfortunately it does not seem to work unless the version is alpha.2 :(. I get an error related to the package itself and I can't get the output report. I guess there is no way to deploy to Heroku using the alpha.2 version? Basically, this is the issue I am struggling with in terms of canvas version: vmpowerio/chartjs-node#42

@zbjornson
Copy link
Collaborator

It looks like that's going through jsdom. If you can get a version of chartjs-node/node-chartjs that uses jsdom 13.x and canvas 2.x, things should work. I don't think any of the changes between alpha.2 and 2.0.1 would have broken jsdom's usage.

@thofnar
Copy link

thofnar commented Nov 15, 2018

@zbjornson I ended up downgrading to canvas 1.6.13 and that is working just fine with Heroku and my charting. Not ideal to be using an older version but its the only way I have been able to get this working and its just for a prototype for now :). Thanks a lot for you help with troubleshooting thing!

@wordpressers

This comment has been minimized.

@nikhilng99

This comment has been minimized.

@softwareenginear
Copy link

remote: > NPM CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client
remote:
remote: sh: 1: NPM: not found
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! syscall spawn
remote: npm ERR! file sh
remote: npm ERR! errno ENOENT
remote: npm ERR! server@1.0.0 heroku-postbuild: NPM CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client
remote: npm ERR! spawn ENOENT
remote: npm ERR!
remote: npm ERR! Failed at the server@1.0.0 heroku-postbuild script.
remote: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
remote:
remote: npm ERR! A complete log of this run can be found in:
remote: npm ERR! /tmp/npmcache.ukX8t/_logs/2020-11-11T16_30_39_396Z-debug.log
remote:
remote: -----> Build failed
remote:
remote: We're sorry this build is failing! You can troubleshoot common issues here:
remote: https://devcenter.heroku.com/articles/troubleshooting-node-deploys
remote:
remote: Some possible problems:
remote:
remote: - Node version not specified in package.json
remote: https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
remote:
remote: Love,
remote: Heroku
remote:
remote: ! Push rejected, failed to compile Node.js app.
remote:
remote: ! Push failed
remote: !
remote: ! ## Warning - The same version of this code has already been built: 1ef8053435ee2228771bfdbdb32870b501981fc3
remote: !
remote: ! We have detected that you have triggered a build from source code with version 1ef8053435ee2228771bfdbdb32870b501981fc3
remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote: !
remote: ! If you are developing on a branch and deploying via git you must run:
remote: !
remote: ! git push heroku :main
remote: !
remote: ! This article goes into details on the behavior:
remote: ! https://devcenter.heroku.com/articles/duplicate-build-version
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to Chatroom
remote:

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

10 participants