[cairo] [cairo-announce] cairo release 1.4.12 now available

Carl Worth cworth at cworth.org
Tue Nov 27 08:15:50 PST 2007

A new cairo release 1.4.12 is now available from:


    which can be verified with:

        45d5257e5a0c1524bcc25660a96b2c79d012ad3f  cairo-1.4.12.tar.gz

        (signed by Carl Worth)

  Additionally, a git clone of the source tree:

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

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

    which can be verified with:
        git verify-tag 1.4.12

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

This is the sixth update in cairo's stable 1.4 series. It comes five
months after the 1.4.10 release. This fix includes various bug fixes
originally developed during the 1.5.x development and backported to

We hope that this is a nice release, of similar robustness to 1.4.10
but with many additional fixes. Distributions might choose to use the
new 1.4.12 directly. Or the most conservative distributions might use
the 1.4.12 branch as a starting point for looking for the most
significant bug fixes to patch onto 1.4.10.

Have fun with cairo!


Summary of changes in cairo 1.4.12 since 1.4.10
Some of the most significant bug fixes prevent crashes:

  * Avoid overflow when allocating large buffers (Vladimir Vukicevic)

  * Fix crash with cairo_pattern_set_user_data (Carl Worth)

  * Fix broken locking in cairo-ft error path (Chris Wilson)

  * Avoid crash when cleaning up after Render extension (Carl Worth)

  * Avoid crash for zero-sized bitmap glyph (Chris Wilson)

  * Avoid crash with type-1 fonts and ft and atsui enabled (Brian Ewins)

  * Fix many error-handling cases in the Quartz/ATSUI code (Brian Ewins)

  * Eliminate cairo_stroke crash with scaling near zero (Carl Worth)

Other fixes address rendering problems:

  * Fix PDF linear gradients without stops at 0.0 and 1.0 (Adrian Johnson)

  * Fix PDF CFF subsetting to work with Apple Preview (Adrian Johnson)

  * Report proper errors on out-of-memory on win32 (Vladimir Vukicevic)

  * Fix EXTEND_NONE gradients for cairo-quartz (Brian Ewins)

  * Fix odd-number-of-dashes dashing for cairo-quartz (Brian Ewins)

  * Fix erroneous results from cairo_stroke_extents (Carl Worth)

  * Force non-AA text when bitmap strikes are available (Keith Packard)

  * Fix cairo-atsui font metrics (Richard Hult)

And some avoid raising cairo errors for innocent problems:

  * Avoid drawing shutdown for glyph-not-found in font (Behdad Esfahbod)

  * Don't raise an error for creating an empty path (Chris Wilson)

At least one optimization managed to sneak in:

  * Free glyph surfaces after uploading to X server cache (Behdad Esfahbod)

And there are a few very minor fixes, (such as build fixes).

Note: For anyone attempting to backport these fixes to 1.4.10, please
take care since several of the fixes are spread across multiple
commits in cairo's history. And the related commits are not always
adjacent to each other. Please don't hesitate to ask for help or
review of anything you might do.

What is cairo
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System, win32, and image buffers, as well as PDF, PostScript, and SVG
file output. Experimental backends include OpenGL (through glitz),
Quartz, 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 including 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 releases of cairo can be found at:


Snapshots of in-development versions of cairo:


The programming manual for using cairo:


Mailing lists for contacting cairo users and developers:


Answers to some frequently asked questions about cairo:


Every commit between 1.4.10 and 1.4.12
Adrian Johnson (7):
      CFF Subsetting: fix integer encoding bug
      PDF: Fix regression in pdf_surface_set_size()
      Fix PDF gradients bug
      Eliminate unclipped CLEAR from meta-surface playback
      Create meta-surface source image with same content type as the
      Truetype Subsetting: Avoid failing when fonts are missing optional tables
      CFF Subetting: Fix for #10849

Behdad Esfahbod (6):
      [configure.in] Make PS backend require zlib too (#12210)
      [configure.in] Fix non-pkgconfig Xrender detection path (#4724)
      [cairo-ft-font] Ignore FT_Load_Glyph errors other than out-of-memory
      [ChangeLog.mk] Fix changelog generation rules
      [cairo-xlib] Release glyph surfaces if we made them to be generated

Brian Ewins (14):
      [type1-subset] only subset ft fonts
      do not ignore errors in glyph paths
      do not ignore ATSUI errors.
      do not ignore errors when creating styles.
      do not ignore errors in setup_source
      do not ignore errors, return NULL instead (moz#874315)
      do not return a cairo_status_t of UNSUPPORTED
      call _cairo_error on failure
      Implement EXTEND_NONE for gradients.
      fix dash-zero-length test
      [quartz] return status instead of CGShadingRef
      [quartz] return status instead of cairo_quartz_surface_t
      [quartz] return status instead of CGPatternRef
      [configure.in] fix atsui experimental warning

Carl Worth (11):
      Update version to 1.4.11 after the 1.4.10 release
      Add missing definition of INT32_MAX
      Ensure that a copied pattern gets its own user_data array
      Ensure the Render extension is initialized before calling XESetCloseDisplay
      Fix typo in _cairo_gstate_fini
      Limit miters for small angles
      Fix degenerate-pen test case by removing the triggering assertion
      Update two PS reference images for mysterious single-pixel change
      Mark bitmap-font as XFAIL
      NEWS: Add notes for cairo 1.4.12
      Increment version to 1.4.12 and 13:6:11

Chris Heath (1):
      [autogen.sh] Tolerate tput failure (#12757)

Chris Wilson (11):
      [Makefile.am] Add missing headers and reference images.
      [cairo-ft-font] Decrement lock count on error.
      [cairo-ft-font] Early detection of a zero sized bitmap.
      [cairo-path] Don't raise an error when attempting to create an empty path.
      [malloc] Check for integer overflow when realloc'ing.
      [malloc] Take advantage of calloc() argument checking.
      [cairo-path] Check for an empty path in cairo_append_path().
      [cairo-scaled-font] Acquire mutex around _cairo_scaled_font_glyph_path().
      [cairo-xlib-surface] Match content to xrender_format using the channel masks.
      [cairo-xlib] Check source for XRender support.
      [cairo-surface] Fix typo in doc.

Keith Packard (1):
      Force non-AA text when using a bitmap strike with only scaling transform.

Richard Hult (1):
      [atsui] Use ascent+descent+leading to get the distance between baselines

Vladimir Vukicevic (10):
      [fix] Avoid int overflow when allocating large buffers
      [win32] check correct surface for BitBlt support in get_subimage
      Implement fallback for clone_similar
      [win32] call free() and not scaled_font_destroy() if scaled init fails
      Fix previous create_similar fallback patch
      [win32] call scaled_font_fini in create before returning NULL
      Make NO_MUTEX really mean no mutexes
      Avoid divide-by-zero when trying to allocate a 0-sized array
      [win32] report error correctly if CreateCompatibleBitmap fails
      [win32] return a nil surface, not NULL
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.cairographics.org/archives/cairo/attachments/20071127/b25db004/attachment.pgp 
-------------- next part --------------
cairo-announce mailing list
cairo-announce at lists.cairographics.org

More information about the cairo mailing list