cairo-1.17.8
A new cairo snapshot 1.17.8 is now available from:

    https://cairographics.org/snapshots/cairo-1.17.8.tar.xz

    which can be verified with:

    https://cairographics.org/snapshots/cairo-1.17.8.tar.xz.sha256sum
    5b10c8892d1b58d70d3f0ba5b47863a061262fa56b9dc7944161f8c8b783bc64 *cairo-1.17.8.tar.xz

    https://cairographics.org/snapshots/cairo-1.17.8.tar.xz.sha256sum.asc
    (signed by Emmanuele Bassi)

  Additionally, a git clone of the source tree:

    git clone https://gitlab.freedesktop.org/cairo/cairo.git

    will include a signed 1.17.8 tag which points to a commit named:
    c3b672634f0635af1ad0ffa8c15b34fc7c1035cf

    which can be verified with:
    git verify-tag 1.17.8

    and can be checked out with a command such as:
    git switch -C build 1.17.8

Release 1.17.8 (2023-01-30 Emmanuele Bassi )
==============================================================

A new cairo snapshot! And it only took less than one year, this time!

Many thanks to everyone who contributed to cairo, and especially
to (in no particular order):

- Adrian Johnson
- Khaled Hosny
- Behdad Esfahbod
- Matthias Clasen
- Uli Schlachter
- Manuel Stoeckl
- Fujii Hironori
- Tim-Philipp Müller
- Luca Bacci
- Caolán McNamara
- John Ralls

In a continuing effort to reduce the amount of legacy code, and increase
the long-term maintainability of cairo, the following backends have been
removed:

- GL and GLES drawing

Additionally, cairo's Autotools build system has been removed; from now on,
cairo will only support the Meson build system. While the end result should
be identical, further testing is appreciated.

In this snapshot, cairo gained support for rendering COLRv1 fonts, and
rendering SVG and COLRv1 fonts with custom palettes.

Support for macOS and Windows has been improved, with lots of build and bug
fixes.

Lots of safety issues have been fixed, with array bounds checking and
plugging memory leaks, as well as fixes for bugs identified via fuzzying.

This is going to be the last snapshot of the 1.17 development cycle; we only
expect minor bug fixing and improvements until the 1.18.0 release.

Full changes since 1.17.6
=========================

Adrian Johnson (159):
      pdf: reset current operator when resetting clip
      pdf: reset gstate in groups
      Merge branch 'master' into issue-514
      On vector surfaces render color glyphs in the fallback resolution
      Update ref images
      Ensure DWrite toy fonts can not fail if font name not found
      Fix type1-subset indexing
      Check font status in show_text_glyphs
      Add CAIRO_DEBUG_PS_NO_DATE env var to remove date from PS output
      Replace use of ctype functions with internal version where only ASCII chars are used
      cairoint.h: update some comments
      Dwrite: implement is_synthetic()
      Fix DWrite error handling
      DWrite: Use twin font if default font not found
      Allow the C++ code in dwrite-font to use the debug functions
      Fix scaled_glyph hash lookup on Win64
      Fix Win64 compile warning
      Dwrite glyph_path fails when the font matrix is not a positive uniform scale
      DWrite: ensure all private functions are static
      DWrite: check 'head' table as well as 'name' when comparing fonts
      DWrite: Replace manual or missing ref counting with RefPtr
      Fix mingw warning
      Merge branch 'font-status' into 'master'
      Merge branch 'color-font-vector-surface' into 'master'
      Merge branch 'fix-color-glyph-clear-surface' into 'master'
      Fix the scaled_glyph_init color glyph logic
      Merge branch 'fix-color-glyph' into 'master'
      Merge branch 'issue-514' into 'master'
      Merge branch 'quartz-core-text' into 'master'
      Fix GL warnings
      Add -Werror for meson CI build
      Add mingw-32 and mingw-64 CI builds
      dwrite: Fix incorrect rendering of some SVG fonts
      Merge branch 'warnings' into 'master'
      Merge branch 'mingw-ci' into 'master'
      python script to view tests results
      Merge branch 'view-test-results' into 'master'
      Make it easier for cairo-test-suite to find the source dir
      Fix deadlock in cairo-scaled-font.c
      Fix deadlock in cairo-scaled-font.c
      Remove unused code
      Clamp path coordinates
      Update long-lines test
      view-test-results.py: try up to 10 ports
      big-trap test works
      autotools CI: build it faster
      Update huge-linear and huge-radial pdf ref images
      Merge branch 'try-ports' into 'master'
      Merge branch 'clamp-coordinates' into 'master'
      Merge branch 'scaled-font-deadlock' into 'master'
      Add color palette option
      Add color mode option
      Test color_mode option in ft-color-font test
      svg: Fix invalid output when image size is 0x0
      Merge branch 'mutex-fix' into 'master'
      Merge branch 'color-option' into 'master'
      Merge branch 'dwrite-disable' into 'master'
      ft: move CAIRO_SCALED_GLYPH_INFO_METRICS into separate function
      user fonts: ensure snap_x/y_scale are initialized
      Fix ink extents of recording surfaces within recording surfaces
      Support SVG fonts in FT backend
      FT SVG color font test
      SVG font test using cairo logo
      ft-svg-render test
      Fuzzer
      FT: support COLRv0 recording surface
      Add some missing slim_hidden entries
      Merge branch 'lzw_eod_code_width' into 'master'
      Merge branch 'negative-version-values' into 'master'
      Merge branch 'bug-535' into 'master'
      Merge branch 'pbounds-size' into 'master'
      Bash completion for cairo-test-suite
      Merge branch 'bash-completion' into 'master'
      Merge branch 'lzw-compress-1-byte' into 'master'
      Merge branch 'ft-svg-fonts' into 'master'
      user-font-color test: draw glyphs again inside a group
      Copy completion.bash to $builddir/test
      Add README.meson file for meson test
      Merge branch 'test-readme' into 'master'
      Support check-def.sh in meson build
      Merge branch 'tests' into 'master'
      Move check-refs.sh into its own test
      Fix mingw build failure when SVG fonts enabled
      Fix bug in strndup implementation
      Fix mingw warning: "ERROR" redefined
      Fix leak
      Use _cairo_strndup where appropriate
      Fix user-font with foreground in group failures on image, PDF, and PS
      Merge branch 'foreground-color-in-group' into 'master'
      Remove the test ignore that was unintentionaly committed in !380
      Merge branch 'undo-ignore' into 'master'
      Merge branch 'separate-check-refs' into 'master'
      Merge branch 'mingw-fixes' into 'master'
      COLRv1 glyph renderer
      Integrate COLR v1 renderer with cairo-ft-font.c
      Fix a couple of bugs and add a #define to enable debug
      Render COLRv1 to a recording surface
      Use cairo-ft-font.c decompose function
      COLRv1: Use cairo style and types
      Require -DDEBUG_ENABLE_COLR_V1 to enable the COLR v1 renderer
      Enable error log output of meson test --no-suite=slow in CI
      Remove autotools build
      Rename INSTALL.meson and README.meson
      Merge branch 'colr-v1' into 'master'
      Merge branch 'pr/Fix617' into 'master'
      Merge branch 'bug-566' into 'master'
      Merge branch 'bug-619' into 'master'
      Merge branch 'bug-606' into 'master'
      PS: Wrap embedded EPS in %%BeginDocument/%%EndDocument as required by EPS spec
      Merge branch 'eps' into 'master'
      Merge branch 'defining-windows-version-macros-in-meson-build' into 'master'
      README fixes
      We don't use HAVE_CONFIG_H anymore
      Add emacs modeline to CODING_STYLE
      Documentation fixes
      Add a test that demonstrates a recording surface bug when re-used on different surfaces
      pdf-tagged-text depends on PDF
      Fix shared use of recording surface with paginated targets
      Merge branch 'meson-and-doc-fixes' into 'master'
      Merge branch 'fix-shared-recording-surface' into 'master'
      Ensure outline font is used when CAIRO_COLOR_MODE_NO_COLOR is set
      colrv1: Don't use EM size when hint metrics is off
      colrv1: Fix palette alpha
      Merge branch 'colrv1-fixes' into 'master'
      Merge branch 'colr-foreground-alpha' into 'master'
      Merge branch 'optimize-paint-composite' into 'master'
      Merge branch 'colrv1-stack-variable' into 'master'
      svg-font: return SVG_FONT_ERROR on error
      svg-font: fix parse bug on empty tags
      Merge branch 'custom-color-palette-2' into 'master'
      Silence make-cairo-def.sh output
      Add test for SVG font palettes
      Merge branch 'fix-svg-crash' into 'master'
      Merge branch 'fix-clear-color-glyphs' into 'master'
      Merge branch 'svg-font-palette' into 'master'
      dwrite: use custom palette when rendering COLRv0
      Add new cairo_user_scaled_font_get_foreground_source() function
      Update user font tests to test foreground colors
      Merge branch 'fix-user-fonts-foreground' into 'master'
      Foreground color fixes for ft, svg, colrv1
      svg: test foreground colors
      Rename is_userfont_foreground to is_foreground_marker
      Merge branch 'dwrite-docs' into 'master'
      Merge branch 'doc-fixes' into 'master'
      Merge branch 'dwrite-custom-palette' into 'master'
      Merge branch 'calloc' into 'master'
      Documentation updates
      Mime type updates
      Merge branch 'fix-ft-foreground' into 'master'
      Merge branch 'doc-api-index' into 'master'
      Merge branch 'documentation-updates' into 'master'
      Add missing documentation
      Merge branch 'more-doc-fixes' into 'master'
      Fix dwrite crash when printing dwrite toy font
      Merge branch 'fix-dwrite-crash' into 'master'
      dwrite: create C++ dwrite header
      s/the the/the/
      Merge branch 'dwrite-cpp-header' into 'master'
      Merge branch 'dwrite-new-api' into 'master'

Ayman El Didi (1):
      fixed double free in _cairo_ps_surface_emit_base85_string

Behdad Esfahbod (13):
      [unicode] Non-characters are allowed in Unicode strings
      [mutex] Fix build with no mutexes
      [malloc-stats] Fix to not crash
      Merge branch 'malloc-stats' into 'master'
      [COLRv1] Apply alpha to foreground color
      [COLRv1] Allocate context variable on the stack
      [COLRv1] Optimize paint-composite
      [gstate] Fix cairo_font_options_t memory management
      [scaled-font] Clean up font-options before copy
      Merge branch 'scaled-font-options' into 'master'
      [colrv1] Fix crash in get_palette_color
      Merge branch 'colrv1-fix-crash' into 'master'
      [malloc-stats] Measure calloc

Benjamin Gilbert (1):
      meson: allow disabling DWrite

Benjamin Hennion (1):
      Make _cairo_paginated_surface_set_size takes double-typed width and height (instead of integers).

Caolán McNamara (1):
      ofz#50805 crash seen in fuzzing libreoffice text rendering

Christian Rohlfs (3):
      test: Add new `round-join-bug-520` tests
      Round joins fix (spline_cusp_tolerance)
      Removed `round-join-bug-520*` CI exceptions for Quartz backend

Daniel Hammerschmid (2):
      Fix output of EOD code with incorrect code width in _cairo_lzw_compress
      Fixed crash in _cairo_lzw_compress for 1 byte input

David King (1):
      autotools: Dist some files required for meson

Emmanuele Bassi (18):
      Post-release version bump to 1.17.7
      Merge branch 'ft-default-lcd-filter' into 'master'
      Merge branch 'link-to-the-ssp-static-library-when-fortify-source-is-enabled' into 'master'
      Merge branch 'privatize-csi-stack-push' into 'master'
      Merge branch 'fix-build-with-newer-libbfd' into 'master'
      Merge branch 'fix-long-lines' into 'master'
      Merge branch 'fix-device-scaling-doc-comments' into 'master'
      Drop cairo-gl
      Merge branch 'no-more-gl' into 'master'
      build: Turn version.py into idiomatic Python
      perf: Disable deprecation warnings for the perf widget
      Move documentation files to the doc directory
      docs: Update the release instruction
      docs: Update the bibliography
      docs: Drop the pre-1.0 porting guide
      docs: Remove KNOWN_ISSUES
      docs: Port the README to Markdown
      Release Cairo 1.17.8 (snapshot)

Feysh INC (3):
      Fix a double free in _cairo_mono_scan_converter_create
      Fix a use after free in cairo_scaled_font_create
      Fix a use after free in _cairo_svg_surface_create_for_stream_internal

Fujii Hironori (8):
      Remove the unbounded recording surface assertion
      Don't leave a font face in an error state after a scaled font creation failure
      DWrite: Don't call _controlfp_s with MCW_PC
      sizeof(cairo_atomic_int_t) should be sizeof(int)
      Defining Windows version macros in meson.build
      DWrite: Removed old unused API
      DWrite: Added new API to set measuring mode and rendering params
      DWrite: Fix incorrect glyph metrics for negative glyph height

Jeff Muizelaar (2):
      quartz: Avoid reading beyond the end of image surfaces.
      Merge branch 'quartz-memcpy' into 'master'

John Ralls (11):
      [quartz] Destroy local copy of snapshot after attaching it.
      [quartz] Fix some compiler warnings.
      [quartz] Require at least Mac OS X 10.7 Lion
      Reimplement cairo-quartz-font with Core Text.
      [quartz] Convert font handling from CGFont to CTFont.
      [quartz] Implement color font support.
      [quartz] Adjust x_extents metric.
      [quartz] Add wiggle test for quartz emoji.
      Pass the same type when creating the static glyphs and positions arrays.
      Change expected fails and reference image so that Quartz CI passes.
      Require macOS CI job to pass again.

Jonathan Kew (2):
      Ensure pbounds.size is initialized even in EXTEND_NONE mode.
      Fix x/y typo in _cairo_pdf_surface_analyze_operation

Jussi Pakkanen (2):
      Add missing commas to array values.
      Zero terminate temp buffers before calling strcat.

Khaled Hosny (4):
      Simplify generating dwrite-fonts docs
      doc: fix generation of API indices
      Fix gtk-doc syntax
      doc: Further fix API indices

Luca Bacci (7):
      Meson: link to -lssp when enabling _FORTIFY_SOURCE
      Meson: use an array to provide multiple arguments
      Pair usage of operator new[] with a corresponding delete[]
      Make cairo_scaled_font_t mutex recursive
      Check for scaled_font::cache_frozen in glyph_page_can_remove()
      Remove explicit dependency on libssp
      perf: fix compilation on Win32

Manuel Stoeckl (3):
      Add array bounds check for xrender format lookup
      Add remaining image formats to cairo-script constants table
      Add test for loading 16 bit PNG images

Matthias Clasen (8):
      Fix rendering of color glyphs on a clear surface
      Document whether colors are premultiplied
      cairo-ft: Fix palette handling
      cairo-ft: Pass the palette to the COLRv1 renderer
      Add a custom palette to font options
      Use the custom palette for COLv1 renderer
      Reshuffle code for clarity
      surface: Don't optimize away color glyphs

Nikolaus Waxweiler (1):
      Set default LCD filter to FreeType's default

Pierre Labastie (1):
      Update util/cairo-script/cairo-script-interpreter.pc.in

Simon McVittie (6):
      util: Don't expose _csi_stack_push in public ABI
      Fix build with newer binutils-dev installed
      meson: Split tests up into test suites
      CI: Invoke test scripts via `meson test` where possible
      meson: Only link cairo-script-interpreter with liblzo
      CI: Update test artifacts to be appropriate for out-of-tree Meson build

Tim-Philipp Müller (10):
      Merge branch 'meson-list' into 'master'
      ci: update windows image and use new 2022 runner and vs2019
      Merge branch 'ci-update-windows-image' into 'master'
      ci: update Windows image to latest, and glib wrap too
      Fix build on Windows with -Ddefault_library=static
      ci: bump macOS image to latest / 12.3
      ci: mark macOS job as allowed to fail, unit tests are broken
      Merge branch 'ci-update-windows-image' into 'master'
      ci: bump windows tag to latest
      Merge branch 'no-more-autotools' into 'master'

Uli Schlachter (73):
      Add missing ref image for clip-unbounded
      Fix bug #535 in cairo-script
      script: Implement device finish
      Add an rgb24 ref image for alpha similar
      Merge branch 'meson-fixes' into 'master'
      Merge branch 'dwrite-toy-font' into 'master'
      Merge branch 'doxygen-typos' into 'master'
      Merge branch 'issue-551' into 'master'
      Merge branch 'issue-537' into 'master'
      Merge branch 'ctype' into 'master'
      Merge branch 'dwrite-fixes' into 'master'
      Merge branch 'fix-double-free-mono-scan' into 'master'
      Merge branch 'fix-uaf-stream_internal' into 'master'
      Merge branch 'issue558' into 'master'
      Merge branch 'issue562' into 'master'
      Merge branch 'dwrite-svg-fix' into 'master'
      Merge branch 'master' into 'master'
      Revert "ci: Make Windows jobs manual"
      Merge branch 'srcdir' into 'master'
      Merge branch 'fix-clip-unbounded' into 'master'
      Merge branch 'fix-rgb24-tests' into 'master'
      Merge branch 'reenable-windows-ci' into 'master'
      Merge branch 'palette-option' into 'master'
      Fix issue 579
      Run test scripts in meson CI
      Fix complaints from check-preprocessor-syntax.sh
      Merge branch 'run-check-scripts-in-ci' into 'master'
      Merge branch 'lzo-only-in-script' into 'master'
      Merge branch 'use-meson-test-for-scripts' into 'master'
      Merge branch 'issue-579' into 'master'
      Merge branch 'pdfarray' into 'master'
      Merge branch 'ofz50805' into 'master'
      Merge branch 'mismatched-new-delete' into 'master'
      Merge branch 'fix-issue-587' into 'master'
      Merge branch 'scaled-font-make-mutex-recursive' into 'master'
      cairo_pdf_version_to_string: Check for negative values
      Merge branch 'remove-explicit-dependency-on-libssp' into 'master'
      Merge branch 'pass-quartz-tests' into 'master'
      Merge branch 'testfix' into 'master'
      Merge branch 'document-premul' into 'master'
      Merge branch 'round-join' into 'master'
      Test cairo-ps in CI
      ps: Fix crash in self-copy-overlap
      Merge branch 'test-ps' into 'master'
      Merge branch 'round-join' into 'master'
      coverage.c: Use width/height arguments
      Speed up coverage-column-triangles test
      Fix memory leak in type3 glyph surface
      Fix out-of-bounds access in cff subset
      Fix a possible out-of-bounds read
      Merge branch 'clipper-memory-leak' into 'master'
      Merge branch 'oob-cff-subset' into 'master'
      Improve cff index reading code
      Merge branch 'improve-offset-size-checking' into 'master'
      Remove duplicate reference images
      Run check-refs.sh in CI
      Merge branch 'script-bug-277' into 'master'
      Switch CI tests from autotools to meson
      Merge branch 'speed-up-coverage-column-triangles' into 'master'
      Fix an out of bounds read in _jbig2_get_next_segment()
      Fix possible out-of-bound reads in get_jpx_info
      Merge branch 'jbig2-out-of-bounds-read' into 'master'
      Merge branch 'duplicate-ref-images' into 'master'
      Merge branch 'jpx-out-of-bounds' into 'master'
      Merge branch 'ci-tests-meson' into 'master'
      Merge branch 'ci-bump-windows-image' into 'master'
      Fix a leak in the cairo-svg-glyph-renderer
      Merge branch 'svg-glyph-renderer-leak' into 'master'
      Fix docs for cairo_surface_[sg]et_device_scale
      Merge branch 'bug-607' into 'master'
      Merge branch 'test-png16-load' into 'master'
      Merge branch 'gstate-font-options' into 'master'
      Merge branch 'too-many-the' into 'master'

luz paz (1):
      Fix typos in doxygen and source comments

Full changes since 1.17.6
=========================

Adrian Johnson (104):
      Create cairo version of isxdigit()
      Merge branch 'isxdigit' into 'master'
      Remove all gstate from _cairo_surface_tag
      test: add URL and "rect" attribute to pdf-tagged-text
      Fix crash
      Fix PS test crash
      Merge branch 'dont-drop-tags' into 'master'
      Update DSC documention
      Merge branch 'ps-docs' into 'master'
      Fix some type1-subset array indexing bugs
      Merge branch 'recording-surface-tags' into 'master'
      Merge branch 'type1-subset-fixes' into 'master'
      Merge branch 'cff-subset-leak' into 'master'
      cff: Check subroutine number is valid before using as an array index
      Merge branch 'issue-413' into 'master'
      Merge branch 'strtod-fix' into 'master'
      cff: use correct size cast when decoding bytes to a signed int
      truetype: check cmap size before allocating memory
      PS: ensure setup DSC comments are in BeginSetup section
      Merge branch 'parse-float-errors' into 'master'
      Merge branch 'pdf-stdio-write-errors' into 'master'
      Merge branch 'recording-playback-nothing-to-do' into 'master'
      tags: allow links to page numbers not yet created
      Use uintptr_t for all casts between pointer and integer
      Fix some win32 compile warnings
      Change FNV hash to 64-bit
      Merge branch 'svg-create-for-stream' into 'master'
      Add meson install instructions
      Merge branch 'meson-install' into 'master'
      INSTALL.meson: correct the wording
      Merge branch 'fix-wording' into 'master'
      pdf: use cross-reference stream for PDF >= 1.5
      pdf: add support for object streams for PDF >= 1.5
      pdf: convert all document interchange features to use object streams
      pdf-tagged-text test: disable object stream compression
      pdf: use floating point widths when emitting fonts
      Merge branch 'issue-426' into 'master'
      pdf-tagged-text: generate both 1.4 and 1.5 PDFs
      Merge branch 'pdf-object-streams' into 'master'
      Print tag error details when CAIRO_DEBUG_TAG is defined
      Merge branch 'tag-error' into 'master'
      pdf links: fix forward references to dest names with 'internal' flag
      Merge branch 'pdf-links-fixes' into 'master'
      meson: add endian check
      Add ft-color-font test
      Merge branch 'win32-printing-fix' into 'master'
      Merge branch 'STRNDUP-bug' into 'master'
      Merge branch 'MMAP-bug' into 'master'
      Fix some mingw warnings and correct the value of R_OK
      Merge branch 'mingw-warnings' into 'master'
      Add color user-font support
      Merge branch 'issue-389' into 'master'
      Merge branch 'endian' into 'master'
      Fix color fonts when antialias == SUBPIXEL or NONE
      Merge branch 'issue-404' into 'master'
      copy all autotools compiler warnings to meson build
      Merge branch 'meson-warnings' into 'master'
      Add cairo_user_font_face_get_render_color_glyph_func
      Merge branch 'fix-color-glyph-compositing' into 'master'
      Merge branch 'ebassi/meson-gtk-doc' into 'master'
      Merge branch 'HairlineStroke' into 'master'
      Merge branch 'warning-level' into 'master'
      Fix cast between incompatible function types warnings
      Fix some warnings
      Add cairo_pdf_surface_set_custom_metadata()
      Fix PS emit image for 16-bit images
      Merge branch 'ps-image' into 'master'
      Fix file mode of mime_unqiue-id.c
      Fix malloc overflow check warning
      Add overflow to Makefile.sources
      Merge branch 'fix-warnings' into 'master'
      Merge branch 'fix-comparison-warning' into 'master'
      Update user-font-mask ref images
      Merge branch 'cairo-fix-glyph-clipping' into 'master'
      Support color fonts that use the foreground color
      Allow > 2GB PDF files on platforms with 32-bit long
      Fix some MinGW warnings
      Merge branch 'ming-warnings' into 'master'
      Merge branch 'large-pdf-file' into 'master'
      Merge branch 'custom-metadata' into 'master'
      Merge branch 'master' into color-font-foreground-color
      Merge branch 'color-font-foreground-color' into 'master'
      Allow user fonts to use the foreground color
      Merge branch 'user-font-foreground-color' into 'master'
      Merge branch 'ci-update-windows-image' into 'master'
      pdf: ensure url strings are correctly encoded
      pdf: ensure filenames are correctly encoded
      Merge branch 'issue-526' into 'master'
      Import win32 dwrite font backend from
      Fix msvc c++ compile error
      Fix check doc errors
      Fix some warnings and use _cairo_malloc where applicable
      Fix dwrite toy fonts
      dwrite_font param is not used
      dwrite: add color font support
      Remove the extra API from the mozilla DWrite
      Merge branch 'win32-color-fonts' into 'master'
      DWrite font docs
      Merge branch 'dwrite-docs' into 'master'
      Replace deprecated malloc_hook
      Merge branch 'malloc-hook' into 'master'
      Fix warning
      Merge branch 'issue-263-2' into 'master'
      Merge branch 'malloc-hook2' into 'master'

Amos Wenger (2):
      Set CAIRO_WIN32_STATIC_BUILD when doing a static build on windows
      Upgrade to expat-2.2.9-4 wrap

Anton Danilkin (70):
      Fix problems in the SVG backend related to outputting surfaces and patterns
      Fix generating syntactically invalid SVG files
      Ignore .idea, compile_commands.json and /build
      Add a test for #361
      Add a test with operator samples from https://cairographics.org/operators/
      Fix emitting black background for color-only non-bounded SVG surfaces
      Add new SVG filters system
      Fix using signed types where unsigned ones were needed
      Do not check the status after creating a memory stream
      Add warning supression in one place and remove them in others
      Introduce _cairo_svg_surface_svg_clip_or_svg_mask_should_be_used
      Remove the use of discard_filter
      Remove the use of extra_attributes
      Update the analyze mode of operations
      Add a layer of indiraction to calls to the clipper
      Add support for the source and clear operators for the paint operation
      Implement operators for the mask operation
      Implement operators for the rest of operations
      Implement the in operator
      Implement most of the non-blending operators
      Implement the rest of the operators
      Do not use the style attribute
      Change the default SVG unit to user unit
      Fix problems with radial gradients
      Remove SVG 1.2 and CAIRO_CONTENT_COLOR SVG boilerplate targets
      Do not create temporary single-color patterns. Also, do not try to support CAIRO_CONTENT_COLOR
      Fix and clarify _cairo_svg_surface_do_operator
      Simplify SVG document generation
      Simplify ignoring of statuses
      Simplify _cairo_svg_surface_emit_composite_surface_pattern
      Start implementing correct paints in transformed recording patterns
      Finish implementing correct paints in transformed recording patterns
      Move cairo_svg_surface_t to cairo-svg-surface.c
      Add my name to the header of cairo-svg-surface.c
      Fix clip-rule being emitted on the wrong elements
      Do not use parent_matrix in the mask operation
      Mark CAIRO_PATTERN_TYPE_MESH as unsupported and impose a limit on recording surfaces depth
      Add a test for #431
      Remove _cairo_memory_stream_to_string
      Add missing include
      Fix filter being used on the use element causing the content to be clipped
      Do not emit empty glyph paths
      Emit bitmap glyph data as images instead of as a bunch of squares, as this results in smaller file size and better quality, allowing the use of shades of gray
      Add support for PDF Type 3 fonts
      Revert "Fix filter being used on the use element causing the content to be clipped"
      Fix warnings and pipeline failure
      Implement attempting to recognize a common pattern for a bitmap font and extract the original glyph image from it
      Skip the color to alpha filter when possible
      Change int to size_t in the _cairo_malloc function family
      Add a small padding around paints
      Simplify _cairo_hash_table_size
      Add missing parentheses to _cairo_status_is_error and _cairo_int_status_is_error
      Make the _cairo_operator_bounded family of functions consistent
      Replace an outdated (after f0e2cd44) comment with clarification in _cairo_gstate_copy_transformed_pattern
      Emit a transparent paint in "lerp_compositing_group"s to extends the bounds of the REMOVE_COLOR_AND_INVERT_ALPHA filter
      Add support for CAIRO_CONTENT_COLOR
      Disable support for SVG 2 operators
      Do not try to emulate the fill_stroke operations ourselves
      Migrate from cairo_output_stream_t to cairo_svg_stream_t
      Use g instead of symbol for glyphs
      Fix operators in Chrome
      Fix painting of glyphs
      Fix applying shifted operators
      Fix reference images
      Introduce CAIRO_BOILERPLATE_OPEN_NO_DAEMON and CAIRO_BOILERPLATE_DO_NOT_CRASH_ON_ANY2PPM_ERROR
      Fix remaining tests
      Export test images in artifacts on macOS
      Install DejaVu fonts on macOS
      Remove unused _cairo_hash_table_size
      Ignore build instead of builddir

Ayman El Didi (4):
      fixed some comparisons between signed and unsigned integers
      added missing documentation to cairo_font_options_status
      fixed some multiplications prone to overflowing their type
      removed redundant casts in cairoint.h

Behdad Esfahbod (2):
      Merge branch 'mixed-color-clusters' into 'master'
      [user-font] Implement subpixel-positioning

Bryce Harrington (1):
      boilerplate: Use _cairo_malloc instead of malloc

Calixte Denizet (1):
      Allow empty postscript name when using a CFF font in pdf   - it aims to fix issue #488.

Christopher Chavez (2):
      quartz: Fix spelling in comment
      quartz: Fix spelling in comment

David King (1):
      meson: Add xml option and disable by default

Emmanuele Bassi (36):
      Handle new Cairo formats in the XML surface
      Handle new Cairo formats in test-trace
      Use g_memdup2() with newer versions of GLib
      Disable deprecation warnings from librsvg
      Define _GNU_SOURCE in order to use memmem
      Drop volatile from the GType registration
      Merge branch 'jfkthame-master-patch-60864' into 'master'
      meson: Define HAVE_CONFIG_H as a project flag
      Remove stray _GNU_SOURCE definitions
      Drop the conditional inclusion of config.h
      build: Use subdir-objects
      Post-release version bump to 1.17.5
      Merge branch 'fix-fontconfig-subproject' into 'master'
      meson: Build the API reference
      meson: Use warning_level
      meson: Enable _FORTIFY_SOURCE for optimized builds
      gobject: Remove the use of volatile
      Merge branch 'glib-volatile' into 'master'
      Merge branch 'fix-build-when-pdf-is-disabled' into 'master'
      Apply 1 suggestion(s) to 1 file(s)
      Merge branch 'fix-rtl-color-glyphs' into 'master'
      Merge branch 'fix-user-font-leaks' into 'master'
      Merge branch 'meson-xml-option' into 'master'
      Remove Qt surface
      Remove BeOS support
      Remove boilerplate for the Skia surface
      Drop OS/2 support
      Remove cairo-drm
      tanis: Remove cairo-cogl
      Remove cairo-directfb
      Drop cairo-vg surface
      ci: Make Windows jobs manual
      build: Remove unused DirectFB bits on Windows
      Merge branch 'remove-unused-sym' into 'master'
      build: Avoid SSHing into a host during release checks
      Release Cairo 1.17.6 (snapshot)

Félix Poisot (1):
      The array introduced in bff47b43 isn't cleared on surface finish

George Matsumura (1):
      cairo-trace: Fix escape character encoding in string literals

Glash Gnome (2):
      Issue #482 Documentation stanza
      #483 Fix Enum_member_description

Heiko Lewin (38):
      Fix mask usage in image-compositor
      Minor cleanups
      Add meson support
      Merge branch 'uninitialised-var-in-recording' into 'master'
      Merge branch 'font-oob' into 'master'
      Merge branch 'fix-copy-paste-error-in-recording-surfaces' into 'master'
      Added checks for failed strdups in cairo-recording-surface.c
      Merge branch 'xml-requires-png' into 'master'
      Merge branch 'debug-fix' into 'master'
      Merge branch 'font-parse-oob' into 'master'
      Merge branch 'snapshot-error-fixes' into 'master'
      Merge branch 'fix-clear-nothing-to-do' into 'master'
      Fix autoconf warnings for version 2.70
      'Fix' a NULL pointer 'dereference' in cairo-pdf-surface
      Merge branch 'win32-get-dc' into 'master'
      cairo-xlib: Check for maximum surface size
      Merge branch 'extend-test-pdf-tagged-text' into 'master'
      Fix device errors for GLESv2 contexts Ignore GLerrors when re-selecting a (possibly deleted) GLprogram
      Merge branch 'fix_device_errors' into 'master'
      cairo-quartz-image-surface.c: Add missing call to cairo_surface_reference (Thanks to Fred Bca)
      Merge branch 'fix_surface_ref' into 'master'
      Merge branch 'fix-recording-to-png' into 'master'
      test/path-precision.c: Correct initialization, error margin for comparisons
      cairo-quartz-image-surface.c: Fix types
      cairo-quartz-image-surface.c: Fix types
      Merge branch 'pdf-font-names' into 'master'
      Merge branch 'pdf-tag-leak' into 'master'
      Merge branch 'ubsan-fixes' into 'master'
      Merge branch 'fix-448-test' into 'master'
      Fix undefined left-shifts
      Minor corrections
      Merge branch 'type1_find_segments_bounds_check' into 'master'
      Merge branch 'ci-make-test-succeeds' into 'master'
      Merge branch 'wip/Jehan/subpixel-antialiasing' into 'master'
      Fix clip leak
      Merge branch 'fix_clip_leak' into 'master'
      _arc_max_angle_for_tolerance_normalized: fix infinite loop
      Merge branch 'fix_infinite_loop' into 'master'

Jan Alexander Steffens (heftig) (1):
      meson: add xlib-xcb option and disable by default

Jehan (1):
      src: do not override explicitly requested grayscale antialiasing.

John Ralls (11):
      Ensure _cairo_quartz_surface_create_internal always nulls imageSurfaceEquiv.
      Quartz: Ensure that image data and surface are available to draw.
      Quartz image drawing: Remove containers for cairo_surface_t.
      Quartz Better manage acquired/replayed surface.
      [quartz] Snapshot CGBitmapContext-mapped surfaces to cache CGImages.
      [quartz] Remove cached image_surface on quartz surfaces.
      [quartz] Create similar surfaces using a CGLayer for faster drawing.
      [quartz] Use CoreGraphics instead of Qt to write debug png file.
      [quartz]Cleanup _cairo_quartz_cairo_repeating_surface_pattern_to_quartz
      [quartz] extract function _cairo_quartz_setup_pattern_source
      [quartz] Don't use CGContextDrawTiledImage for tiled patterns.

Jonathan Kew (10):
      Don't call _cairo_array_append_multiple with a zero count.
      Don't leave the shm field uninitialized when building without shm support.
      Bail early from _cairo_image_compute_color if image is zero-sized.
      [pdf-interchange] Write trees even if only LINK tags are present
      Add an example of a link within an empty clip to pdf-tagged-text testcase.
      Fix use-after-free in pdf-features testcase.
      Accept a leading sign character in _cairo_strtod.
      Add link with a negative coordinate to testcase.
      Don't assert on NOTHING_TO_DO during recording replay.
      Check correctly for surface_pattern being a snapshot/recording in _cairo_win32_printing_surface_paint_pattern.

Jordan Petridis (1):
      ci: cleanup the autotools artifacts a bit

Manuel Stoeckl (4):
      Read/write 16-bpc PNG data in native endian
      ci: sort lists of ignored tests
      pdiff: convert RGB24 image values to ARGB32 on read
      test: explicitly handle image formats in buffer_diff_core

Marc Jeanmougin (1):
      Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax

Marek Kasik (1):
      cff: Allow empty array of operands for certain operators

Matthias Clasen (11):
      Plug a memory leak in an error case
      Avoid a use-after-free
      recording-surface: Fix offset error
      Don't build fontconfig on Windows
      Fix fontconfig subproject
      Fix compositing non-color glyphs in one case
      Remove the approximate glyph bounds check
      user-font: Plug some memory leaks
      Plug another memory leak
      Fix rtl handling for color glyphs
      Fix mixed color clusters

Nathan Lee (2):
      Re-enable windows backends in autotool
      Fix font count in Inkscape's win32 pdf export

Nirbheek Chauhan (2):
      meson: Remove useless version_compare()
      meson: Fix build when PDF backend is disabled

Peter Wang (1):
      Always define _cairo_utf8_to_utf16 on Windows

Rick Yorgason (3):
      Added extra check for HAVE_STRNDUP in Win32 Mingw Meson build
      Fixed compile-time error on platforms without MMAP.
      Added hairline support to cairo

Seungha Yang (1):
      atomic: Add support for WIN32 atomic operations

Sven Neumann (3):
      Fix conversion from ISO 8601 to PDF date string
      Fix compiler warnings in test suite
      Add tests for PDF metadata

Tim-Philipp Müller (45):
      ci: fix default options in meson ci
      meson: fix library versioning
      autotools: dist meson subproject wraps
      ci: add meson android aarch64 build
      meson: fix macOS build and add macOS ci
      meson: only build cairo-boilerplate and cairo-missing helper libs if needed
      ci: update macos tags for newer vm image
      Merge branch 'ci-update-macos-image' into 'master'
      meson: add symbol-lookup option to allow disabling bfd/libiberty usage
      cairo-trace: fix build with newer versions of bfd
      utils: remove hacky replacement for backtrace_symbols in glibc
      meson: use encoding=utf-8 when reading/writing files in helper script
      meson: declare dependancy on libcairo_dep for overrides
      Merge branch 'alatiera/cairo-header' into 'master'
      meson: allow skipping of run check for IPC_RMID_DEFERRED_RELEASE
      Merge branch 'spectre-dep' into 'master'
      Merge branch 'alatiera/exclude-artifacts' into 'master'
      meson: make cairo-trace executable
      Merge branch 'meson-make-cairo-trace-executable' into 'master'
      Merge branch 'gyf-table-leak' into 'master'
      ci: bump windows image to latest version to fix github ssl certificate issues
      Merge branch 'ci-bump-windows-image' into 'master'
      Merge branch 'win32-atomic' into 'master'
      Merge branch 'no-fontconfig-on-windows' into 'master'
      Merge branch 'macos-artifacts' into 'master'
      Merge branch 'fix-meson-build' into 'master'
      ci: add fallback_source_uri to work around ssl certificate issues on windows runners
      meson: subprojects: update expat wrap to latest version
      meson: subprojects: update glib wrap to latest stable 2.66.7
      meson: subprojects: update zlib wrap to latest revision 1.2.11-5
      meson: subprojects: use upstream freetype meson port and use latest release
      ci: make sure existing subproject checkouts are in sync with wraps
      Merge branch 'meson-update-wrap-versions' into 'master'
      meson: rely on automatic wrap promotion from subprojects
      Merge branch 'meson-rely-on-subproject-wrap-promotion-for-indirectly-needed-wraps' into 'master'
      meson: enable pthread tests if 'real pthread' is available
      test: update quartz ref image to fix macos pthread test failure
      Merge branch 'meson-pthread-tests' into 'master'
      meson: fix build without libpng
      Merge branch 'fix-no-png-dep' into 'master'
      ci: update windows image
      ci: disable aarch64 neon asm in pixman to fix android build
      ci: bump windows image to latest
      ci: update links in ci template from gst-ci to gstreamer monorep
      Merge branch 'ci-update-windows-image-2' into 'master'

Uli Schlachter (152):
      Merge branch 'meson-ci-require-gl-on-fedora' into 'master'
      Merge branch 'fix-iso8601_to_pdf_date_string' into 'master'
      Merge branch 'empty-delta-arrays' into 'master'
      Merge branch 'trace_parse_fix' into 'master'
      Merge branch 'pdf-leak' into 'master'
      Merge branch 'meson-ci-fix' into 'master'
      boilerplate-xcb: Avoid leaks on error
      boilerplate-xcb: Avoid leaks on success
      Fix a leak in cairo-xcb's render compositor
      Merge branch 'bigsur-use-after-free' into 'master'
      Merge branch 'libversion-fixup-match-autotools' into 'master'
      test/Makefile.sources: Use tabs for indentation
      test/meson.build: Add missing tests
      autoconf: Reject --enable-xml --disable-png
      Replace $have_png with $use_png
      Merge branch 'csi' into 'master'
      Merge branch 'fix-437' into 'master'
      Merge branch 'xcb-fix-clip-leak' into 'master'
      Merge branch 'boilerplate-leak' into 'master'
      Add a bounds check to cairo_cff_parse_charstring()
      Fix copying tags in a recording surface
      Fix two uninitialised variables in _cairo_recording_surface_snapshot()
      Merge branch 'meson-ci-android' into 'master'
      Merge branch 'fix_memory_allocation' into 'master'
      Merge branch 'meson-ci-macos' into 'master'
      Merge branch 'fix-compiler-warnings-in-test-suite' into 'master'
      Add a bounds check to cairo_cff_font_read_fdselect()
      Slightly improve dealing with error snapshots
      Fix _cairo_surface_paint not setting is_clear
      Apply small fix that was reported as an issue
      cairo_win32_surface_get_dc: Return NULL for error surfaces
      cairo-xlib: Check for maximum surface size
      Merge branch 'meson-only-build-helper-libs-if-needed' into 'master'
      Merge tag '1.17.4'
      Merge gitlab.freedesktop.org:pcpenpal/cairo
      Merge branch 'autotools-dist-meson-subproject-wraps' into 'master'
      'Fix' a NULL pointer 'dereference' in cairo-pdf-surface
      Merge branch 'use_correct_variable' into 'master'
      Merge branch 'fix-autoconf' into 'master'
      Merge branch 'set-source-surface-leak' into 'master'
      Merge branch 'fill-use-after-free' into 'master'
      Merge branch 'fix_path_precision' into 'master'
      Make the test case for bug 448 pass
      pdf font subset: Generate valid font names
      Fix a memory leak with cairo_tag_begin() + pdf
      Merge branch 'small-build-system-fixes' into 'master'
      Merge branch 'meson-symbol-lookup-option' into 'master'
      Merge branch 'utils-cairo-trace-update-for-new-bfd' into 'master'
      Merge branch 'meson-force-utf8-file-encoding-in-scripts' into 'master'
      Merge branch 'meson-add-option-to-disable-xlib-xcb' into 'master'
      meson: Move libspectre to test_deps
      Use the serial automake test harness
      Merge branch 'meson-allow-skipping-of-run-check-for-ipc-rmid-deferred-release-in-cross-build' into 'master'
      test suite: fflush() before fork()
      test/mime-unique-id: Fix for out-of-tree builds
      Update the PDF size limit in mime-unique-id
      pdf-mime-data: Fix error checking
      pdf-mime-data: Fix for out-of-tree builds
      test/pdf-mime-data.c: Check for pdfimages
      Avoid a use-after-scope
      Fix a leak in an error path
      Merge branch 'mime-unique-id' into 'master'
      Merge branch 'flush-in-tests' into 'master'
      Merge branch 'serial-test-harness' into 'master'
      Merge branch 'pdf-mime-data' into 'master'
      Merge branch 'use-after-scope' into 'master'
      Add a test case for commit d07fb410568423
      Merge branch 'fix-467' into 'master'
      Merge branch 'fix_obvious_ub' into 'master'
      Fix out of bounds access in cairo_type1_font_subset_find_segments
      Merge branch 'fix-cairo-malloc' into 'master'
      test-suite: Add a new mechanism for XFAILs
      Add config.log to build artefacts
      Install gtk2-devel on CI
      Ignore current svg failures in CI
      svg: Reject raster sources
      Add hack to ignore a svg test crashes
      Ignore create-for-stream failure with svg
      Run the test suite on MacOS
      Merge branch 'svg-ci' into 'master'
      Merge branch 'fix-cairo-status-is-error' into 'master'
      Merge branch 'fix-cairo-operator-bounded' into 'master'
      CI: Run tests with an X11 server
      .gitlab-ci.yml: Ignore current X11 test failures
      script: Also ignore {xcb,xlib}-surface-source
      Merge branch 'fix-cairo-gstate-copy-transformed-pattern-comment' into 'master'
      Merge branch 'mac-tests' into 'master'
      Merge branch 'ebassi/deprecations' into 'master'
      Merge branch 'ebassi/warnings-fixes' into 'master'
      Merge branch 'ci-test-x11' into 'master'
      Merge branch 'ebassi/config-define' into 'master'
      Merge branch 'record-png-offset' into 'master'
      xcb: Remove free XID cache
      xcb: remove free pixmap/gc wrappers
      meson: Move CAIRO_HAS_INTERPRETER to config.h
      Merge branch 'jfkthame-master-patch-60882' into 'master'
      Merge branch 'macos-dejavu' into 'master'
      meson: Add shell script tests
      meson: Add perf/ directory
      Merge branch 'doc-scanner' into 'master'
      Merge branch 'SVG-doc-scanner' into 'master'
      Merge branch 'xcb-free-xid-cache' into 'master'
      Merge branch 'meson-defines' into 'master'
      meson: Use more dependency objects
      Fix meson build without zlib
      Merge branch 'svg-backend-work' into 'master'
      Merge branch 'issue_488' into 'master'
      Merge branch 'jfkthame-master-patch-75366' into 'master'
      Move test failure lists into separate files
      Rename a file
      Switch to line-separated test failure lists
      Merge branch 'build-without-zlib' into 'master'
      Merge branch 'expected-failure-line-separated' into 'master'
      CI: Split test execution into per-backend jobs
      Always run tests with an X11 server
      Merge branch 'more-meson' into 'master'
      Merge branch 'extra-test-steps' into 'master'
      Fix the meson build
      Fix memory leak in cairo_cff_font_read_cid_fontdict
      Merge branch 'windows-ci-fix' into 'master'
      Handle _cairo_strtod() failures in parse_float()
      Merge branch 'issue-399' into 'master'
      Merge branch 'issue-264' into 'master'
      Merge branch 'issue-411' into 'master'
      Merge branch 'issue-381' into 'master'
      pdf: Properly pass on stdio write errors
      Fix build on windows
      svg: Fix create-for-stream test case
      Merge branch 'issue-336' into 'master'
      Merge branch 'issue-263' into 'master'
      Merge branch 'color-font-test' into 'master'
      test/hairline.c: Use Unix line endings
      test/hairline.c: Add copyright header
      Merge branch 'color-user-font-getter' into 'master'
      Merge branch 'ebassi/build-fixes' into 'master'
      Merge branch 'fix-png-write-endian' into 'master'
      Fix integer overflows in cairo-mempool
      Merge branch 'fix-core-diff' into 'master'
      Fix a doc comment
      Merge branch 'amos/win32-static-build' into 'master'
      Merge branch 'meson-redundant-version_compare' into 'master'
      Merge branch 'fix-doc-warning' into 'master'
      Merge branch 'user-font-subpixel-position' into 'master'
      Merge branch 'develop4' into 'master'
      Merge branch 'develop3' into 'master'
      Merge branch 'chrstphrchvz-master-patch-67648' into 'master'
      Merge branch 'test-hairline' into 'master'
      Merge branch 'mempool-overflow' into 'master'
      Merge branch 'quartz-snapshot' into 'master'
      Merge branch 'drop-backends' into 'master'
      Merge branch 'chrstphrchvz-master-patch-12648' into 'master'
      Merge branch 'cairo542' into 'master'

Xavier Claessens (1):
      meson: Generate cairo-script-interpreter.pc needed by GTK+

Yongsu Park (1):
      win32: Make font dc thread local

afdw (3):
      Merge branch 'master' into 'svg-backend-work'
      Merge branch 'master' into 'svg-backend-work'
      Merge branch 'master' into 'svg-backend-work'