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.

What is cairo
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System (via both Xlib and XCB), quartz, win32, and image buffers,
as well as PDF, PostScript, and SVG file output. Experimental backends
include OpenGL, BeOS, OS/2, and DirectFB.

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

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

The latest versions of cairo can always be found at:

Documentation on using cairo and frequently-asked questions:

Mailing lists for contacting cairo users and developers:

Roadmap and unscheduled things to do, (please feel free to help out):

Adrian Johnson (46):
      scaled-font: don't store pointer in hash value
      Add CAIRO_STATUS_PNG_ERROR for errors returned by libpng
      Adding missing error status to utils
      Add CAIRO_STATUS_FREETYPE_ERROR for errors returned by libfreetype
      Add CAIRO_STATUS_WIN32_GDI_ERROR for GDI errors
      pdf2png: fix deprecated warning
      svg2png: fix deprecated warning
      test: add record-neg-extents
      Add recording-ink-extents test
      Fix test failures when recording surface extents has negative x,y
      pdf: change from pdf coordinates to cairo coordinates
      Fix PDF record-neg-extents test failure
      test: replay record surface with negative extents for each extend mode
      image: fix record-replay-extend test failures
      pdf: fix record-replay-extend test failures
      ps: change from ps coordinates to cairo coordinates
      Fix PS record-neg-extents test failure
      Update ref images
      image: only cache analyzed transparency/color for snapshot surfaces
      win32-print: fix unbounded surface assertion
      win32: gcc 5.4 build fix
      recording: Remove unused function
      pdf: remove unused variable
      add test text-unhinted-metrics
      ft: set font size to em size when retrieving unhinted metrics
      test: refresh text-rotate ref images
      truetype: Don't write glyph if num_contours == 0
      ps: flush ASCII85Decode file after use
      ps/pdf: remove debug and commented out code
      pattern: don't round extents to 0 on vector surfaces
      pdf: Don't fail subsetting if unable to convert utf8 to utf16
      truetype: reverse cmap search should end when 0xffff- 0xffff range reached
      pattern: revert an unintentional change added in 190678f
      pdf: fix combined image/smask
      Add tag functions to cairo_t and cairo_surface_t
      Add tag functions to recording surface and surface-wrapper
      Support tag operations in analysis and paginated surface
      pdf: structured text and hyperlink support
      pdf: add document outline API
      pdf: metadata API
      pdf: page label API
      pdf: thumbnail API
      add test for PDF document interchange features such as tagged text and links
      fix make check
      fix compiler warnings
      strndup is not avuilable with MSVC

Behdad Esfahbod (1):
      Bug 29319 - Modules are built as versioned shared objects

Bryce Harrington (10):
      RELEASING: Fix documentation of proper ChangeLog path
      cairo-misc: Whitespace cleanup
      Fix grammar in cairo_*_reference() function documentation.
      pattern: Fix incorrect grammar in cairo_pattern_get_type.
      build: Don't rely on non-POSIX 'strings -' behavior
      gl: Treat GLES v2 as a separate flavor from GLES v3
      gl: Fix one more CAIRO_GL_FLAVOR_ES3 enum
      NEWS: Fix a couple typos
      1.15.4 release
      Bump version for new development tree, 1.15.5

Ed Schouten (2):
      Prevent observer surfaces from writing to stdout
      Write debugging information to the debugging file

Enrico Weigelt, metux IT consult (10):
      core: updated .gitignore
      core: reintroduce bot-scan-converter functions
      core: dropped unnecessary local variable in _cairo_composite_rectangles_intersect()
      core: some in-code documentation
      drm: fix importing of libdrm
      core: fix compiler warnings
      core: helper inline for rect->box conversion
      core: dropped actually unused parameter of _cairo_boxes_to_array()
      core: fixed code duplication
      qt: replaced calls to _cairo_clip_init_copy() by _cairo_clip_copy()

Guillaume Ayoub (1):
      Use surface_transform in replay_and_create_regions

Hans Petter Jansson (1):
      scaled-font: Fix deadlock when recursing in _cairo_scaled_font_reset_cache()

Olivier Blin (1):
      Pull -lz for the script backend

Peter TB Brett (1):
      Correctly decode Adobe CMYK JPEGs in PDF export

Uli Schlachter (2):
      xlib: Fix double free in _get_image_surface()
      cairo-xcb: Remove a wrong optimisation

Wan-Teh Chang (1):
      Fix data race in freed_pool

darxus chaosreigns com (2):
      Remove closed poppler bugs from test/README
      Add example to run specific tests by name to the test/README

Bryce Harrington <bryce osg samsung com>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]