djangoamazon-web-servicesamazon-elastic-beanstalkweasyprint

Django Weasyprint on Elastic Beanstalk - Could not load GDK-Pixbuf


I've installed weasyprint on Elastic Beanstalk. The printing of html templates is working so far but im not able to print svg images.

Weasyprint throws the following error:

Failed to load image at "https://myurl/media/X247QAQ2IO.svg" (Could not load GDK-Pixbuf. PNG and SVG are the only image formats available.)

Do I need gdk-pixbuf to print SVGs? And if so how can I install it on Amazon Linux?

Yum does not have gdk-pixbuf2 available for installation

Solution

  • I found a solution that worked for me by manually building gdk-pixbuf2, My script below derived from https://gist.github.com/whyvez/1e0212a35da97aa8f1b1 where they needed to install image magic

    weazy.conf

    files:
     "/opt/elasticbeanstalk/hooks/appdeploy/pre/00_instal_weasyprint_prerequisites.sh":
        mode: "000755"
        owner: root
        group: root
        content: |
          #!/usr/bin/env bash
    
          yum install -y libxml2-devel libxslt-devel python-devel redhat-rpm-config libffi-devel cairo pango
    
          export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig
          export PATH=/usr/bin:$PATH
          export LDFLAGS=-L/usr/lib64:/usr/lib
          export LD_LIBRARY_PATH=/usr/lib64:/usr/lib
          export CPPFLAGS=-I/usr/include
    
          sudo yum-config-manager --enable epel
          sudo yum update -y
          sudo yum install -y gcc gcc-c++ glib2-devel.x86_64 libxml2-devel.x86_64 libpng-devel.x86_64 \
          libjpeg-turbo-devel.x86_64 gobject-introspection.x86_64 gobject-introspection-devel.x86_64
    
          wget http://ftp.gnome.org/pub/GNOME/sources/libcroco/0.6/libcroco-0.6.8.tar.xz
          tar xvfJ libcroco-0.6.8.tar.xz
          cd libcroco-0.6.8
          ./configure --prefix=/usr
          make
          sudo make install
          cd ..
    
          wget http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.28/gdk-pixbuf-2.28.2.tar.xz
          tar xvfJ gdk-pixbuf-2.28.2.tar.xz
          cd gdk-pixbuf-2.28.2
          ./configure --prefix=/usr --without-libtiff
          make
          sudo make install
          cd ..
    
          sudo yum install -y pixman-devel.x86_64 harfbuzz-devel.x86_64 freetype-devel.x86_64
    
          wget wget http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.10.91.tar.gz
          tar xvf fontconfig-2.10.91.tar.gz
          cd fontconfig-2.10.91
          ./configure --prefix=/usr --enable-libxml2
          make
          sudo make install
          cd ..
    
          wget http://cairographics.org/releases/cairo-1.12.14.tar.xz
          tar xvfJ cairo-1.12.14.tar.xz
          cd cairo-1.12.14
          ./configure --prefix=/usr
          make
          sudo make install
          cd ..
    
          wget http://ftp.gnome.org/pub/GNOME/sources/pango/1.34/pango-1.34.1.tar.xz
          tar xvfJ pango-1.34.1.tar.xz
          cd pango-1.34.1
          ./configure --prefix=/usr
          make
          sudo make install
          cd ..
    
          wget http://ftp.gnome.org/pub/GNOME/sources/librsvg/2.40/librsvg-2.40.6.tar.xz
          tar xvfJ librsvg-2.40.6.tar.xz
          cd librsvg-2.40.6
          ./configure --prefix=/usr
          make
          sudo make install
          cd ..
    
    
          sudo ldconfig /usr/lib