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

Question about canvas-prebuilt #8

Closed
danriti opened this issue Apr 18, 2017 · 19 comments
Closed

Question about canvas-prebuilt #8

danriti opened this issue Apr 18, 2017 · 19 comments

Comments

@danriti
Copy link

danriti commented Apr 18, 2017

Hey @chearon, I have a question about this statement in the README:

This is a drop-in replacement for canvas that does not require any compiling.

So my question is, should the following work with canvas-prebuilt?

var canvas = require('canvas');

I ask, because I am experiencing different outcomes when using canvas and canvas-prebuilt. Examples below:

With canvas

$ docker run --rm -it node:6-onbuild /bin/bash
root@a8fdf92ddf9f:/usr/src/app# npm install canvas@1.6.0
...
root@a8fdf92ddf9f:/usr/src/app# node -e "var canvas = require('canvas');"
root@a8fdf92ddf9f:/usr/src/app# echo $?
0

With canvas-prebuilt

$ docker run --rm -it node:6-onbuild /bin/bash
root@43422ff3afb4:/usr/src/app# npm install canvas-prebuilt@1.6.0
...
root@43422ff3afb4:/usr/src/app# node -e "var canvas = require('canvas');"
module.js:471
    throw err;
    ^

Error: Cannot find module 'canvas'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at [eval]:1:14
    at ContextifyScript.Script.runInThisContext (vm.js:25:33)
    at Object.runInThisContext (vm.js:97:38)
    at Object.<anonymous> ([eval]-wrapper:6:22)
    at Module._compile (module.js:570:32)
    at Immediate.<anonymous> (bootstrap_node.js:358:29)
root@43422ff3afb4:/usr/src/app# echo $?
1

Thanks in advance.

@chearon
Copy link
Member

chearon commented Apr 18, 2017

You do have to change require('canvas') to require('canvas-prebuilt') (and/or change it in your package.json). It's unfortunate but I couldn't find any way to hook into the node module lookup system.

@danriti
Copy link
Author

danriti commented Apr 18, 2017

@chearon cool, that's what i figured. thanks for the quick reply 👍

@danriti danriti closed this as completed Apr 18, 2017
chearon added a commit that referenced this issue Apr 18, 2017
@danriti
Copy link
Author

danriti commented Apr 18, 2017

@chearon I may have closed this a bit too early. After some more experimentation, I seem to be running into another exception:

$ docker run --rm -it node:6-onbuild /bin/bash
root@07cc63564fc5:/usr/src/app# npm install canvas-prebuilt@1.6.0
...
root@07cc63564fc5:/usr/src/app# node -e "var canvas = require('canvas-prebuilt');"
module.js:597
  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: /usr/src/app/node_modules/canvas-prebuilt/canvas/build/Release/libgobject-2.0.so.0: undefined symbol: g_option_group_unref
    at Error (native)
    at Object.Module._extensions..node (module.js:597:18)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/src/app/node_modules/canvas-prebuilt/canvas/lib/bindings.js:3:18)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
root@07cc63564fc5:/usr/src/app# echo $?
1

Interestingly enough, the package seems to work as expected when I follow the same procedure in OSX natively:

[driti@driti-mb dump]$ which node
/Users/driti/.nvm/versions/node/v6.10.2/bin/node
[driti@driti-mb dump]$ npm install canvas-prebuilt@1.6.0
...
[driti@driti-mb dump]$ node -e "var canvas = require('canvas-prebuilt');"
[driti@driti-mb dump]$ echo $?
0

Is it possible something is broken in the Linux build?

@danriti danriti reopened this Apr 18, 2017
@chearon
Copy link
Member

chearon commented Apr 18, 2017

Hmmm I just tested and I didn't get that linker error... I also just did:

$ readelf -Ws node_modules/canvas-prebuilt/canvas/build/Release/libgobject-2.0.so.0 | grep g_option_group_unref
    78: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND g_option_group_unref

Which shows that the libgobject I'm distributing does have that routine. Are you by chance on a 32 bit kernel?

@chearon
Copy link
Member

chearon commented Apr 18, 2017

Did a bit more reading.... it is indeed undefined (that's what the UND means), so that might be the issue you're having. I'm not an expert on ELF or linkers (learned a lot while making this) so it might take me a bit to track down...

@danriti
Copy link
Author

danriti commented Apr 19, 2017

@chearon

Are you by chance on a 32 bit kernel?

Nope, I am not.

[driti@driti-mb ~]$ uname -a
Darwin driti-mb 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar  3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64
[driti@driti-mb ~]$ docker run --rm -it node:6-onbuild /bin/bash
root@ecc246b62731:/usr/src/app# uname -a
Linux ecc246b62731 4.9.13-moby #1 SMP Sat Mar 25 02:48:44 UTC 2017 x86_64 GNU/Linux

And no worries, thanks for helping out with this!

@chearon
Copy link
Member

chearon commented Apr 19, 2017

Do you have glib? I'm not shipping that since it should be on most distros by default, and I think that's where the symbol is defined

@danriti
Copy link
Author

danriti commented Apr 19, 2017

@chearon it appears so?

[driti@driti-mb ~]$ docker run --rm -it node:6-onbuild /bin/bash
root@d4e067e843e0:/usr/src/app# /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Debian GLIBC 2.19-18+deb8u7) stable release version 2.19, by Roland McGrath et al.
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.8.4.
Compiled on a Linux 3.16.36 system on 2016-11-28.
Available extensions:
	crypt add-on version 2.1 by Michael Glad and others
	GNU Libidn by Simon Josefsson
	Native POSIX Threads Library by Ulrich Drepper et al
	BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.debian.org/Bugs/>.

@danriti
Copy link
Author

danriti commented Apr 19, 2017

@chearon I just found this, which may be relevant here lovell/sharp#371

@chearon
Copy link
Member

chearon commented Apr 19, 2017

So maybe the new libraries I'm publishing are referencing newer symbols that your glib doesn't have...do you know which version of glib you have? (Your comment shows the version of glibc but the undefined symbols are things that should be defined in glib)

That would explain why the jsdom builds are failing... the reason I had to change the Linux builds in the first place was because Travis's Ubuntu is so old

@kannix
Copy link

kannix commented Apr 20, 2017

Have the same problem :(
This is an overview of all installed packages (the node docker image is based on debian jessie)

apt list --installed
Listing... Done
acl/now 2.2.52-2 amd64 [installed,local]
adduser/now 3.113+nmu3 all [installed,local]
apt/now 1.0.9.8.4 amd64 [installed,local]
autoconf/now 2.69-8 all [installed,local]
automake/now 1:1.14.1-4+deb8u1 all [installed,local]
autotools-dev/now 20140911.1 all [installed,local]
base-files/now 8+deb8u7 amd64 [installed,local]
base-passwd/now 3.5.37 amd64 [installed,local]
bash/now 4.3-11+deb8u1 amd64 [installed,local]
binutils/now 2.25-5 amd64 [installed,local]
bsdutils/now 1:2.25.2-6 amd64 [installed,local]
bzip2/now 1.0.6-7+b3 amd64 [installed,local]
bzr/now 2.6.0+bzr6595-6 all [installed,local]
ca-certificates/now 20141019+deb8u2 all [installed,local]
comerr-dev/now 2.1-1.42.12-2+b1 amd64 [installed,local]
coreutils/now 8.23-4 amd64 [installed,local]
cpp/now 4:4.9.2-2 amd64 [installed,local]
cpp-4.9/now 4.9.2-10 amd64 [installed,local]
curl/now 7.38.0-4+deb8u5 amd64 [installed,local]
dash/now 0.5.7-4+b1 amd64 [installed,local]
debconf/now 1.5.56 all [installed,local]
debconf-i18n/now 1.5.56 all [installed,local]
debian-archive-keyring/now 2014.3 all [installed,local]
debianutils/now 4.4+b1 amd64 [installed,local]
diffutils/now 1:3.3-1+b1 amd64 [installed,local]
dmsetup/now 2:1.02.90-2.2+deb8u1 amd64 [installed,local]
dpkg/now 1.17.27 amd64 [installed,local]
e2fslibs/now 1.42.12-2+b1 amd64 [installed,local]
e2fsprogs/now 1.42.12-2+b1 amd64 [installed,local]
file/now 1:5.22+15-2+deb8u3 amd64 [installed,local]
findutils/now 4.4.2-9+b1 amd64 [installed,local]
fontconfig/now 2.11.0-6.3+deb8u1 amd64 [installed,local]
fontconfig-config/now 2.11.0-6.3+deb8u1 all [installed,local]
fonts-dejavu-core/now 2.34-1 all [installed,local]
g++/now 4:4.9.2-2 amd64 [installed,local]
g++-4.9/now 4.9.2-10 amd64 [installed,local]
gcc/now 4:4.9.2-2 amd64 [installed,local]
gcc-4.8-base/now 4.8.4-1 amd64 [installed,local]
gcc-4.9/now 4.9.2-10 amd64 [installed,local]
gcc-4.9-base/now 4.9.2-10 amd64 [installed,local]
geoip-bin/now 1.6.2-4 amd64 [installed,local]
gir1.2-freedesktop/now 1.42.0-2.2 amd64 [installed,local]
gir1.2-gdkpixbuf-2.0/now 2.31.1-2+deb8u5 amd64 [installed,local]
gir1.2-glib-2.0/now 1.42.0-2.2 amd64 [installed,local]
gir1.2-rsvg-2.0/now 2.40.5-1+deb8u2 amd64 [installed,local]
git/now 1:2.1.4-2.1+deb8u2 amd64 [installed,local]
git-man/now 1:2.1.4-2.1+deb8u2 all [installed,local]
gnupg/now 1.4.18-7+deb8u3 amd64 [installed,local]
gpgv/now 1.4.18-7+deb8u3 amd64 [installed,local]
grep/now 2.20-4.1 amd64 [installed,local]
gzip/now 1.6-4 amd64 [installed,local]
hicolor-icon-theme/now 0.13-1 all [installed,local]
hostname/now 3.15 amd64 [installed,local]
imagemagick/now 8:6.8.9.9-5+deb8u8 amd64 [installed,local]
imagemagick-6.q16/now 8:6.8.9.9-5+deb8u8 amd64 [installed,local]
imagemagick-common/now 8:6.8.9.9-5+deb8u8 all [installed,local]
inetutils-ping/now 2:1.9.2.39.3a460-3 amd64 [installed,local]
init/now 1.22 amd64 [installed,local]
initscripts/now 2.88dsf-59 amd64 [installed,local]
insserv/now 1.14.0-5 amd64 [installed,local]
iproute2/now 3.16.0-2 amd64 [installed,local]
krb5-multidev/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libacl1/now 2.2.52-2 amd64 [installed,local]
libapr1/now 1.5.1-3 amd64 [installed,local]
libaprutil1/now 1.5.4-1 amd64 [installed,local]
libapt-pkg4.12/now 1.0.9.8.4 amd64 [installed,local]
libasan1/now 4.9.2-10 amd64 [installed,local]
libatomic1/now 4.9.2-10 amd64 [installed,local]
libattr1/now 1:2.4.47-2 amd64 [installed,local]
libaudit-common/now 1:2.4-1 all [installed,local]
libaudit1/now 1:2.4-1+b1 amd64 [installed,local]
libblkid1/now 2.25.2-6 amd64 [installed,local]
libbsd0/now 0.7.0-2 amd64 [installed,local]
libbz2-1.0/now 1.0.6-7+b3 amd64 [installed,local]
libbz2-dev/now 1.0.6-7+b3 amd64 [installed,local]
libc-bin/now 2.19-18+deb8u7 amd64 [installed,local]
libc-dev-bin/now 2.19-18+deb8u7 amd64 [installed,local]
libc6/now 2.19-18+deb8u7 amd64 [installed,local]
libc6-dev/now 2.19-18+deb8u7 amd64 [installed,local]
libcairo-gobject2/now 1.14.0-2.1+deb8u2 amd64 [installed,local]
libcairo-script-interpreter2/now 1.14.0-2.1+deb8u2 amd64 [installed,local]
libcairo2/now 1.14.0-2.1+deb8u2 amd64 [installed,local]
libcairo2-dev/now 1.14.0-2.1+deb8u2 amd64 [installed,local]
libcap2/now 1:2.24-8 amd64 [installed,local]
libcap2-bin/now 1:2.24-8 amd64 [installed,local]
libcdt5/now 2.38.0-7 amd64 [installed,local]
libcgraph6/now 2.38.0-7 amd64 [installed,local]
libcilkrts5/now 4.9.2-10 amd64 [installed,local]
libcloog-isl4/now 0.18.2-1+b2 amd64 [installed,local]
libcomerr2/now 1.42.12-2+b1 amd64 [installed,local]
libcroco3/now 0.6.8-3+b1 amd64 [installed,local]
libcryptsetup4/now 2:1.6.6-5 amd64 [installed,local]
libcurl3/now 7.38.0-4+deb8u5 amd64 [installed,local]
libcurl3-gnutls/now 7.38.0-4+deb8u5 amd64 [installed,local]
libcurl4-openssl-dev/now 7.38.0-4+deb8u5 amd64 [installed,local]
libdatrie1/now 0.2.8-1 amd64 [installed,local]
libdb-dev/now 5.3.0+b1 amd64 [installed,local]
libdb5.3/now 5.3.28-9 amd64 [installed,local]
libdb5.3-dev/now 5.3.28-9 amd64 [installed,local]
libdebconfclient0/now 0.192 amd64 [installed,local]
libdevmapper1.02.1/now 2:1.02.90-2.2+deb8u1 amd64 [installed,local]
libdjvulibre-dev/now 3.5.25.4-4+b1 amd64 [installed,local]
libdjvulibre-text/now 3.5.25.4-4 all [installed,local]
libdjvulibre21/now 3.5.25.4-4+b1 amd64 [installed,local]
libedit2/now 3.1-20140620-2 amd64 [installed,local]
libelfg0/now 0.8.13-5 amd64 [installed,local]
liberror-perl/now 0.17-1.1 all [installed,local]
libevent-2.0-5/now 2.0.21-stable-2+deb8u1 amd64 [installed,local]
libevent-core-2.0-5/now 2.0.21-stable-2+deb8u1 amd64 [installed,local]
libevent-dev/now 2.0.21-stable-2+deb8u1 amd64 [installed,local]
libevent-extra-2.0-5/now 2.0.21-stable-2+deb8u1 amd64 [installed,local]
libevent-openssl-2.0-5/now 2.0.21-stable-2+deb8u1 amd64 [installed,local]
libevent-pthreads-2.0-5/now 2.0.21-stable-2+deb8u1 amd64 [installed,local]
libexif-dev/now 0.6.21-2 amd64 [installed,local]
libexif12/now 0.6.21-2 amd64 [installed,local]
libexpat1/now 2.1.0-6+deb8u3 amd64 [installed,local]
libexpat1-dev/now 2.1.0-6+deb8u3 amd64 [installed,local]
libffi-dev/now 3.1-2+b2 amd64 [installed,local]
libffi6/now 3.1-2+b2 amd64 [installed,local]
libfftw3-double3/now 3.3.4-2 amd64 [installed,local]
libfontconfig1/now 2.11.0-6.3+deb8u1 amd64 [installed,local]
libfontconfig1-dev/now 2.11.0-6.3+deb8u1 amd64 [installed,local]
libfreetype6/now 2.5.2-3+deb8u1 amd64 [installed,local]
libfreetype6-dev/now 2.5.2-3+deb8u1 amd64 [installed,local]
libgcc-4.9-dev/now 4.9.2-10 amd64 [installed,local]
libgcc1/now 1:4.9.2-10 amd64 [installed,local]
libgcrypt20/now 1.6.3-2+deb8u2 amd64 [installed,local]
libgd3/now 2.1.0-5+deb8u9 amd64 [installed,local]
libgdbm-dev/now 1.8.3-13.1 amd64 [installed,local]
libgdbm3/now 1.8.3-13.1 amd64 [installed,local]
libgdk-pixbuf2.0-0/now 2.31.1-2+deb8u5 amd64 [installed,local]
libgdk-pixbuf2.0-common/now 2.31.1-2+deb8u5 all [installed,local]
libgdk-pixbuf2.0-dev/now 2.31.1-2+deb8u5 amd64 [installed,local]
libgeoip-dev/now 1.6.2-4 amd64 [installed,local]
libgeoip1/now 1.6.2-4 amd64 [installed,local]
libgirepository-1.0-1/now 1.42.0-2.2 amd64 [installed,local]
libglib2.0-0/now 2.42.1-1+b1 amd64 [installed,local]
libglib2.0-bin/now 2.42.1-1+b1 amd64 [installed,local]
libglib2.0-data/now 2.42.1-1 all [installed,local]
libglib2.0-dev/now 2.42.1-1+b1 amd64 [installed,local]
libgmp10/now 2:6.0.0+dfsg-6 amd64 [installed,local]
libgnutls-deb0-28/now 3.3.8-6+deb8u4 amd64 [installed,local]
libgomp1/now 4.9.2-10 amd64 [installed,local]
libgpg-error0/now 1.17-3 amd64 [installed,local]
libgraphite2-3/now 1.3.6-1~deb8u1 amd64 [installed,local]
libgraphviz-dev/now 2.38.0-7 amd64 [installed,local]
libgssapi-krb5-2/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libgssrpc4/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libgvc6/now 2.38.0-7 amd64 [installed,local]
libgvpr2/now 2.38.0-7 amd64 [installed,local]
libharfbuzz0b/now 0.9.35-2 amd64 [installed,local]
libhogweed2/now 2.7.1-5+deb8u2 amd64 [installed,local]
libice-dev/now 2:1.0.9-1+b1 amd64 [installed,local]
libice6/now 2:1.0.9-1+b1 amd64 [installed,local]
libicu52/now 52.1-8+deb8u4 amd64 [installed,local]
libidn11/now 1.29-1+deb8u2 amd64 [installed,local]
libilmbase-dev/now 1.0.1-6.1 amd64 [installed,local]
libilmbase6/now 1.0.1-6.1 amd64 [installed,local]
libisl10/now 0.12.2-2 amd64 [installed,local]
libitm1/now 4.9.2-10 amd64 [installed,local]
libjasper-dev/now 1.900.1-debian1-2.4+deb8u2 amd64 [installed,local]
libjasper1/now 1.900.1-debian1-2.4+deb8u2 amd64 [installed,local]
libjbig-dev/now 2.1-3.1 amd64 [installed,local]
libjbig0/now 2.1-3.1 amd64 [installed,local]
libjpeg-dev/now 1:1.3.1-12 all [installed,local]
libjpeg62-turbo/now 1:1.3.1-12 amd64 [installed,local]
libjpeg62-turbo-dev/now 1:1.3.1-12 amd64 [installed,local]
libjs-excanvas/now 0.r3-3 all [installed,local]
libjs-jquery/now 1.7.2+dfsg-3.2 all [installed,local]
libk5crypto3/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libkadm5clnt-mit9/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libkadm5srv-mit9/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libkdb5-7/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libkeyutils1/now 1.5.9-5+b1 amd64 [installed,local]
libkmod2/now 18-3 amd64 [installed,local]
libkrb5-3/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libkrb5-dev/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
libkrb5support0/now 1.12.1+dfsg-19+deb8u2 amd64 [installed,local]
liblcms2-2/now 2.6-3+deb8u1 amd64 [installed,local]
liblcms2-dev/now 2.6-3+deb8u1 amd64 [installed,local]
libldap-2.4-2/now 2.4.40+dfsg-1+deb8u2 amd64 [installed,local]
liblocale-gettext-perl/now 1.05-8+b1 amd64 [installed,local]
liblqr-1-0/now 0.4.2-2 amd64 [installed,local]
liblqr-1-0-dev/now 0.4.2-2 amd64 [installed,local]
liblsan0/now 4.9.2-10 amd64 [installed,local]
libltdl-dev/now 2.4.2-1.11+b1 amd64 [installed,local]
libltdl7/now 2.4.2-1.11+b1 amd64 [installed,local]
liblzma-dev/now 5.1.1alpha+20120614-2+b3 amd64 [installed,local]
liblzma5/now 5.1.1alpha+20120614-2+b3 amd64 [installed,local]
liblzo2-2/now 2.08-1.2 amd64 [installed,local]
libmagic1/now 1:5.22+15-2+deb8u3 amd64 [installed,local]
libmagickcore-6-arch-config/now 8:6.8.9.9-5+deb8u8 amd64 [installed,local]
libmagickcore-6-headers/now 8:6.8.9.9-5+deb8u8 all [installed,local]
libmagickcore-6.q16-2/now 8:6.8.9.9-5+deb8u8 amd64 [installed,local]
libmagickcore-6.q16-2-extra/now 8:6.8.9.9-5+deb8u8 amd64 [installed,local]
libmagickcore-6.q16-dev/now 8:6.8.9.9-5+deb8u8 amd64 [installed,local]
libmagickcore-dev/now 8:6.8.9.9-5+deb8u8 all [installed,local]
libmagickwand-6-headers/now 8:6.8.9.9-5+deb8u8 all [installed,local]
libmagickwand-6.q16-2/now 8:6.8.9.9-5+deb8u8 amd64 [installed,local]
libmagickwand-6.q16-dev/now 8:6.8.9.9-5+deb8u8 amd64 [installed,local]
libmagickwand-dev/now 8:6.8.9.9-5+deb8u8 all [installed,local]
libmount1/now 2.25.2-6 amd64 [installed,local]
libmpc3/now 1.0.2-1 amd64 [installed,local]
libmpfr4/now 3.1.2-2 amd64 [installed,local]
libmysqlclient-dev/now 5.5.54-0+deb8u1 amd64 [installed,local]
libmysqlclient18/now 5.5.54-0+deb8u1 amd64 [installed,local]
libncurses5/now 5.9+20140913-1+b1 amd64 [installed,local]
libncurses5-dev/now 5.9+20140913-1+b1 amd64 [installed,local]
libncursesw5/now 5.9+20140913-1+b1 amd64 [installed,local]
libnettle4/now 2.7.1-5+deb8u2 amd64 [installed,local]
libopenexr-dev/now 1.6.1-8 amd64 [installed,local]
libopenexr6/now 1.6.1-8 amd64 [installed,local]
libp11-kit0/now 0.20.7-1 amd64 [installed,local]
libpam-modules/now 1.1.8-3.1+deb8u2 amd64 [installed,local]
libpam-modules-bin/now 1.1.8-3.1+deb8u2 amd64 [installed,local]
libpam-runtime/now 1.1.8-3.1+deb8u2 all [installed,local]
libpam0g/now 1.1.8-3.1+deb8u2 amd64 [installed,local]
libpango-1.0-0/now 1.36.8-3 amd64 [installed,local]
libpangocairo-1.0-0/now 1.36.8-3 amd64 [installed,local]
libpangoft2-1.0-0/now 1.36.8-3 amd64 [installed,local]
libpathplan4/now 2.38.0-7 amd64 [installed,local]
libpcre3/now 2:8.35-3.3+deb8u4 amd64 [installed,local]
libpcre3-dev/now 2:8.35-3.3+deb8u4 amd64 [installed,local]
libpcrecpp0/now 2:8.35-3.3+deb8u4 amd64 [installed,local]
libpixman-1-0/now 0.32.6-3 amd64 [installed,local]
libpixman-1-dev/now 0.32.6-3 amd64 [installed,local]
libpng12-0/now 1.2.50-2+deb8u3 amd64 [installed,local]
libpng12-dev/now 1.2.50-2+deb8u3 amd64 [installed,local]
libpq-dev/now 9.4.10-0+deb8u1 amd64 [installed,local]
libpq5/now 9.4.10-0+deb8u1 amd64 [installed,local]
libprocps3/now 2:3.3.9-9 amd64 [installed,local]
libpsl0/now 0.5.1-1 amd64 [installed,local]
libpthread-stubs0-dev/now 0.3-4 amd64 [installed,local]
libpython-stdlib/now 2.7.9-1 amd64 [installed,local]
libpython2.7-minimal/now 2.7.9-2+deb8u1 amd64 [installed,local]
libpython2.7-stdlib/now 2.7.9-2+deb8u1 amd64 [installed,local]
libquadmath0/now 4.9.2-10 amd64 [installed,local]
libreadline-dev/now 6.3-8+b3 amd64 [installed,local]
libreadline6/now 6.3-8+b3 amd64 [installed,local]
libreadline6-dev/now 6.3-8+b3 amd64 [installed,local]
librsvg2-2/now 2.40.5-1+deb8u2 amd64 [installed,local]
librsvg2-common/now 2.40.5-1+deb8u2 amd64 [installed,local]
librsvg2-dev/now 2.40.5-1+deb8u2 amd64 [installed,local]
librtmp1/now 2.4+20150115.gita107cef-1 amd64 [installed,local]
libsasl2-2/now 2.1.26.dfsg1-13+deb8u1 amd64 [installed,local]
libsasl2-modules-db/now 2.1.26.dfsg1-13+deb8u1 amd64 [installed,local]
libselinux1/now 2.3-2 amd64 [installed,local]
libsemanage-common/now 2.3-1 all [installed,local]
libsemanage1/now 2.3-1+b1 amd64 [installed,local]
libsepol1/now 2.3-2 amd64 [installed,local]
libserf-1-1/now 1.3.8-1 amd64 [installed,local]
libsigsegv2/now 2.10-4+b1 amd64 [installed,local]
libslang2/now 2.3.0-2 amd64 [installed,local]
libsm-dev/now 2:1.2.2-1+b1 amd64 [installed,local]
libsm6/now 2:1.2.2-1+b1 amd64 [installed,local]
libsmartcols1/now 2.25.2-6 amd64 [installed,local]
libsqlite3-0/now 3.8.7.1-1+deb8u2 amd64 [installed,local]
libsqlite3-dev/now 3.8.7.1-1+deb8u2 amd64 [installed,local]
libss2/now 1.42.12-2+b1 amd64 [installed,local]
libssh2-1/now 1.4.3-4.1+deb8u1 amd64 [installed,local]
libssl-dev/now 1.0.1t-1+deb8u6 amd64 [installed,local]
libssl1.0.0/now 1.0.1t-1+deb8u6 amd64 [installed,local]
libstdc++-4.9-dev/now 4.9.2-10 amd64 [installed,local]
libstdc++6/now 4.9.2-10 amd64 [installed,local]
libsvn1/now 1.8.10-6+deb8u4 amd64 [installed,local]
libsystemd0/now 215-17+deb8u6 amd64 [installed,local]
libtasn1-6/now 4.2-3+deb8u2 amd64 [installed,local]
libtext-charwidth-perl/now 0.04-7+b3 amd64 [installed,local]
libtext-iconv-perl/now 1.7-5+b2 amd64 [installed,local]
libtext-wrapi18n-perl/now 0.06-7 all [installed,local]
libthai-data/now 0.1.21-1 all [installed,local]
libthai0/now 0.1.21-1 amd64 [installed,local]
libtiff5/now 4.0.3-12.3+deb8u2 amd64 [installed,local]
libtiff5-dev/now 4.0.3-12.3+deb8u2 amd64 [installed,local]
libtiffxx5/now 4.0.3-12.3+deb8u2 amd64 [installed,local]
libtinfo-dev/now 5.9+20140913-1+b1 amd64 [installed,local]
libtinfo5/now 5.9+20140913-1+b1 amd64 [installed,local]
libtool/now 2.4.2-1.11 all [installed,local]
libtsan0/now 4.9.2-10 amd64 [installed,local]
libubsan0/now 4.9.2-10 amd64 [installed,local]
libudev1/now 215-17+deb8u6 amd64 [installed,local]
libusb-0.1-4/now 2:0.1.12-25 amd64 [installed,local]
libustr-1.0-1/now 1.0.4-3+b2 amd64 [installed,local]
libuuid1/now 2.25.2-6 amd64 [installed,local]
libvpx1/now 1.3.0-3 amd64 [installed,local]
libwebp-dev/now 0.4.1-1.2+b2 amd64 [installed,local]
libwebp5/now 0.4.1-1.2+b2 amd64 [installed,local]
libwebpdemux1/now 0.4.1-1.2+b2 amd64 [installed,local]
libwebpmux1/now 0.4.1-1.2+b2 amd64 [installed,local]
libwmf-dev/now 0.2.8.4-10.3+deb8u2 amd64 [installed,local]
libwmf0.2-7/now 0.2.8.4-10.3+deb8u2 amd64 [installed,local]
libx11-6/now 2:1.6.2-3 amd64 [installed,local]
libx11-data/now 2:1.6.2-3 all [installed,local]
libx11-dev/now 2:1.6.2-3 amd64 [installed,local]
libxau-dev/now 1:1.0.8-1 amd64 [installed,local]
libxau6/now 1:1.0.8-1 amd64 [installed,local]
libxcb-render0/now 1.10-3+b1 amd64 [installed,local]
libxcb-render0-dev/now 1.10-3+b1 amd64 [installed,local]
libxcb-shm0/now 1.10-3+b1 amd64 [installed,local]
libxcb-shm0-dev/now 1.10-3+b1 amd64 [installed,local]
libxcb1/now 1.10-3+b1 amd64 [installed,local]
libxcb1-dev/now 1.10-3+b1 amd64 [installed,local]
libxdmcp-dev/now 1:1.1.1-1+b1 amd64 [installed,local]
libxdmcp6/now 1:1.1.1-1+b1 amd64 [installed,local]
libxdot4/now 2.38.0-7 amd64 [installed,local]
libxext-dev/now 2:1.3.3-1 amd64 [installed,local]
libxext6/now 2:1.3.3-1 amd64 [installed,local]
libxml2/now 2.9.1+dfsg1-5+deb8u4 amd64 [installed,local]
libxml2-dev/now 2.9.1+dfsg1-5+deb8u4 amd64 [installed,local]
libxpm4/now 1:3.5.12-0+deb8u1 amd64 [installed,local]
libxrender-dev/now 1:0.9.8-1+b1 amd64 [installed,local]
libxrender1/now 1:0.9.8-1+b1 amd64 [installed,local]
libxslt1-dev/now 1.1.28-2+deb8u2 amd64 [installed,local]
libxslt1.1/now 1.1.28-2+deb8u2 amd64 [installed,local]
libxt-dev/now 1:1.1.4-1+b1 amd64 [installed,local]
libxt6/now 1:1.1.4-1+b1 amd64 [installed,local]
libyaml-0-2/now 0.1.6-3 amd64 [installed,local]
libyaml-dev/now 0.1.6-3 amd64 [installed,local]
linux-libc-dev/now 3.16.39-1+deb8u2 amd64 [installed,local]
login/now 1:4.2-3+deb8u3 amd64 [installed,local]
lsb-base/now 4.1+Debian13+nmu1 all [installed,local]
m4/now 1.4.17-4 amd64 [installed,local]
make/now 4.0-8.1 amd64 [installed,local]
mawk/now 1.3.3-17 amd64 [installed,local]
mercurial/now 3.1.2-2+deb8u3 amd64 [installed,local]
mercurial-common/now 3.1.2-2+deb8u3 all [installed,local]
mime-support/now 3.58 all [installed,local]
mount/now 2.25.2-6 amd64 [installed,local]
multiarch-support/now 2.19-18+deb8u7 amd64 [installed,local]
mysql-common/now 5.5.54-0+deb8u1 all [installed,local]
ncurses-base/now 5.9+20140913-1 all [installed,local]
ncurses-bin/now 5.9+20140913-1+b1 amd64 [installed,local]
netbase/now 5.3 all [installed,local]
openssh-client/now 1:6.7p1-5+deb8u3 amd64 [installed,local]
openssl/now 1.0.1t-1+deb8u6 amd64 [installed,local]
passwd/now 1:4.2-3+deb8u3 amd64 [installed,local]
patch/now 2.7.5-1 amd64 [installed,local]
perl/now 5.20.2-3+deb8u6 amd64 [installed,local]
perl-base/now 5.20.2-3+deb8u6 amd64 [installed,local]
perl-modules/now 5.20.2-3+deb8u6 all [installed,local]
pkg-config/now 0.28-1 amd64 [installed,local]
procps/now 2:3.3.9-9 amd64 [installed,local]
python/now 2.7.9-1 amd64 [installed,local]
python-bzrlib/now 2.6.0+bzr6595-6 amd64 [installed,local]
python-configobj/now 5.0.6-1 all [installed,local]
python-minimal/now 2.7.9-1 amd64 [installed,local]
python-six/now 1.8.0-1 all [installed,local]
python2.7/now 2.7.9-2+deb8u1 amd64 [installed,local]
python2.7-minimal/now 2.7.9-2+deb8u1 amd64 [installed,local]
readline-common/now 6.3-8 all [installed,local]
sed/now 4.2.2-4+deb8u1 amd64 [installed,local]
sensible-utils/now 0.0.9 all [installed,local]
shared-mime-info/now 1.3-1 amd64 [installed,local]
startpar/now 0.59-3 amd64 [installed,local]
subversion/now 1.8.10-6+deb8u4 amd64 [installed,local]
systemd/now 215-17+deb8u6 amd64 [installed,local]
systemd-sysv/now 215-17+deb8u6 amd64 [installed,local]
sysv-rc/now 2.88dsf-59 all [installed,local]
sysvinit-utils/now 2.88dsf-59 amd64 [installed,local]
tar/now 1.27.1-2+deb8u1 amd64 [installed,local]
tzdata/now 2017a-0+deb8u1 all [installed,local]
ucf/now 3.0030 all [installed,local]
udev/now 215-17+deb8u6 amd64 [installed,local]
util-linux/now 2.25.2-6 amd64 [installed,local]
wget/now 1.16-1+deb8u1 amd64 [installed,local]
x11-common/now 1:7.7+7 all [installed,local]
x11proto-core-dev/now 7.0.26-1 all [installed,local]
x11proto-input-dev/now 2.3.1-1 all [installed,local]
x11proto-kb-dev/now 1.0.6-2 all [installed,local]
x11proto-render-dev/now 2:0.11.1-2 all [installed,local]
x11proto-xext-dev/now 7.3.0-1 all [installed,local]
xorg-sgml-doctools/now 1:1.11-1 all [installed,local]
xtrans-dev/now 1.3.4-1 all [installed,local]
xz-utils/now 5.1.1alpha+20120614-2+b3 amd64 [installed,local]
zlib1g/now 1:1.2.8.dfsg-2+b1 amd64 [installed,local]
zlib1g-dev/now 1:1.2.8.dfsg-2+b1 amd64 [installed,local]

@chearon
Copy link
Member

chearon commented Apr 20, 2017

Thanks, looks like Jessie has a version of glib less than 2.44 too... I'm pretty sure that's the reason. I guess I'll have to push up the old binaries tomorrow. Pango won't work anymore but this has seemed to cause more people issues than that

@chearon
Copy link
Member

chearon commented Apr 20, 2017

@kannix @danriti I just restored the old binaries for 1.4.0, 1.5.0, and 1.6.0, can someone verify that the issue is gone? I ran a simple test in Travis and it seemed to work again

@danriti
Copy link
Author

danriti commented Apr 20, 2017

@chearon, version 1.6.0 looks good 👍

[driti@driti-mb ~]$ docker run --rm -it node:6-onbuild /bin/bash
root@cfed4386dbaf:/usr/src/app# npm install canvas-prebuilt@1.6.0
...
root@cfed4386dbaf:/usr/src/app# node -e "var canvas = require('canvas-prebuilt');"
root@cfed4386dbaf:/usr/src/app# echo $?
0

@MalcolmSmithUK
Copy link

MalcolmSmithUK commented Apr 20, 2017

We've had this error on Linux builds without a glib install. What version will be the minimum requirement?

EDIT - Tracked it down to the following:

GNU C Library (Ubuntu EGLIBC 2.19-0ubuntu6.9) stable release version 2.19, by Roland McGrath et al.
Copyright (C) 2014 Free Software Foundation,

module.js:440
 return process.dlopen(module, path._makeLong(filename));
                ^

Error: /home/x/project/node_modules/canvas-prebuilt/canvas/build/Release/libgobject-2.0.so.0: undefined symbol: g_option_group_unref
   at Error (native)
   at Object.Module._extensions..node (module.js:440:18)
   at Module.load (module.js:357:32)
   at Function.Module._load (module.js:314:12)
   at Module.require (module.js:367:17)
   at require (internal/module.js:20:19)
   at Object.<anonymous> (/home/x/project/node_modules/canvas-prebuilt/canvas/lib/bindings.js:3:18)
   at Module._compile (module.js:413:34)
   at Object.Module._extensions..js (module.js:422:10)
   at Module.load (module.js:357:32)

@chearon
Copy link
Member

chearon commented Apr 20, 2017

@MalcolmSmithUK it's actually the version of glib, not glibc that was the problem (the two are very different despite the names).

Could you try removing and reinstalling canvas-prebuilt? The problem should be fixed now, and I'll make sure to test future updates with older versions of glib

@chearon
Copy link
Member

chearon commented May 11, 2017

Closing because I chose to use the old build, which resolves everyone's issues but reopens #6

@sorb999
Copy link

sorb999 commented Sep 26, 2018

I am getting the same error on windows7.. I have added canvas-prebuilt in package.json and it is presented in node_modules as well. But var canvas = require("canvas-prebuilt") gives error VM41 module.js:682 Uncaught Error: The specified procedure could not be found. Even after clearing cache.

@chearon
Copy link
Member

chearon commented Oct 1, 2018

That sounds different from the discussion above, which was about glibc not being binary compatible with user's OS. What version of node and canvas-prebuilt are you using?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants