[Ftp-release] cairo release 1.8.2 now available

Carl Worth cworth at cworth.org
Thu Oct 30 08:36:56 PDT 2008

A new cairo release 1.8.2 is now available from:


    which can be verified with:

	41e94d94e7f379551f556dd71979aca239a688c6  cairo-1.8.2.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.8.2 tag which points to a commit named:

    which can be verified with:
	git verify-tag 1.8.2

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

The cairo community is pleased to announce the 1.8.2 release of the
cairo graphics library. This is the first update to cairo's stable 1.8
series and contains a large number of bug fixes. It is being released
just over one month since cairo 1.8.0.

This release consists primarily of bug fixes, but there is one notable
new feature, (the ability to build cairo without an external font
backend), and there are a few optimizations as well. See below for
details on these changes and the most important bug fixes.

While many people have contributed to this release, Chris Wilson
deserves particular mention. He has contributed well over twice as
many changes to cairo since 1.8.0 than everyone else combined. We
greatly appreciate the tremendous efforts of Chris and all cairo

We recommend everyone upgrade to cairo 1.8.2 and hope that everyone
will have lots of fun with cairo!


New feature
It is now possible to build cairo without any font backend, (such as
freetype, win32 or quartz). This is most useful when the application
provides custom font rendering through the user-font API. But in the
case where no external font backend is available, and no user-font is
provided, cairo will render with a failsafe font, (a stroked font
covering visible ASCII character). (Behdad Esfahbod)

Dramatically speed up compilation with dolt (removes much of the
libtool overhead) (Behdad Esfahbod with thanks to Josh Triplett).

Several minor optimizations to tessellator (special-cased comparisons,
faster insert for skiplist, etc.) (Chris Wilson).

Optimize away fractional translation component when doing
EXTEND_NEAREST filtering, (for better performance).

General bug fixes
Allow cloning sub-regions of similar surfaces to fix this bug
(Chris Wilson):

	Crafted gif file will crash firefox
	[XError: 'BadAlloc (insufficient resources for operation)']

Fix some matrix confusion to fix this regression (Chris Wilson):

	Translucent star exports in a wrong way to PDF

Fix some long-standing bugs with respect to properly computing the
extents of transformed, filtered surfaces (Owen Taylor, Carl Worth,
and Chris Wilson):

	Bad clipping with EXTEND_NONE

	Improve filtering handling in cairo-pattern.c

	Many thanks to Chris Wilson for digging out and cleaning up
	these fixes.

Fix compilation on Solaris 10 (Chris Wilson):

	Cairo requires -DREENTRANT (along with	-D_POSIX_THREAD_SEMANTICS)
	to compile on Solaris 10 with pthreads

Fix very old bug causing dashes to be rendered at the wrong length in
fallback images (Adrian Johnson)

	Dashed strokes too long in fallback images

Fix broken dashing when a dashed path starts outside the clip region
(Chris Wilson).

Avoid range overflow when computing large patterns (Benjamin Otte and
Chris Wilson).

Avoid crashing due to an invalid font with an incorrect entry in its
CMAP table (Adrian Johnson).

Fix bugs in computing maximum size of text requests that can be sent
with the Render extension, (avoiding potential crashes when rendering
large amounts of text) (Behdad Esfahbod and Chris Wilson).

Fix rendering of operators unbounded by the mask (Chris Wilson).

Fix compilation on systems without compiler support for a native
64-bit type (Chris Wilson).

Fix several cases of missing error-status propagation. (Chris Wilson,
doing the work he seems to never tire of).

Fix several locking issues found with the lockdep valgrind skin (Chris

Backend-specific bug fixes
xlib: Avoid crash due to attempting XRender calls on pixmaps with
formats not supported by the Render extension (Chris Wilson):

	XRender crashes due to NULL pointer from Cairo on SGI O2

xlib: Add support for XImages with depth of 4, 20, 24, or 28 bits
(Chris Wilson):

	cairo doesn't support 24 bits per pixel mode on X11

xlib: Avoid mistakenly considering two surfaces as similar just
because their depths match (while their Render formats do not) (Karl

ps: Fix slight mis-scaling of bitmapped fonts (Adrian Johnson)

svg: Correctly emit comp-op for paint, mask, and show_glyphs
operations (Emmanuel Pacaud).

svg: Use finer-grained fallbacks for SVG 1.2 (as PS and PDF backends
have been doing since 1.6.0) (Chris Wilson).

win32: Fallback to DIB if DDB create fails for
cairo_surface_create_similar (Vladimir Vukicevic).

win32: Fix compatibility with Windows Mobile (Vladimir Vukicevic).

win32: Fix static builds to not do __declspec(dllimport) on public
functions. This requires the user to set a CAIRO_WIN32_STATIC_BUILD
environment variable when compiling (Behdad Esfahbod).

Log of all changes from cairo 1.8.0 to 1.8.2
Adrian Johnson (10):
      Fix bitmap-font XFAIL
      Remove miter-precision from XFAIL
      Update ref images in Makefile.am
      Check that reads in truetype_reverse_cmap are within valid data
      Use correct inverse ctm for stroke in meta surface replay
      Revert unintended changes to test/fallback-resolution.c in the previous commit
      Don't add a notdef glyph to Type 3 font subsets
      Add user-font-image test
      Change user-font-image test to use a pattern
      Change ps to ps3 in test/README

Behdad Esfahbod (29):
      Add an internal font face
      [twin-font] Clean up font data by joining lines and closing paths
      [scaled-font] Use full ctm matrix when comparing scaled-font keys
      [twin-font] Adjust ascent/descent
      [RELEASING] Add ftp-release at lists.freedesktop.org
      Add slim markers to make check-plt.sh happy
      [check-*.sh] Redirect error reports to stderr
      [README.win32] Update wording from Tor Lillqvist
      [cairo.h] Don't define cairo_public to __declspec(dllimport) for static build
      [text_to_glyphs] Further enhance the docs
      Fix residues of the Makefile.*.config Makefile.*.features renaming
      [configure.ac] Require autoconf >= 2.59 and automake >= 1.9.6
      Revert "[xlib] Correct calculation of XRenderComposite* request size."
      [xlib] Add comment about glyph chunk invariant
      [xlib] s/_cairo_xlib_surface_emit_glyphs_chunk/_emit_glyphs_chunk/
      [xlib] Allow room for glyph element padding
      [xlib] Start a new glyph element every 128 glyphs
      [win32] Use -MDd and -LDd instead of -MD and -LD for debug build
      [user-font] Fix comment re backend interface
      [Makefile.am.releasing] Exclude uid/gid from tarball
      [twin-font] Make the stroke lighter
      [boilerplate] Fix "make dist"
      [RELEASING] Fix sample distcheck output to reflect current versioning
      [Makefile.am.releasing] Make 'make snapshot' print a banner when done
      Remove CAIRO_BEGIN_DECLS uses that ickle introduced while merging
      [build] Use dolt
      [test/user-font] Exercise glyph 0
      [Makefile.am.releasing] Fix typo
      [test/xlib-expose-event] Save the output image to disk

Benjamin Otte (4):
      [SVG] use _cairo_operator_bounded_by_source()
      [SVG] make backend handle new operators gracefully
      [TEST] make imagediff work again
      [test] Add huge pattern.

Björn Lindqvist (1):
      [perf] Add composite performance test.

Carl Worth (23):
      Increment cairo version to 1.8.1 after the 1.8.0 release.
      _cairo_pattern_get_extents: Fix to allow for expansion based on filter
      Use symbolic constants for Render repeat modes.
      Fix scrambled version number in generated documentation.
      Add creation of a versioned manual to the release-publish target.
      Correct NEWS to say 'release' instead of 'snapshot' for 1.8.0
      Rename user-font-image test to user-font-mask.
      Mark user-font-mask as XFAIL.
      Add ps2-specific reference images for trap-clip test.
      Add svg-specific reference images for the twin test.
      Disable the svg12 target in boilerplate.
      Add note to test/README on running with Xvfb.
      RELEASING: Suggest running 'make distcheck' against Xvfb.
      Add recently added reference images to REFERENCE_IMAGES list.
      Add missing files to CLEANFILES and DISTCLEANFILES.
      Add doltcompile and doltlibtool to .gitignore.
      Remove the ability to select the internal font face with a name of "cairo".
      Remove twin test case.
      Remove twin perf case.
      NEWS: Add long list of bugs fixed for 1.8.2.
      NEWS: Finish the entry for the 1.8.2 release.
      Remove test/twin-ref.png.
      Increment cairo version to 1.8.2.

Carlos Garcia Campos (2):
      [test/any2ppm] Enable PS conversion using libspectre.
      [test] Add ps2png check program using libspectre

Chris Wilson (205):
      [pdf] Propagate status
      Add a macro to determine whether a status is a fatal error.
      [analysis] Merge two analysis status codes.
      [test/any2ppm] Handle short reads/writes.
      [boilerplate] Retry conversion in process if first attempt fails.
      [boilerplate] Add svg-1.2 target.
      [boilerplate] Add a PS 2 target.
      [scaled-font] Spelling fix.
      Allow cloning sub-regions of similar surfaces.
      [surface] Only return early for no traps if the operator is bounded by a mask.
      clone_similar(): s/device_offset/clone_offset/
      [test/operator*] Remove XFAIL descriptions.
      [test/large-source] Remove stale comment.
      [test/gradient-constant-alpha] Remove ps2 reference images.
      [cairo-test] Fix cairo_test_file_is_older().
      [test] Update list of REFERENCE_IMAGES
      [test] Fix target specific tests for recent SVG/PS version split.
      Automate error checking for fallback-resolution.
      Compute device_transform_inverse.
      [svg] Kill _cairo_svg_surface_force_fallbacks.
      [paginated] Set paginated mode before every replay.
      [svg] Enable the assertion that paint() is supported.
      [svg] Check that the mask is supported.
      [svg] Compile fix for last commit.
      [perf] Add rounded rectangle perf case.
      [test/fallback-resolution] Exercise a couple of outstanding bugs.
      [glitz] Compile fix for typo.
      [test] Disable caching of SVG fail/pass surfaces.
      [test/filter-bilinear-extents] Extend testing.
      [test/filter-bilinear-extents] Remove XFAIL.
      [test/surface-source] Modify to trigger a crash.
      [user-font] Rewrite text_to_glyphs allocation instructions.
      [test/xlib-surface-source] Fix ill-timed XCloseDisplay
      Clean up compile warnings.
      [pattern] Fix up OBO introduced to cloned area
      [Makefile.am] Only rerun headers-standalone if a header file has changed
      [test/filter-nearest-offset] Paint a grey background
      [test/filter-nearest-offset] Remove XFAIL status
      [test/show-glyphs-many] Re-enable test to trigger crash in xlib.
      [test/show-glyphs-many] Exercise xlib boundary conditions.
      [xlib] Correct calculation of XRenderComposite* request size.
      [xcb] Compile fix.
      [xcb] Return false from _cairo_xcb_surface_is_similar().
      [xlib] Share the common conditions for starting a new xGlyphElt using a macro.
      [traps] Reset extents on clearing.
      [traps] Discard trivially empty trapezoid.
      [tessellator] Use abort() instead of exit().
      [tessellator] Direct comparison of result in edges_compare_x_for_y.
      [tessellator] Special case edge comparisons when on either end-point.
      [test] Mark fallback-resolution as XFAIL.
      [stroke] Simplify dash-off logic.
      [tessellator] Replace open-coding _cairo_int64_cmp().
      [wideint] Mark functions as pure
      [wideint] Declare the wideint arithmetic functions as const.
      [slope] Replace open-coding 64bit integer arithmetic.
      [hull] Replace open-coding of 64bit arithmetic.
      [skiplist] Avoid repeated calls to compare on the same element when inserting.
      Fixup a couple of trivials doc warnings.
      [array] Silence gtk-doc complaints.
      [test] Add a test to exercise the internal twin font
      [test] Add a test for a reported regression by Michael Natterer.
      [xlib] Check integer translation for XCopyArea.
      [pattern] After cloning adjust [xy]_offset if possible.
      [tessellator] Avoid implicit promotion to 64bit integer.
      [tessellator] Compile fixes for !HAVE_INT64_T
      [svg] Use finer-grained fallbacks for SVG 1.2
      [win32] Restore fine-grained fallback support for printing.
      [cairo.h] Be defensive when checking for _MSC_VER
      [test] Exercise degenerate dashes.
      [pattern] Remove incorrect assert.
      [xlib] Disable XRender support if the surface has no xrender_format
      [image] Warn about a potential NULL return after finish().
      [INSTALL] Mention pkg-config requirement
      [test] Use _POSIX_C_SOURCE for flockfile.
      [test/any2ppm] Do not attempt to compile PS without spectre
      [xlib] Use the cached xrender formats.
      [pattern] Rescale the linear pattern matrix to avoid overflow.
      [win32] win32 also uses font subsets.
      [pattern] Optimize away fractional translation for NEAREST patterns.
      [scaled-font] Correct documentation for cairo_scaled_font_create().
      Update documentation to remove references to cairo_has_show_text_glyphs().
      Add documentation for function attributes 'pure' and 'const'.
      [pattern] Only perform non-integer optimization for identity matrices.
      [pattern] Correctly optimize away fractional translations.
      [check-doc-syntax.sh] Allow quoting.
      [test/fallback-resolution] Extend to cover separate ppi x/y.
      [doc] Fix a few gtk-doc errors.
      [svg] Add notes about why we shouldn't add DOCTYPE.
      [xlib] Handle 4,20,24,28 depth XImages
      [type1] Protect against read macro
      [boilerplate] Fixup compilation for gliitz.
      [glitz] Disable caching of solid surfaces.
      [build] Add -fno-common.
      [test] Add a spline test.
      [type1] Add comment to warn about read() as macro.
      [test/README] Document all fonts used.
      [ft] Add more comments about FT_Face lifetime issues.
      [test] Add support for memfault.
      Add support for lockdep.
      [test/clip-operator] Propagate error from secondary context.
      [test/get-clip] Check the status on the secondary context.
      [test/ft-text-*] Check for errors from fontconfig.
      [test/mask] Propagate error from secondary context.
      [test/composite-integer-translate-over-repeat] Propagate error.
      [test/show-glyphs-many] Check for NO_MEMORY
      [test/smask-fill] Propagate error status.
      [test/smask-image-mask] Propagate error.
      [test/smask-mask] Propagate error.
      [test/smask-paint] Propagate error.
      [test/smask-stroke] Propagate error.
      [test/smask-text] Propagate error.
      [test/mask] Propagate error from secondary context.
      [test/stroke-image] Propagate error
      [test/smask] Propagate error.
      [test/source-clip] Propagate error.
      [test/source-clip-scale] Propagate error.
      [test/surface-pattern] Propagate error.
      [test/source-surface-big-scaled-down] Propagate error.
      [test/font-matrix-translation] Check for OOM
      [test/bitmap] Leak on error path.
      [test/user-font[-proxy]] Check for error from set_user_data().
      [test/user-font-rescale] Check and propagate errors.
      Review backend->create_similar()
      [xlib] Fix double free of Pixmap along error path.
      [test-paginated] Fix double free of surface along error path.
      [paginated] Free local reference to target on error path.
      [gstate] Propagate error from clip.
      [xlib] Set return code after failing to allocate glyph surface.
      [scaled-font-subsets] Add locking to unscaled font.
      [svg] Lock the scaled_font whilst emitting glyphs.
      [surface] Reorder asserts to make no assumptions about error objects.
      [scaled-font] Zero font extents for an error surface.
      [type1] Acquire scaled_font mutex.
      [pdf] Acquire scaled_font mutex for show_text_glyphs().
      [user-font] Check for error objects.
      [type3] Acquire scaled_font mutex whilst looking up glyphs.
      [ps] Destroy type3 surface on error.
      [analysis] Check for error surfaces.
      [user-font] Review locks under error conditions.
      [meta] Acquire scaled_font mutex for glyph_path().
      [output-stream] Accept a NULL filename
      [output-stream] Protect against NULL write_func.
      [perf] A crude tool to visualise performance changes across a series.
      [image] Remove unused variable.
      [directfb] Compile fix.
      [directfb] Fix error propagation from surface_create()
      [boilerplate/directfb] Gracefully handle failure to create surface.
      [directfb] Correct fixed-to-double conversion.
      [directfb] Add missing error status
      [directfb] Simplifiy ADD_TRI
      [directfb] Return an error surface on create() failure.
      [test] Add degenerate-dash to XFAIL.
      [perf] Free images for composite-checker
      [configure.ac.analysis] s/safe/_save/
      [boilerplate/directfb] Create ARGB surfaces on demand.
      [directfb] Use the solid pattern cache.
      [directfb] Simplify return from _directfb_get_operator().
      [directfb] Whitespace.
      [directfb] Rename backend structure.
      [directfb] Support ROI cloning.
      [directfb] Tweak _categorize_operation().
      [directfb] Only use the pure BLIT for integer translations.
      [directfb] Cap the maximum surface size to use for the font cache.
      [directfb] Track the empty clip rectangle.
      [directfb] Force NEAREST.
      [directfb] Fix OBO in clip.
      [directfb] Apply clip to release_dest_image()
      [directfb] When blitting check if we need the un-premultiplied color.
      [directfb] Perfom text fallback if emulating clip regions.
      [directfb] Fallback for SATURATE
      [directfb] Unbounded operators are unsupported.
      Add API documentation for NULL filenames and write_funcs.
      [configure] Check for atomic xchg.
      [ps] Check for an empty font subset.
      [test/device-offset] Propagate error.
      [test/device-offset-positive] Propagate errors.
      [test/device-offset-scale] Propagate errors
      [test/extend-pad] Propagate errors.
      [test/operator-clear] Propagate errors.
      [test/operator-source] Propagate errors.
      [test/pixman-rotate] Propagate errors
      [test/rotate-image-surface-paint] Proapgate errors.
      [test/surface-pattern-scale-down] Propagate errors.
      [test/surface-pattern-scale-up] Propagate errors.
      [test/unbounded-operator] Propagate errors.
      [test/xlib-expose-event] Propagate errors.
      [test/meta-surface-pattern] Propagate errors.
      Ensure that the scaled font is frozen for the lifetime of the scaled glyph.
      [cairoint] Remove the duplicate prototype.
      Map toy font face to implementation.
      Twin perf case
      [win32] Correct error paths in text_to_glyphs().
      [build] Use AC_LINK_IFELSE for testing linker flags.
      [test] Add leaky-dashed-stroke
      [stroke] _cairo_stroker_line_to_dashed() whitespace
      [stroke] Ensure we record the first face for a dashed path.
      [perf] Fix rectangular case of unaligned-clip.
      [image] Check create_for_data() to ensure a valid minimum stride.
      [image] Remove invalid assert.
      [test] Add a pass-through test.
      [NEWS] Correct a couple of typos.
      [NEWS] Spot another couple of typos.
      [xlib] whitespace
      [xlib] Fix _draw_image_surface() with opaque images.

Emmanuel Pacaud (2):
      [svg] Fix comp-op for paint, mask and show_glyphs operations.
      Merge branch 'master' of git+ssh://emmanuel@git.cairographics.org/git/cairo

Jeff Muizelaar (3):
      Fix quratz_image typo in Makefile.sources.
      [quartz] Rebalance 'CAIRO_HAS_QUARTZ_IMAGE_SURFACE' #ifdef
      [quartz] Completely remove CAIRO_HAS_QUARTZ_IMAGE_SURFACE check

Karl Tomlinson (1):
      [xlib] _surfaces_compatible() can return true for different picture formats

Owen W. Taylor (3):
      [pattern] Remove the hack to support cloning surface patterns.
      [pattern] Fix acquiring outside of source bounds
      [pattern] Improve handling of filter radius and optimize when possible.

Torsten Schönfeld (1):
      [doc] Add links to solid pattern constructors.

Vladimir Vukicevic (3):
      [quartz] initialize do_reflect field correctly for pattern draws
      [win32] create_similar should fall back to DIBs if DDB creation fail
      [win32] Use wide-char versions of some API functions, for compat with Windows Mobile

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.freedesktop.org/archives/ftp-release/attachments/20081030/1d458338/attachment-0001.pgp 

More information about the Ftp-release mailing list