Subject: CVS commit: pkgsrc/graphics
From: Thomas Klausner
Date: 2014-10-22 11:55:36
Message id: 20141022095536.5AEBE98@cvs.netbsd.org

Log Message:
Update cairo to 1.14.0:

Release 1.14.0 (2014-10-13 Bryce Harrington <bryce@osg.samsung.com>)
====================================================================
Hard to believe it's been over a year since our last release, but it's
not for lack of activity.  This release includes contributions of a wide
assortment of bug fixes, build system improvements, warnings cleanups,
codebase refactoring, test suite repairs, and static analysis work.

This release is lighter on features (compared with 1.12.10) but includes
a highly demanded rehaul of our image downscaling functionality, which
solves a serious problem experienced by Inkscape users when shrinking
embedded bitmaps in SVG files.  The new scaling algorithms are used by
the image backend and by other backends as needed for fallbacks.

Features
--------

  Filtering improvements for the image backend, in particular
  down-scaling of images produces filtered images that depend on all the
  pixels of the source. When using the image backend you get the
  following settings:

  CAIRO_FILTER_GOOD: uses a box filter for scales less than .75 in
    either direction. For scales larger than this, the same filter as
    CAIRO_FILTER_BILINEAR is used.

  CAIRO_FILTER_BEST: uses a Catmull-Rom filter always. When upscaling
    more than 2x this will produce anti-aliased square pixels, similar
    to OS/X.

  CAIRO_FILTER_GAUSSIAN: uses PIXMAN_FILTER_BEST, which in current
    pixman is the same as BILINEAR. (This is subject to change in the
    future).

  xlib and xcb also use the image fallback for GOOD/BEST filters, but
  note that other backends do not implement these filtering fixes yet,
  however other actions may cause them to use an image fallback which
  will cause these filters to be used.

  Improve handling of device transformation and scaling, allowing Cairo
  to now support scaling at a device level, permitting easier, more
  transparent HiDPI support.

  Support JBIG2 mime data in PDF.  This allows embedding of more
  compressed JPEG formats within PDF, rather than including the full
  uncompressed image.  Also, reduce the number of transparency groups
  used by PDF to keep the file size small and viewing/printing of the
  PDF fast.

  Expand the embedding section to include stencil mask support.

  Reorder font declarations to be in natural order.

  Update the Skia backend to build against current Skia (as of June
  2014).

  Drop Link-Time Optimization (LTO) support from build system.  This
  seems to have caused much trouble for unclear benefit, and most
  distros are reverting or disabling it anyway.

  Optimize VBO size on GL to 1M and to 16k for EGL.  This improves
  (theoretical) performance for desktop GLX use cases while avoiding
  hitting VBO memory size limitations on embedded devices.

API Changes
-----------

  cairo_surface_set_device_scale, cairo_surface_get_device_scale:

    Sets a scale that is multiplied to the device coordinates
    determined by the CTM when drawing to @surface. One common use for
    this is to render to very high resolution display devices at a scale
    factor, so that code that assumes 1 pixel will be a certain size
    will still work.

  cairo_egl_device_get_display, cairo_egl_device_get_context:

    Support get/set of EGLContext and EGLDisplay for egl-based cairo
    devices, similar to GLX.

Dependency Changes
------------------

  Cairo now requires glib 2.14 for its gobject helper functions,
  and pixman 0.30 for downscaling.

Bug fixes
---------

  Don't embed CMYK Jpeg images in svg.

  Fix tests to place output in proper location.

  Fix determination of alpha for all surfaces when recording.

  Extend oversize check to cairo_gl_surface_create_for_texture, so an
  error surface is returned if the texture is too large to render to.

  Fix embedding of mime data in PDF and PS files.

  Remove useless error handling in *_reply() functions in XCB.

  Fix a double-free exposed by multithreaded apps creating and
  destroying the same font concurrently.
  https://bugs.freedesktop.org/show_bug.cgi?id=69470

  Fix corrupt stacks produced by bugs in operand emission for trace.

  Fix out of bounds array access in format cache for xlib

  Don't rename glyphs used by seac operator.  This can cause certain
  combined characters to use their decorations (e.g. umlauts on ö) to be
  lost during printing of PDFs using evince.
  https://bugs.freedesktop.org/show_bug.cgi?id=70364

  Fix crash on calling cairo_create with a finished surface

  Fix SSIZE_T definition problem when making with MSYS on Windows7

  Fix one off issue in gl context cleanup

  Fix usage of CAIRO_STACK_ARRAY_LENGTH

  Fix rectangle stroke with non rectilinear pen

  Fix imagemask with pattern source failure on some printers.  This bug
  could cause files converted using pdftops to fail for example on Ricoh
  printers, or opening in Adobe Distiller on Windows.
  https://bugs.freedesktop.org/show_bug.cgi?id=69485

  Fix whitespace in font names

  Fix page size in generated PDFs.  When printing using pdftocairo on
  larger page sizes, such as 11x17, the image would be cropped to letter
  size.
  https://bugs.freedesktop.org/show_bug.cgi?id=73452

  Fix path-currentpoint test by preserving current-point in
  copy_path()/append_path() sequence

  Fix generation of HTML in code docs for
  cairo-format-stride-for-width.  Raw HTML code was being passed
  to the browser, instead of displaying normally.
  https://bugs.freedesktop.org/show_bug.cgi?id=63257

  Fix spelling of "tessellator" throughout code.  We're using the
  American rather than British spelling of this word.
  https://bugs.freedesktop.org/show_bug.cgi?id=50411

  Fix crash in pixman_image_composite32

  Fix crash when trying to modify a (const) all-clipped cairo_clip_t
  https://bugs.freedesktop.org/show_bug.cgi?id=75819

  Add check_composite method to all compositors, to fix crashes in the
  test suite.

  Fix crash in Firefox when scrolling on certain pages.

  Fix memory leaks found by static analysis.

  Fix build of any2ppm if fork is not available.

  Fix broken build for Qt backend, due to missing libstdc++.

  Fix typo in two cairo_uint128 functions.  Fixes potential build issues
  on systems without a uint128 type.

  Fix build when --enable-pdf=no

  Fix cache_frozen assertions for Win32 print.

  Correctly check for xcb image surface for inplace upload

  Fix webkit-based web browser crashes due to empty boxes by skipping
  over them when tesselating.

  Make pixman, libpng, and zlib paths commandline configurable for win32
  builds.

  Fix image scale on Win32 when GDI scale is not identity.

  Fix float endian configure test when using clang -O4

  Fix compilation with Android bionic libc

  Don't try to build util/sphinx on Windows

  Fix loss of precision when emitting joins.  This was caused by
  discrepancies in line gradients when passing trapezoids around.

  Fix loss of precision and associated rendering issues in
  cairo-tor-scan-converter from projection onto sample grid.

  Fix pixman oversampling of neighbouring edges within a cell by
  eliminating self-intersections for the pixman traps compositor.

  Fix multi-line string splitting in PDFs

  Various cleanups and fixes to warnings, documentation, tests, and
  build system.  Improve error handling and return value checks.
  Cleanup XFAIL tests and reference images.  Cover recently added
  functionality.

Files:
RevisionActionfile
1.136modifypkgsrc/graphics/cairo/Makefile
1.6modifypkgsrc/graphics/cairo/Makefile.common
1.37modifypkgsrc/graphics/cairo/PLIST
1.77modifypkgsrc/graphics/cairo/distinfo
1.29modifypkgsrc/graphics/cairo-gobject/Makefile