[Ftp-release] [cairo] [cairo-announce] cairo release 1.8.8 now available

Chris Wilson chris at chris-wilson.co.uk
Tue Jun 16 06:58:33 PDT 2009

A new cairo release 1.8.8 is now available from:


which can be verified with:

	e4b8b219427d1ca3dc95f5f44914dce1ae0c3766  cairo-1.8.8.tar.gz

	(signed by Chris Wilson)

Additionally, a git clone of the source tree:

	git clone git://git.cairographics.org/git/cairo

will include a signed 1.8.8 tag which points to a commit named:

which can be verified with:
	git verify-tag 1.8.8

and can be checked out with a command such as:
	git checkout -b build 1.8.8

The cairo community is pleased to announce the 1.8.8 release of the
cairo graphics library. This is the fourth update to cairo's stable
1.8 series and contains a small number of bug fixes (in particular a
few corrections to the documentation and a few fixes in the FreeType font
backend). This is being released just over six months after cairo 1.8.6.

We recommend that everyone using cairo upgrade to 1.8.8.


Build fixes
There were reports of incompatibilities with the autotools bundled in with
the 1.8.6 tarball.  This release has been built with automake-1.10.2 and

The configure check for FreeType has been improved:

   typo in check for version of freetype in configure script

Compilation on 64-bit MacOS/X fixes:

  Cannot build cairo_quartz_font_face_create_for_atsu_font_id on 64-bit Mac OS X

Bug fixes
Uninitialised status return within _cairo_clip_intersect_mask(). This caused
random crashes and general mayhem as an error could be generated causing all
rendering to the context to stop.

Avoid transforming nearly-degenerate matrices into degenerate matrices:

   Painting stops in this case, using -moz-transform: scale, rotate and video

A few FreeType font handling bugs were fixed:

   Rendering with PANGO_GRAVITY_EAST leads to different results with image and pdf

   Don't call FT_Done_Face() on faces we did not create

   zombie ft_font_face / ft_unscaled_font mutual referencing problems

Ensure win32 font backend sets the return value to -1 (indicating the absent
glyph) if the font index lookup for the unicode character fails. And
similarly fix a bug where a fatal error was raised for an invalid glyph.

   cairo_scaled_font_glyph_extents breaks with invalid glyph id

Various improvements to the documentation, reported by Truc Troung:


All changes from cairo 1.8.6 to 1.8.8
Adrian Johnson (1):
      Ensure win32 font index_to_ucs4() sets ucs4 to -1 if lookup fails

Behdad Esfahbod (1):
      [ft] Fix vertical advance metrics of bitmap fonts (#21985)

Chris Wilson (25):
      Increment version to 1.8.7 after the 1.8.6 release.
      [png] Correct documentation to avoid reference to NULL
      [cairo] Describe the restrictions upon cairo_set_tolerance()
      [test] Sync with memfault headers.
      [test] Relax APPROX_EQUALS condition
      [test] Refresh pdf reference images
      [test] Update smask text
      [test] Refresh ghostscript reference images
      [configure] Replace awk comparator with an aclocal version
      [cairo] Update documentation for bug 20154
      [font-options] Doc typo
      [image] Doc typo.
      [cairo] Doc typo.
      [pattern] Typo in document
      [test] Ensure ppm are in correct byte orientation.
      [test] fix bad merge in previous commit
      [boilerplate] Read big-endian images from any2ppm
      [ft] Don't call FT_Done_Face() on a face we do not own
      [win32-font] Non-fatal error from GetGlyphOutlineW(GGO_METRICS)
      [NEWS] Release notes for 1.8.8
      [NEWS] Correct date.
      [NEWS] Tweak line break.
      [test] New smask reference image for xlib.
      Increment version to 1.8.8
      Post release version increment to 1.8.9

Jeff Muizelaar (2):
      Fix _compute_transform to check for nearly degenerate matrices
      Fix compilation on OS X when compiling for 64 bit

Karl Tomlinson (2):
      [ft] Don't call FT_Done_Face() on faces we did not create
      [ft] Resolve mutual referencing problems with zombie faces

M Joonas Pihlaja (1):
      [clip] Fix uninitialised status return in _cairo_clip_intersect_mask()

What is cairo
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System, quartz, win32, and image buffers, as well as PDF, PostScript,
and SVG file output. Experimental backends include OpenGL (through
glitz), XCB, BeOS, OS/2, and DirectFB.

Cairo is designed to produce consistent output on all output media
while taking advantage of display hardware acceleration when available
(for example, through the X Render Extension).

The cairo API provides operations similar to the drawing operators of
PostScript and PDF. Operations in cairo include stroking and filling
cubic Bézier splines, transforming and compositing translucent images,
and antialiased text rendering. All drawing operations can be
transformed by any affine transformation (scale, rotation, shear,

Cairo has been designed to let you draw anything you want in a modern
2D graphical user interface.  At the same time, the cairo API has been
designed to be as fun and easy to learn as possible. If you're not
having fun while programming with cairo, then we have failed
somewhere---let us know and we'll try to fix it next time around.

Cairo is free software and is available to be redistributed and/or
modified under the terms of either the GNU Lesser General Public
License (LGPL) version 2.1 or the Mozilla Public License (MPL) version

Where to get more information about cairo
The primary source of information about cairo is:


The latest versions of cairo can always be found at:


Documentation on using cairo and frequently-asked questions:


Mailing lists for contacting cairo users and developers:


Roadmap and unscheduled things to do, (please feel free to help out):


cairo-announce mailing list
cairo-announce at lists.cairographics.org
cairo mailing list
cairo at cairographics.org

More information about the Ftp-release mailing list