cairo 1.4.2 release available
From: Carl Worth <>
Date: 19 Mar 2007
Subject: cairo release 1.4.2 now available

A new cairo release 1.4.2 is now available from:

    which can be verified with:
        9e7a323fc7d81d5011044d7eb22db3bf26ff7314  cairo-1.4.2.tar.gz
        (signed by Carl Worth)

  Additionally, a git clone of the source tree:

        git clone git://

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

    which can be verified with:
        git verify-tag 1.4.2

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

This is the first update release in cairo's stable 1.4 series. It
comes just less than 2 weeks after 1.4.0. We hadn't anticipated an
update this early, but we've managed to collect some important fixes
that we wanted to get out to cairo users as soon as possible, (6 fixes
for crashes, 1 case where graphical elements would not be drawn at
all, a handful of backend-specific bugs, and several important build

There's almost nothing but bug fixes in this release, (see below one
optimization that Behdad did sneak in), so we recommend that everyone
upgrade to this release when possible.

Thanks to the many people that worked to fix these bugs, and those
that did the work to report them and to test the fixes, (wherever
possible both names are credited below).


What's new in cairo 1.4.2 since 1.4.0
Critical fixes
• Fix a crash due to a LOCK vs. UNLOCK typo (M. Drochner fixing Carl
  Worth's embarrassing typo).

• Fix potential buffer overflow, which on some systems with a checking
  variant of snprintf would lead to a crash (Adrian Johnson, Stanislav
  Brabec, and sangu).

• Fix a crash in cairo_stroke_extents or cairo_in_stroke when line
  width is 0.0. (Carl Worth and Sebastien Bacher)

• Fix a crash on certain combinations of X server/video drivers (Carl
  Worth and Tomas Carnecky).

• Fix a crash due to mishandling of invalid user input (Carl Worth and
  Alexander Darovsky).

• xlib: Cleanup server-side glyph caches on XCloseDisplay. This
  eliminated a crash detected by the perf suite, (and that
  applications could have run into as well). (Chris Wilson)

Other bug fixes
• Fix for some geometry which simply disappeared under some
  transformations---a stroked line with an extreme skew in X, for
  example (Carl Worth and Jonathan Watt).

• SVG: Fix radial gradients for CAIRO_EXTEND_REFLECT and when r0 > r1
  (Emmanuel Pacaud).

• PDF: Set page group color space to DeviceRGB.

  This fixes incorrect (muddy) transparent colors when rendering cairo
  PDF output in some viewers. (Adrian Johnson, Adam Goode, and

• win32: Return correct metrics when hinting is off, and fix font
  descent computation (Behdad Esfahbod).

• quartz: Fix glyph interfaces to correctly return user-space rather
  than device-space coordinates (Brian Ewins).

• xcb: Fix parameter-order confusion with xcb_create_pixmap, which now
  makes all tests that pass with xlib now pass with xcb (Carl Worth,
  Jamey Sharp).

• Fix some memory leaks in the perf suite (Chris Wilson).

• Fix perf suite to consider changes in pixman/src (Mathias

Build fixes
• Don't include pre-generated cairo-features.h file. This was causing
  build failures when building with the directfb backend enabled
  (Behdad Esfahbod).

• Eliminate use of maintainer mode from cairo's automake/configure
  script. This means that updates to files such as will
  take effect, (by rerunning automake and friends as necessary) when
  invoking make rather than being silently ignored.  (Behdad Esfahbod)

• Don't compile cairo-deflate-stream.c, which depends on zlib, unless
  building the pdf backend which requires it. (Carl Worth, Tor

• Don't make the ps backend link against zlib anymore, since it
  doesn't require it (Carl Worth).

• Use "find !" rather than "find -not" for better portability (Thomas

• Don't use unsupported visibility attribute "hidden" on Solaris
  (Gilles Dauphin, Thomas Klausner).

• It was Behdad that suggested we focus strictly on bug fixes now that
  we shipped so many performance improvements in 1.4.0, but it was
  also Behdad that got distracted by the chance to remove a lot of
  mallocs from cairo. Paths, gstates, trapezoids, splines, polygons,
  and gradient color stops will now use small, stack-allocated buffers
  in the most common cases rather than calling malloc as
  often. (Behdad Esfahbod). And look for more from Mathias Hasselmann