cairo 1.15.4 release available
Subject: cairo snapshot 1.15.4 now available

A new cairo snapshot 1.15.4 is now available from:

    which can be verified with:
    4e5d28697ac5a750a071edcf4a99e8af8d7c04b2  cairo-1.15.4.tar.xz
    (signed by Bryce Harrington)

  Additionally, a git clone of the source tree:

  git clone git://

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

    which can be verified with:
    git verify-tag 1.15.4

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

This new snapshot incorporates changes over the past year since the
1.15.2 snapshot, including all the fixes from the 1.14 release series.

Of particular note in this snapshot is a wealth of work by Adrian
Johnson to enhance PDF support, as well as numerous bug fixes provided
by him and other contributors.

For a complete log of changes since the last release, please see:

* The PDF backend has gained support for a range of widely used
  features, including thumbnails, page labels, metadata, document
  outlines, structured text, hyperlinks, and tags.  Tags permit adding
  logical info such as headings, tables, figures, etc. that facilitates
  indexing, accessibility, text reflow, searching, and extraction of the
  tagged items to other software.  For details on this new PDF
  functionality, see:

API Changes


    Added a cairo API to set up Win32 surfaces for HDC with alpha


    New API for added PDF functionality (see above), and new error
    status item for problems relating to PDF tagging.


    New error status items for handling of GDI, libfreetype, and libpng
    errors, respectively.

Dependency Changes

Performance Optimizations

Bug Fixes
* Bug fixes from 1.15.2 (see the 1.15.2 NEWS for details)

* Fix playback of recording surfaces into PDF surfaces, where objects
  with negative coordinates were not getting drawn.  To address this,
  the coordinate systems for PDF and PS have been changed to match
  cairo's coordinate system.  This allows recording surfaces to be
  emitted in cairo coordinates, and results in the same origin being
  used for all operations when using the recording surface XObject.
  Test cases for PDF and PS have also been updated accordingly.
  (Bug #89232)

* Fix "invalidfont" error on some printers when printing PDFs with
  embedded fonts that have glyphs (such as spaces) with
  num_contours == 0.  (Bug #79897)

* Fix missing glyphs such as thin dashes, which get scaled to 0 in
  userspace and thus have their drawing operations culled.  (Bug #94615)

* Fix other oddities caused by variously idiosyncratic fonts.

* Fix deadlock when destruction of a scaled font indirectly triggers
  destruction of a second scaled font, causing the global cache to be
  locked twice.  (Bug #93891)

* Fix X errors reported to applications when shmdt() is called before
  the Attach request is processed, due to missing xcb and xlib calls.

* Fix random failure in record-paint-alpha-clip-mast test case, caused
  by an incorrect assumption that a deferred clear can be skipped.
  (Bug #84330)

* Fix crash when dealing with an XShmGetImage() failure, caused by a
  double free in _get_image_surface().  (Bug #91967)

* Fix invalid execution of ASCII85 data by the PS interpreter that the
  image operator didn't use, by flushing the extraneous data after
  drawing the image.  (Bug #84811)

* Fix decoding of Adobe Photoshop's inverted CMYK JPEG files in PDF

* Fix unbounded surface assertion in win32-print code.

* Fix a data race in freed_pool discovered by Firefox's cairo usage.
  The patch adads atomic int load and store functions, with relaxed
  memory ordering.  (Bug #90318)

* Cleanup debugging text sent to stdout instead of log.  (Bug #95227)

* Fix build issue when using non-GNU strings utility.  (Bug #88639)

* Fix build of cairo modules as regular modules, not as versioned shared
  libaries.  (Bug #29319)

* Fix build on win32 using gcc 5.4.

* Fix build of script backend to require zlib.

* Update test suite reference images using Debian Jessie 64-bit and
  poppler current as of June, 2016.

* Various improvements to documentation and tests, compiler warning
  fixes, and an assortment of code refactoring and cleanup.