[cairo-announce] cairo release 1.4.2 now available

Carl Worth cworth at cworth.org
Mon Mar 19 23:57:49 PDT 2007


A new cairo release 1.4.2 is now available from:

        http://cairographics.org/releases/cairo-1.4.2.tar.gz

    which can be verified with:

        http://cairographics.org/releases/cairo-1.4.2.tar.gz.sha1
        9e7a323fc7d81d5011044d7eb22db3bf26ff7314  cairo-1.4.2.tar.gz

        http://cairographics.org/releases/cairo-1.4.2.tar.gz.sha1.asc
        (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.2 tag which points to a commit named:
        aba2b299db163d8a5b9d0a0214cd8a485fb87162

    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
fixes).

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).

-Carl

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).

  http://bugs.freedesktop.org/show_bug.cgi?id=10235

• 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).

  https://bugs.freedesktop.org/show_bug.cgi?id=10267
  https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=232576

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

  https://bugs.freedesktop.org/show_bug.cgi?id=10231

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

  https://bugs.freedesktop.org/show_bug.cgi?id=10250

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

  https://bugs.freedesktop.org/show_bug.cgi?id=9844

• 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).

  https://bugzilla.mozilla.org/show_bug.cgi?id=373632

• 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
  MenTaLguY).

  http://lists.freedesktop.org/archives/cairo/2006-November/008551.html

• 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).

  https://bugs.freedesktop.org/show_bug.cgi?id=9568

• 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
  Hasselmann).

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).

  https://bugs.freedesktop.org/show_bug.cgi?id=10189

• Eliminate use of maintainer mode from cairo's automake/configure
  script. This means that updates to files such as Makefile.am 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
  Lillqvist)

  https://bugs.freedesktop.org/show_bug.cgi?id=10202

• 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
  Klausner).

  https://bugs.freedesktop.org/show_bug.cgi?id=10226

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

  https://bugs.freedesktop.org/show_bug.cgi?id=10227

Optimization
------------
• 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
  soon.

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,
etc.).

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
1.1.

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

	http://cairographics.org/

The latest releases of cairo can be found at:

	http://cairographics.org/releases

Snapshots of in-development versions of cairo:

	http://cairographics.org/snapshots

The programming manual for using cairo:

	http://cairographics.org/manual

Mailing lists for contacting cairo users and developers:

	http://cairographics.org/lists

Answers to some frequently asked questions about cairo:

	http://cairographics.org/FAQ

Summary of all changes from 1.4.0 to 1.4.2
==========================================
Adrian Johnson (3):
      PDF: Set page group color space to DeviceRGB
      Fix buffer overflow warning
      Fix incorrect file permission in previous commit

Behdad Esfahbod (47):
      Remove extra word in docs
      [configure.in] Remove AM_MAINTAINER_MODE
      [cosmetic] Remove static var from testing code in bentley-ottman.
      [Type1] Add cairo-type1-private.h that Type1 fallback and subset code share
      [cairoint] Move endian-conversion routines into cairoint.h
      [PS/PDF/SVG] Rename internal symbols to have _cairo_*_surface prefix
      [glitz] Mark some constant static structures as const
      [directfb,os2] #error if the backend is not compiled in, like others do
      [boilerplate] Prefer top_builddir to top_srcdir
      [cairo-path-fixed] Avoid malloc for small paths
      [cairo-path-fixed] Merge op and arg bufs
      [cairo-path-fixed] Fine-tune size of buffer
      [cairo_t] Move gstate pointer before cairo_path_fixed_t for better cache behavior
      [Quartz] Don't include cairo-private.h
      [cairo_t] Make path an array of size one
      [cairo-clip] Make _cairo_clip_init tolerate NULL target
      [cairo_t] Embed a gstate into cairo_t
      [skiplist] Move static variable out of function
      [test-surfaces] Prefix public symbols with _cairo
      [skiplist] Prefix symbols with _cairo
      [test] Make pdiff if necessary
      [cairo-traps] Use INT32_MIN/MAX instead of INT16_MIN/MAX << 16
      [cairo-traps] Clean-up realloc algorithm for clarity
      [cairo-traps] Add a cache of one trapezoid to cairo_traps_t
      [cairo_traps_t] Reorder struct members for clarity
      [cairo-spline] Clean-up realloc algorithm for clarity
      [cairo-spline] Add a cache of eight points to cairo_spline_t
      [cairo-slope] Make comparison stable if both vectors are zero
      [cairo-polygon] Clean-up realloc algorithm for clarity
      [cairo_polygon_t] Reorder struct members for clarity
      [cairo_polygon_t] Remove unused member 'closed'
      [cairo_polygon_t] Change has_current_point from int to cairo_bool_t
      [cairo-spline] Fix typo in comment
      [cairo-polygon] Add a cache of eight edges to cairo_polygon_t
      [polygon,spline,traps] Avoid free(NULL)
      [cairo-pattern] Add XXX note
      [cairo-pattern] Fix color conversion from short to double
      [cairo-color] Add cairo-private _cairo_color_double_to_short()
      [cairo-pattern] Use _cairo_color_double_to_short() to fix color conversion
      [test] In pattern-getters test, log what went wrong
      [test] If backends are limited and all untested, pass the test
      [Makefile.am] Do not distribute cairo-features.h, Ouch!
      [cairo-pattern] Grow color-stops array exponentially
      [cairo-pattern] Add a cache of two color stops to cairo_gradient_pattern_t
      [win32] Fix font descent computation
      [win32] Really return unhinted font metrics if metrics hinting is off
      [boilerplate] Don't build in make all

Brian Ewins (7):
      [quartz] rename remaining nquartz symbols to quartz.
      [atsui] clean up warnings
      [atsui] remove the unused old_show_glyphs function.
      [atsui] refactor CreateSizedCopyOfStyle
      [atsui] store sizes in the atsui font
      [atsui] make text_to_glyphs return positions in user units. (#9568)
      [quartz] apply ctm to text (#9568)

Carl Worth (24):
      Increment version to 1.4.1 after making the 1.4.0 release
      Fix a LOCK vs. UNLOCK typo, (yes, I'm that stupid).
      perf/README: Add notes on using cairo-perf-diff
      Remove radial-gradient test from XFAIL list
      Add new skew-extreme test case.
      Fix bugs in _cairo_traps_tessellate_convex_quad
      Remove dead-code remnants of old tessellator
      check-def.sh: Adjust test to exempt _cairo_test_* functions as well as _cairo_*_test_*
      Add svg-specific reference image for radial-gradient test.
      Fix _cairo_traps_tessellate_convex_quad to handle a == b
      Implement _cairo_traps_tessellate_triangle with _cairo_traps_tessellate_convex_quad
      Add line-width-zero test which currently crashes.
      Fix cairo_stroke_extents and cairo_in_stroke to not crash with line width of 0.0
      Allow NULL pointers for functions that accept pointers for multiple return values.
      Make compilation of cairo-deflate-stream.c conditional on compilation of PDF backend.
      Avoid pulling in -lz for the ps backend.
      XCB: Fix parameter-order confusion with xcb_create_pixmap
      xlib: Prefer surface->format over surface->visual for identifying masks
      Propagate a nil surface out of _cairo_surface_create_similar_scratch
      Temporarily remove extend-reflect from the list of tests.
      NEWS: Add notes for cairo 1.4.2
      Increment cairo version to 1.4.2 (and libtool versioning to 13:1:11)
      Add skew-extreme-ref.png to the tar file for the release.
      boilerplate: Add EXTRA_LTLIBRARIES to CLEANFILES to allow make distcleancheck to pass.

Chris Wilson (7):
      Add valgrind/callgrind targets to Makefile.
      Fix up the trivial leaks found by valgrind.
      Avoid the struct copy when source and destination are the same.
      Correct an off-by-one in the reflection of the convolution index.
      Introduce hooks for _cairo_xlib_close_display()
      Privately export a function to reset the scaled font's glyph caches.
      Clear the XRender data on display closure.

Emmanuel Pacaud (2):
      SVG: Fix CAIRO_EXTEND_REFLECT for radial gradients.
      SVG: fix a radial gradient failure when using CAIRO_EXTEND_REFLECT.

Gilles Dauphin (1):
      Don't use unsupported visibily attribute hidden on Solaris

Mathias Hasselmann (6):
      Improve CPU utilization when building cairo-perf
      Transform the output of cairo-perf-diff into HTML
      Add index.html to .gitignore
      Include pixman/src in cairo-perf hash
      [cairo-perf-diff] Update usage screen to mention --html.
      [cairo-perf] Emit warning, if cairo-perf is not CPU bound

Thomas Klausner (1):
      Use "find !" rather than "find -not" for better portability
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo-announce/attachments/20070319/73c62d0b/attachment.pgp


More information about the cairo-announce mailing list