SVG Cairo support

Seems that Cairo package in my computer does not recognize the SVG image format.

I don’t know if JHBuild could be set somehow to this support could be enabled.

According to the instructions given at https://developer.gnome.org/gtkmm-tutorial/stable/sec-setting-up-jhbuild.html.en, I set my $HOME/.config/jhbuildrc as follows,

moduleset = 'gnome-suites-core-deps-latest'
modules = [ 'gtkmm' ]

Cairo does not load SVG files. At most, it can generate them through the SVG surface. The SVG support is generally enabled by default, and it only depends on the PNG loading library.

If you want to load an SVG file and put it inside a Cairo surface, you will need librsvg instead.

Gdk::Pixbufs images, after my JHBuild installation, only supports the following formats (Gdk::Pixbuf::get_formats(), get_name()): png, jpeg, ani, bmp, gif, icns, ico, pnm, qtif, tga, tiff, xbm & xpm.

How can the format SVG be added ?

As I said above: you need librsvg.

librsvg is already installed…

$ pkg-config --modversion librsvg-2.0
2.44.10

but probably not well installed… because there is not SVG support.

cairo $ ./configure
[…]
cairo (version 1.17.4 [snapshot]) will be compiled with:

The following surface backends:
  Image:         yes (always builtin)
  Recording:     yes (always builtin)
  Observer:      yes (always builtin)
  Mime:          yes (always builtin)
  Tee:           no (disabled, use --enable-tee to enable)
  XML:           no (disabled, use --enable-xml to enable)
  Xlib:          yes
  Xlib Xrender:  yes
  Qt:            no (disabled, use --enable-qt to enable)
  Quartz:        no (requires CoreGraphics framework)
  Quartz-image:  no (disabled, use --enable-quartz-image to enable)
  XCB:           yes
  Win32:         no (requires a Win32 platform)
  OS2:           no (disabled, use --enable-os2 to enable)
  CairoScript:   yes
  PostScript:    yes
  PDF:           yes
  SVG:           yes
  OpenGL:        no (disabled, use --enable-gl to enable)
  OpenGL ES 2.0: no (disabled, use --enable-glesv2 to enable)
  OpenGL ES 3.0: no (disabled, use --enable-glesv3 to enable)
  BeOS:          no (disabled, use --enable-beos to enable)
  DirectFB:      no (disabled, use --enable-directfb to enable)
  OpenVG:        no (disabled, use --enable-vg to enable)
  DRM:           no (disabled, use --enable-drm to enable)
  Cogl:          no (disabled, use --enable-cogl to enable)

The following font backends:
  User:          yes (always builtin)
  FreeType:      yes
  Fontconfig:    yes
  Win32:         no (requires a Win32 platform)
  Quartz:        no (requires CoreGraphics framework)

The following functions:
  PNG functions:   yes
  GLX functions:   no (not required by any backend)
  WGL functions:   no (not required by any backend)
  EGL functions:   no (not required by any backend)
  X11-xcb functions: no (disabled, use --enable-xlib-xcb to enable)
  XCB-shm functions: yes

The following features and utilities:
  cairo-trace:                yes
  cairo-script-interpreter:   yes

And the following internal features:
  pthread:       yes
  gtk-doc:       no
  gcov support:  no
  symbol-lookup: no (requires bfd)
  test surfaces: no (disabled, use --enable-test-surfaces to enable)
  ps testing:    no (requires libspectre)
  pdf testing:   no (requires poppler-glib >= 0.17.4)
  svg testing:   no (requires librsvg-2.0 >= 2.35.0)

How could librsvg be added into JHBuild ‘jail’ ?

The SVG loader for gdk-pixbuf is part of librsvg. You need to install it, either inside jhbuild or in your system. Some distributions might split it into its own package.

jhbuild build librsvg

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.