cairo release 1.16.0 now available

Of particular note is a wealth of work by Adrian Johnson to enhance PDF functionality, including restoring support for MacOSX 10.4, metadata, hyperlinks, and more. Much attention also went into fonts, including new colored emoji glyph support, variable fonts, and fixes for various font idiosyncrasies. Other noteworthy changes include GLESv3 support for the cairo_gl backend, tracking of SVG units in generated SVG documents, and cleanups for numerous test failures and related issues in the PDF and Postscript backends.

After four years of development since 1.14.0, version 1.16.0 of the cairo 2D graphics library has been released. "" More information can be found in the change log

From: Bryce Harrington <bryce-AT-bryceharrington.org> To: cairo-announce-AT-cairographics.org Subject: cairo release 1.16.0 now available Date: Fri, 19 Oct 2018 13:51:30 -0700 Message-ID: <20181019205130.GG3957@bryceharrington.org> Cc: cairo-AT-cairographics.org, gnome-announce-list-AT-gnome.org, ftp-release-AT-lists.freedesktop.org, pr-AT-lwn.net Archive-link: Article

A new cairo release 1.16.0 is now available from: https://cairographics.org/releases/cairo-1.16.0.tar.xz which can be verified with: https://cairographics.org/releases/cairo-1.16.0.tar.xz.sha1 00e81842ae5e81bb0343108884eb5205be0eac14 cairo-1.16.0.tar.xz https://cairographics.org/releases/cairo-1.16.0.tar.xz.sh... (signed by Bryce Harrington) Additionally, a git clone of the source tree: git clone git://git.cairographics.org/git/cairo will include a signed 1.16.0 tag which points to a commit named: 3ad43122b21a3299dd729dc8462d6b8f7f01142d which can be verified with: git verify-tag 1.16.0 and can be checked out with a command such as: git checkout -b build 1.16.0 Release 1.16.0 (2018-10-19 Bryce Harrington <bryce@bryceharrington.org>) ======================================================================== This new stable release incorporates a number of improvements made in the four years since 1.14.0. Of particular note is a wealth of work by Adrian Johnson to enhance PDF functionality, including restoring support for MacOSX 10.4, metadata, hyperlinks, and more. Much attention also went into fonts, including new colored emoji glyph support, variable fonts, and fixes for various font idiosyncrasies. Other noteworthy changes include GLESv3 support for the cairo_gl backend, tracking of SVG units in generated SVG documents, and cleanups for numerous test failures and related issues in the PDF and Postscript backends. For a complete log of changes, please see https://cairographics.org/releases/ChangeLog.1.16.0 Features and Enhancements ------------------------- * Add support for OpenGL ES 3.0 to the gl backend. * 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: https://lists.cairographics.org/archives/cairo/2016-June/... * Variable font support. Variable fonts are single font files with various typography characteristics, such as weight or slant, that users of the font can adjust between two points. Effectively this enables a single font to behave as multiple fonts. * Restore MacOSX 10.4 support. Cairo had dropped 10.4 support when moving to the CoreText API. Now we automatically detect which API to use via dynamic linking, so can resume supporting this older version of MacOSX. * Support colored emoji glyphs, stored as PNG images in OpenType fonts. * Skia backend is removed * Use Reusable streams for forms in Level 3 Postscript. * Add CAIRO_MIME_TYPE_EPS mime type for embedding EPS files. * Add CCITT_FAX mime type for PDF and PS surfaces * svg: add a new function to specify the SVG document unit (Bug #90166) * Use UTF-8 filenames on Windows API Changes ----------- Several new APIs were added. No existing APIs were altered. New PDF functionality: * cairo_pdf_surface_add_outline * cairo_pdf_surface_set_metadata * cairo_pdf_surface_set_page_label * cairo_pdf_surface_set_thumbnail_size * cairo_tag_begin * cairo_tag_end * CAIRO_STATUS_TAG_ERROR New error status items for problems relating to PDF tagging: * CAIRO_STATUS_WIN32_GDI_ERROR * CAIRO_STATUS_FREETYPE_ERROR * CAIRO_STATUS_PNG_ERROR New error status items for handling of GDI, libfreetype, and libpng errors, respectively. Setting up Win32 surfaces for HDC with alpha channels: * cairo_win32_surface_create_with_format New API for added PDF functionality (see above), and new error status item for problems relating to PDF tagging. Variable fonts: * cairo_font_options_get_variations * cairo_font_options_set_variations Tracking units in SVG documents: * cairo_svg_surface_set_document_unit * cairo_svg_surface_get_document_unit Dependency Changes ------------------ None Performance Optimizations ------------------------- None Notable Bug Fixes ----------------- * Fix thin lines that don't show up when printing in Inkscape due to overly aggressive culling. (Bug #77298) * 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 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) * Handle SOURCE and CLEAR operators when painting color glyphs. (Bug #102661) * Fix falling back to system font with PDFs using certain embedded fonts, due to truncated font names. (Bug #103249) * Prevent curved strokes in small ctms from being culled from vector surfaces (Bug #103071) * Fix assertion hit with PDFs using Type 4 fonts rendered with user fonts, due to error when destroying glyph page. (Bug #103335) * Prevent invalid ptr access for > 4GB images. (Bug #98165) * pdf: Fix internal links pointing to other pages, by pre-calculating page heights so that link positions can be calculated more accurately. * Fix error reporting in the xcb backend if fallback fails. Instead of returning NULL when the X11 server can't do some operation, return a surface in an error state. * Clarify documentation regarding device scale inheritance and the units used in cairo_surface_create_similar_image. (Bug #99094) * Call XSync in the xlib backend before setting the error handler to ignore errors for certain requests, to make sure all pending errors are handled first. * Fix regression with text containing space character on Win32. (Bug: https://gitlab.freedesktop.org/cairo/cairo/issues/339) ------------------------------------------------------------------------ List of changes in this release: Adam Jackson (2): xlib: Don't crash when swapping a 0-sized glyph xcb: Don't crash when swapping a 0-sized glyph Adrian Johnson (129): Update mime type documentation. CFF: Fix unaligned access pdf: fix compiler warning build: fix regression on mingw pdf-operators: only wrap text strings for PS output Improve performance of cpu_to_be32 and be32_to_cpu pdf-operators: fix bug with RTL text doc: add index of new symbols in 1.14 cff: ensure glyph widths are positive when font matrix yy is negative cff: opentype fonts always use gid to lookup glyph scaled-font-subsets: if glyph 0 used for rendering, remap to different index ps: merge emit_recording surface and emit_recording_subsurface into one function ps: fix raster source patterns ps: fix subsurface recordings pdf: fix subsurface recordings win32-print: Fix the page extents win32-print: fix warnings win32-print: support raster_source patterns Don't cull very thin lines on vector surfaces Add test case for thin lines Fix some surfaces missed in b1192bea Compile fix win32-print: support subsurface recording patterns Compile fix 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 pdf: don't return uninitialized status pdf-operators: fix bug in line wrapping subsetting: support variable fonts Fix off by one check in cairo-image-info.c tests: fix bug in pdf-tagged-text that was introduced in 4790a36 pdf: link tags do not need to be leaf nodes in the document structure pdf: Don't emit /PageLabel dict when no labels defined pdf: don't write logical structure if it only contains links pdf: fix link positions pdf: use link attributes instead of dest name for cairo_pdf_surface_add_outline pdf: use explicit dest instead of named dest when 'internal' attribute is set RELEASING: use correct branch name Remove unused variable build: use _WIN32 instead of windows.h to check for windows build replace _BSD_SOURCE with _DEFAULT_SOURCE factor out ascii to double code in cff-subset into _cairo_strtod truetype: reserve space in subset arrays for .notdef truetype: clarify glyph count variables Prevent curved strokes in small ctms from being culled from vector surfaces svg: fix painting an unbounded recording surface output-stream: allow %s strings larger than 512 chars truetype: limit font name to 127 chars svg: use hash table instead of user_data to track emitted surfaces svg: source surface hash table does not need to hold the source svg2png: remove unused headers ft: prevent unused var warning when freetype < 2.8 fix unused function warnings svg: recording_surface is needed even if not emitted fix warning: variable X might be clobbered by 'longjmp' fix warning: inlining failed in call to '_csi_stack_push' util/font-view: fix build error Add CCITT_FAX mime type for PDF and PS surfaces Allow mime image to be different size to cairo image pdf: set ca/CA instead of using an smask when the mask has constant alpha pdf: set default create date pdf: remove old comment image: prevent invalid ptr access for > 4GB images Add mime-unique-id test pdf: fix mime-unique-id bounded recording test pdf: fix mime-unique-id unbounded recording test pdf: fix mime-unique-id jpeg attached to recording test ps: emit base85 strings instead of strings of base85 ps: remove unused prolog ps: use << >> for dictionaries instead of dict begin end ps: don't acquire image or snapshot in acquire_source_image_from_pattern ps: use forms for surfaces with UNIQUE_ID mime type ps: use Reusable streams for forms in Level 3 ps: add CAIRO_MIME_TYPE_EPS mime type for embedding EPS files test: use CAIRO_MIME_TYPE_UNIQUE_ID with record-text-transform ps: prevent self-copy infinite loop ps: fix padded image crash ps: fix extend-*-similar failures test: update some stale ref images pdf: fix document structure for non tagged structures ps: fix compile with old versions of MSVC pdf: fix some annotation bugs Prevent -Wundef warnings in when cairo-ft.h is used without fontconfig ps: fix compile warning Use _cairo_malloc instead of malloc Alban Browaeys (1): pattern: allow for a floating one pixel rounded difference. Aleksander Morgado (1): build: fix minor typo in autogen.sh Alexander Täschner (1): win32: Initialize mutexes for static builds for win32 Alexandre Bique (1): Fix test compilation when font-config is disabled Andrea Canciani (18): test: Release owned pattern test: Free test list font: Actually perform destruction of fonts quartz: Remove call to obsolete CGFontGetGlyphPath Update KNOWN_ISSUES documentation Update README with new minimum MacOSX requirements Harden make-cairo-test-constructors.sh test: Fix coverage-intersecting-triangles reference test: Correct bug number in clip-complex-bug61592 test: Always use DejaVu Sans as default font test: Update quartz reference images quartz: Align filtering quality with image backend quartz: be more strict about the behavior of blend operators quartz: Restore 10.4-specific font code test: Add a test for characters in the SMP unicode: Extract the UCS4 to UTF-16 conversion to a separate function quartz-font: Correct handling of SMP Unicode characters quartz-font: Fix text-glyph-range Antonio Ospite (2): svg: add a new function to specify the SVG document unit svg: fix compilation with MSVC which doesn't support C99 initializers Arpit Jain (3): xlib: Fix deferencing of uninitialised 'display' test/bitmap-font: Fix use of pointer after freed pointer gl: Fix incorrect size of expression Ashim (1): Fix out of bound access in struct pattern->type Behdad Esfahbod (23): [ft] Return CAIRO_STATUS_FILE_NOT_FOUND if font file can't be opened Oops, fixup previous commit Remove debug printf; ouch! Bug 29319 - Modules are built as versioned shared objects Fix color font support infinite-loop with empty glyphs Fix uninitialized status! [ft] Fix color font loading on big-endian systems Fix undefined-behavior with integer math Handle SOURCE and CLEAR operators when painting color glyphs [variations] Towards fixing test [variations] Fix test [variations] Merge variations in cairo-ft font option merging [varfonts] Use blend, not design, coordinates to check for non-base variation [varfonts] Correctly (re)set variations of named instances [ft] Use variations from ft_options, not scaled-font [ft] When merging font options, order variations correctly [ft] Fix warnings [ft] Remember variations set on FT_Face and apply them Merge branch 'font-variations' Use FT_Done_MM_Var() if available Fix compile with older FreeType without FT_Get_Var_Design_Coordinates Fixup on previous commit [ft] Implement some more color conversion routines Bryce Harrington (149): Start 1.14.1 development RELEASING: Update tags push command Add execution bit for make-cairo-test-constructors.sh Revert "Add execution bit for make-cairo-test-constructors.sh" RELEASING: Be explicit as to which tag is pushed Drop the target-specific huge-radial.pdf.*.ref.png images test: Use ARRAY_LENGTH macro Refactor ARRAY_LENGTH macro definitions in test code image: Fix crash in _fill_xrgb32_lerp_opaque_spans gitignore: logs, manuals doc: Drop extraneous para's git-ignore: Add build's test-driver Revert "xlib: Remove queued event from _XReadEvents" csi-trace: Add --version and --help args to utility HACKING: Add link to git tutorial and wordsmith a bit NEWS: Update for changes through Nov 2014 NEWS: Finish filling in changes On MacOSX, the sed utility errors out when parsing non-UTF8 files. Because of this, the generated cairo-test-constructor only contained a few tests and the test suite was thus incomplete. NEWS: Note about the OS X support KNOWN_ISSUES: Restore known issues file as a stub version: bump for cairo-1.14.2 release RELEASING: Update contacts Start 1.14.3 development surface: Clarify flush documentation NEWS: Sp. fix Fix spellings descibed, indicies, stange Fix broken canvas text font size in Inkscape cairo-script: Improve buffer length check cairo-script: Always include config.h first thing cairo-script: Add missing copyright and boilerplate cairo-script: Cleanup boilerplate header for consistency cairo-script: Prefer cairo from local tree cairo-script: Rename struct member to avoid name collision on AIX cairo-script: Fix sp. "directoriy" cairo-recording-surface: Fix loss of alpha when clipping cairo-script: Return a cairo_status_t error, not FALSE RELEASING: Add requirement to upload ChangeLogs configure: Fix typo for missing line continuation character cairo-gl: Still check the value of the macros truetype: Drop redundant check of truetype struct Revert "pattern: allow for a floating one pixel rounded difference." Revert "cairo-gl: Fix compiler warning if CAIRO_HAS_*_FUNCTIONS is not defined." If more than one trap is passed in then it's guaranteed that the returned traps will have their left edge to the left of their right edge, but if only one trap is passed in then the function always returns without doing anything. This results in incorrect rendering of SVG paths with more than one subpath. svg2png: Only call deprecated g_type_init() for old glib versions. test: Free the memory, not the pointer to the memory boilerplate: Fix list termination for glXChooseVisual NEWS: Fix date on release NEWS: Begin filling out news entry for upcoming 1.14.4. gitignore: Ignore .trs (test results) test: Add script to summarize the test results from a run test: Add script to display the difference between two result sets Ensure null-terminated result from strncpy() build: Use memory barriers for ARM NEWS: Whitespace cleanup NEWS: Update to cover changes to date 1.14.4 release WIP news and release NEWS: Update for 1.14.4 release RELEASING: Note how to upload the changelog RELEASING: Doc what's required to properly undo a publish Bump version for new development tree, 1.15.1 RELEASING: Doc handling devel versions for micro vs minor releases test: Fix use after frees RELEASING: Whitespace cleanup. Fix inconsistent tabbing. RELEASING: Fix misspelling in last commit RELEASING: Make X.Y.Z versions less ambiguous RELEASING: Drop inclusion of boilerplate in news messages RELEASING: Clarify snapshot numbering rules 1.15.2 release 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 RELEASING: Fix tabbing gl: Fix comment syntax drm: Add/reorder headers as required by check-preprocessor-syntax.sh 1.15.6 release Bump version for new development tree, 1.15.7 RELEASING: Note use of branches for stable releases RELEASING: Note adding index to cairo-docs.xml for minor releases cairo-docs: whitespace cleanup image: Disambiguate 0. in doxygen 1.15.8 release Bump version for new development tree, 1.15.9 glesv2: Fix regression in gles version detection gl: Convert images to rgba or a8 formats when uploading with GLESv2 gl: Make _cairo_gl_ensure_framebuffer a private shared routine gl: Add support for OpenGL ES 3.0 Factor out the ISFINITE() macro configure: Check for typeof Un-doxygen disabled cairo_set_opacity image: Fix include for use of ptrdiff win32: Fix since field version number Fix various doxygen warnings found by check-doc-syntax.sh Fix distcheck errors on use of #ifdef pattern: Mark a private routine as cairo_private. 1.15.10 release Bump version for new development tree, 1.15.9 svg: Label for cairo_svg_unit_t doxygen was incorrect makefile: Fix sorting of source files test: Fix compile with older FreeType without FT_Get_Var_Design_Coordinates RELEASING: Refine devel version and tagging Fix two type casting warnings in get_C_locale() font: Check return value from _cairo_ft_unscaled_font_lock_face xml: Typo in comment win32: Whitespace cleanup win32: Fix a few typos in comments compiler-private: Define what PLT stands for cairo-version: Fix version references in docs Disable skia from configure configure: Conditionalize color font feature for older freetype2 1.15.12 release Drop stray patch from prior commit gl: Whitespace cleanup win32: Copyedit recent comments test: Use C comment syntax, not C++ Bump version for new development tree, 1.15.13 script-surface: Check for invalid ids (CID #1159557, 1159558) bo: Check null return from _cairo_malloc_ab() (CID #1159556) snapshot: Don't use extra after it's been freed (CID #220086) bo: Free event_y in case of error to prevent memory leak (CID ##1160682) pdf: Fix potential null ptr deref when creating smask groups (CID #1159559) type1-subset: Fix incorrect null ptr check from find_token() (CID #1160662) polygon-intersection: Clarify ptr checks for right edges (CID #1160730) gl: For glesv3 detection, use glesv2.pc + header check scaled-font: Fix glyph and cluster count checks (CID #983386) Convert 3 headers to UTF8 build: Sp. fix doc: Add missing symbols to sections for recently added APIs Fix sp. sheering gstate: Minor grammar copyedit Normalize more test reference images with minor text rendering differences Normalize one more test image with minor gradient differences doc: Drop tmpl support 1.15.14 release Bump version for 1.15.15 RELEASING: Clarify how to add the news item Revert "Correctly decode Adobe CMYK JPEGs in PDF export" Drop skia backend win32: Fix regression with text containing space character test: Free resources in pdf2png 1.16.0 release Bump version for 1.17.1 Carlos Garcia Campos (1): scaled-font: Fix assert when destroying glyph page Chris Wilson (4): xlib: Bump reference count for recording surface replays Revert "xlib: Fix deferencing of uninitialised 'display'" xlib: Avoid using uninitialised variable on impossible error path stroker: Check for scaling overflow in computing half line widths Debarshi Ray (2): doc: Fix the units used by cairo_surface_create_similar_image doc: Clarify when the device scale is inherited and when it isn't Doran Moppert (1): image: Check for negative len in fill/blit functions Ed Schouten (2): Prevent observer surfaces from writing to stdout Write debugging information to the debugging file Emanuele Aina (1): cairo-trace: Fix duplicated surface push on similar-image Enrico Weigelt, metux IT consult (14): 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() drm: fixed missing includes drm: dropped obsolete/unused intel_bo_get_image() drm: use typedefs and defines from drm headers instead of redundant own definitions drm: fixed calls to _cairo_surface_init() Eric Hoffman (1): win32: Fix multi-monitor virtual desktop with negative monitor coords Federico Mena Quintero (7): Add .gitlab-ci.yml to run the tests automatically bfo#105084 - Initialize memory properly in _cairo_ft_font_face_create_for_pattern() cairo-analysis-surface: Quell invalid uninitialized variable warning test/extended-blend.c: Remove obsolete comments about buggy librsvg Normalize extended-blend-mask.{argb32,rgb24}.ref.png Normalize test images with minor gradient differences Normalize test reference images with minor text rendering differences Fredrik Fornwall (1): Fix cairo_get_locale_decimal_point() on Android Guillaume Ayoub (1): Use surface_transform in replay_and_create_regions Guillermo Rodriguez (2): script: Fix misleading indentation warning. Remove redundant check. Hans Breuer (1): win32: Fix compilation of 'cairo-path-stroke-traps.c' with MSVC8 Hans Petter Jansson (1): scaled-font: Fix deadlock when recursing in _cairo_scaled_font_reset_cache() Henry (Yu) Song (1): xlib: Remove queued event from _XReadEvents John Lindgren (1): Avoid indiscriminate use of VALGRIND_MAKE_MEM_NOACCESS. Julien Isorce (1): build: Show all disabled features in cairo-features.h Koop Mast (1): cairo-gl: Fix compiler warning if CAIRO_HAS_*_FUNCTIONS is not defined. Kouhei Sutou (2): pdf: Remove duplicated item pdf: Fix wrong cairo_pdf_outline_flags_t item prefix Marc-André Lureau (1): xlib: fix mixing xcb & xlib calls Massimo (1): bfo#91271 - Fix access of uninitialized memory Massimo Valentini (6): tor-scan-converter: can't do_fullrow when intersection in row + 0.5subrow win32: Fix crash from win32 surface's image size too small polygon-intersection: Do not discard intersection exactly at top edge polygon-intersection: Include approximation in intersection points polygon-intersection: Try not to invoke undefined behaviour polygon-intersection: Delete misleading comments and dead-code Matthias Clasen (27): Add support for color glyphs to cairo_scaled_glyph_t Support loading color glyphs with freetype Expose 'has color glyphs' as a scaled font property Implement has_color_glyphs for freetype Render color glyphs as source, not as mask Simplify things a bit Fix a logic error in color glyph compositing Make _intern_string_hash safe for "" Make _intern_string_hash non-static Add font variations to font options Load font variations from fontconfig too Use strtod_l when available Apply font variations when loading fonts Add a test for font variations Work around a freetype bug Make the font-variations test pass Apply font variation options consistently Always save the origin face index Trivial: code movement Apply font variations when loading glyphs fixup: remove a hack fixup Shortcut FT_Set_Var_Design_Coordinates Fix a memory leak Don't leak patterns when compositing color glyphs Add a _cairo_font_options_fini function Don't leak memory in font options Michael Haubenwallner (8): fix conflicting types for 'sync' on AIX, bug#89338 skip MAP_NORESERVE when unsupported define _GETDELIM for getline() on AIX test: fix include order for AIX, bug#89354 perf/micro: fix include order for AIX, bug#89354 perf: fix include order for AIX, bug#89354 headers: fix include order for AIX, bug#89354 headers: fix include order for AIX, bug#89354 Mikhail Fludkov (2): Surround initialisations with atomic critical section Fix code generation when using GCC legacy atomic operations Nathan Froyd (1): Support new-style __atomic_* primitives Olivier Blin (1): Pull -lz for the script backend Patrick Fritzsch (1): win32: check if GetTextMetrics failed Paul Menzel (3): Use HTTPS URLs for cairographics.org domains Use HTTPS URLs for freedesktop.org domains Use HTTPS URLs for gnome.org domains Peter TB Brett (1): Correctly decode Adobe CMYK JPEGs in PDF export Ravi Nanjundappa (2): Fix warnings from check-doc-syntax.sh Fix one more warning from check-doc-syntax.sh Rodrigo Rivas Costa (1): win32-print: fix transparent images have black background Sahil Vij (1): gl: Fix bug in _cairo_gl_pattern_texture_setup() Tom Schoonjans (1): Use UTF-8 filenames on Windows Uli Schlachter (21): tor-scan-converter: Correctly align 64bit types xcb: Query the display's subpixel order via RENDER xlib-xcb: Don't be lazy and use the real xcb_screen_t XCB: Don't attach uploaded surfaces as snapshots xcb: Fix _put_shm_image_boxes if no SHM available xcb: Fix _put_image_boxes() if no SHM is available Fix cairo-xlib-xcb compilation xlib: Fix double free in _get_image_surface() cairo-xcb: Remove a wrong optimisation xlib: Remove unused variable xlib: Call XSync() before ignoring errors Revert "stroker: Check for scaling overflow in computing half line widths" xcb: Fix error reporting if fallback fails Revert "fix warning: variable X might be clobbered by 'longjmp'" Add test for error handling with broken PNG streams Fix warning: '*' in boolean context fix warning: variable X might be clobbered by 'longjmp' Fix a 'memory leak' in the image compositor Skip font-variations test for missing fonts pthread-same-source: Refresh reference images Fix assertion failure in the freetype backend Unknown (1): Cairo trivial typos Vasily Galkin (3): win32: Introduce new flag to mark surfaces that support solid brush drawing win32: CAIRO_WIN32_SURFACE_CAN_RGB_BRUSH and other argb32 flags set+check win32: Allow GDI operations for argb32 surfaces (allowed by surface flags) Wan-Teh Chang (1): Fix data race in freed_pool Zan Dobersek (1): Manually transpose the matrix in _cairo_gl_shader_bind_matrix() darxus@chaosreigns.com (2): Remove closed poppler bugs from test/README Add example to run specific tests by name to the test/README suzuki toshiya (1): csi-trace does not show help Руслан Ижбулатов (2): win32: Add cairo API to set up a Win32 surface for an HDC with an alpha channel. win32: Add a win32 boilerplate that uses a real window 江頭幸路 (1): Avoid appending an empty slot to an user data array when user_data is NULL. -- Bryce Harrington - bryce@bryceharrington.org Senior Open Source Developer - bryce@osg.samsung.com Open Source Group - Samsung Research America