cairo 1.5.18 snapshot available
From: Carl Worth <cworth@cworth.org>
Date: Sun, 06 Apr 2008 03:31:08 -0700
To: cairo-announce@cairographics.org
Cc: gnome-announce-list@gnome.org
Subject: cairo snapshot 1.5.18 now available

A new cairo snapshot 1.5.18 is now available from:

        http://cairographics.org/snapshots/cairo-1.5.18.tar.gz

    which can be verified with:

        http://cairographics.org/snapshots/cairo-1.5.18.tar.gz.sha1
        68d9e7fed9158d8584cf8a7831fe7b3441f7970f  cairo-1.5.18.tar.gz

        http://cairographics.org/snapshots/cairo-1.5.18.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.5.18 tag which points to a commit named:
        6d6c8aa643603c2b5fd7baedc897d4698ba8bafb

    which can be verified with:
        git verify-tag 1.5.18

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

This is the ninth snapshot in cairo's unstable 1.5 series. It comes
just 4 days after the 1.5.16 snapshot. We had hoped to not need
another snapshot before the final 1.6.0 release, but several critical
bugs were found and fixed in the last few days, so we thought it
important to let people test the fixes with this snapshot. See below
for details.

Have fun with cairo!

-Carl

Summary of changes from cairo 1.5.16 to 1.5.18
==============================================
documentation
-------------
The README now lists necessary dependencies.

Various graphics state defaults are now documented, (source pattern is
opaque black, line width is 2.0, line join is miter, line cap is butt,
miter limit is 10.0, etc.).

general
-------
Several cleanups have been made along many error-path returns,
(carefully propagating up the original error status values, cleaning
up memory leaks during error recovery, etc.). This is yet another in
Chris "ickle" Wilson's long series of error-handling cleanups during
the 1.5 series.

Avoid undesired clipping when drawing scaled surface patterns with
bilinear filtering.

cairo-pdf
---------
Fix emission of 1-bit alpha masks in PDF output.

Fix a bug that would cause glyphs to be misplaced along the Y axis:

    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%23474136

    Originally, an issue about a crash, but later leading to the
    misplaced glyphs issue being discovered.

cairo-ps
--------
Fix misplaced glyphs in cairo's PostScript output.

    This issue occurs when consecutive glyphs are placed far
    apart. This case is exercised by the new ft-show-glyphs-table test
    case, which was originally inspired by the Debian bug #23474136
    mentioned above.

Fix more misplaced glyphs in cairo's PostScript output:

    The issue here showed up under very particular circumstance, (when
    converting a PDF file with a CFF font with CID Identity-H encoding
    and using glyph 0, (defined by the CFF specification as .notdef)
    as a space instead). More concretely, this problem appeared when
    converting the UbuntuDesktop.pdf file mentioned in this bug
    report:

    https://bugs.freedesktop.org/show_bug.cgi?id=15348#c3

    As usual with arcane font-encoding-specific bugs like this, many
    thanks to Adrian Johnson for his magical ability to dive into
    specifications and emerge almost instantaneously with fixes. And
    thanks to Sebastien Bacher for bringing the bug to our attention.

cairo-xlib
----------
Fix serious failure on X servers without the Render extension.

    Since the 1.5.14 snapshot (with support for PseudoColor visuals),
    any application attempting to create a "similar" xlib surface would
    fail on an X server without the Render extension. Thanks to
    Frederic Crozat for pointing out that cairo's test suite was
    entirely failing when run against Xvfb.

Avoid crashing cairo-xlib applications for too-large glyphs

    Naively sending glyphs of any size to the X server will eventually
    violate the X limit on maximum request sizes. We now properly
    detect when a glyph would be too large and use existing fallbacks
    to render the glyph rather than trying to send it to the X server.

Enable the buggy_repeat workaround for Xorg servers < 1.4

    We have determined that Xorg 1.3.0 (as packaged in Fedora 8 at
    least) has a bug that can result in an X server crash when cairo
    uses certain X Render repeat operations, (as exercised by cairo's
    extend-reflect test). We avoid this crash by using fallbacks
    whenever a repeating surface is needed for any Xorg server with a
    version less than 1.4. This is slower, but should prevent the
    crash.

    (Meanwhile, there appears to be a separate bug where some X
    servers or specific X-server drivers will use random pixmap data
    when asked to draw a repeating surface. The buggy_repeat
    workaround would also avoid those problems, but we have not yet
    characterized whether the new "version < 1.4" is a good
    characterization of those problems or not.)

cairo-quartz-font
-----------------
Implement cairo_font_extents for this backend.

The cairo-quartz-font implementation added in the 1.5.14 snapshot was
entirely missing support for the cairo_font_extents function. Thanks to
Richard Hult for pointing out this obvious shortcoming, (and obvious
lack of coverage in our test suite):

    CGFont backend returns 0 font extents
    https://bugs.freedesktop.org/show_bug.cgi?id=15319