Search code examples
node.jscanvasamazon-ec2node-canvas

Installing node-canvas on EC2 - fontconfig.h build error


I am trying to get node-canvas to build via npm install on an AWS EC2 instance. I'm trying to use the latest (Feb 2016) version of canvas, 1.3.10

I followed the instructions outlined here: https://github.com/Automattic/node-canvas/wiki/Installation---Amazon-Linux-AMI-(EC2)

And seemingly got libpng, jpeg, pixman, freetype and cairo installed fine.

I then did:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

sudo yum install giflib-devel

to fix some build errors, and once again tried an npm install.

Now the build is failing due to a missing file error:

make: Entering directory `/home/ec2-user/signal/app/node_modules/canvas/build'
  SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node
  COPY Release/canvas-postbuild.node
  CXX(target) Release/obj.target/canvas/src/Canvas.o
  CXX(target) Release/obj.target/canvas/src/CanvasGradient.o
  CXX(target) Release/obj.target/canvas/src/CanvasPattern.o
  CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o
  CXX(target) Release/obj.target/canvas/src/color.o
  CXX(target) Release/obj.target/canvas/src/Image.o
  CXX(target) Release/obj.target/canvas/src/ImageData.o
  CXX(target) Release/obj.target/canvas/src/init.o
  CXX(target) Release/obj.target/canvas/src/FontFace.o
../src/FontFace.cc:9:35: fatal error: fontconfig/fontconfig.h: No such file or directory
 #include <fontconfig/fontconfig.h>

What am I missing here? I can find this file on my local OSX (where canvas is running fine), under opt/X11/include/fontconfig - how do I ship that up to EC2 in a sensible way? Otherwise, how might I work round this problem?

Massive thanks in advance for any help!


Solution

  • You may need to install fontconfig-devel via yum to resolve that dependency