[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