cairo-1.18.0
A new cairo release 1.18.0 is now available from:

    https://cairographics.org/releases/cairo-1.18.0.tar.xz

    which can be verified with:

    https://cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum
    243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 *cairo-1.18.0.tar.xz

    https://cairographics.org/releases/cairo-1.18.0.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.18.0 tag which points to a commit named:
    3909090108bb2db55330e3eb148aebe664735363

    which can be verified with:
    git verify-tag 1.18.0

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

Release 1.18.0 (2023-09-20 Emmanuele Bassi )
==============================================================

The first stable cairo release in five years should be cause for celebration.

All the API added in the 1.17 development cycle is now considered stable, and
will not change.

Many thanks to all the contributors for this release.

The cairo-sphinx tool has been removed; we could not find any instruction on
how to use it, and no user answered our call for help. If you were using
cairo-sphinx, please reach out to the cairo maintainers.

Cairo now implements Type 3 color fonts for PDF. Thanks to Adrian Johnson for
his work on this feature.

Khaled Hosny contributed multiple documentation fixes, to ensure that the
cairo API reference is up to date. Khaled also fixed multiple compiler
warnings generated when building cairo.

The XML surface has been removed; it was disabled by default when building
cairo, and we could not find any downstream distributor that would enable
it.

The Tee surface is now automatically enabled. Downstream distributors of
cairo have been enabling for years it in order to build Firefox.

Fujii Hironori and Adrian Johnson fixed multiple issues with the DWrite
font backend.

John Ralls improved the Quartz surface; mainly, Quartz surfaces now use
the main display ColorSpace, speeding up rendering operations.

Cairo now hides all private symbols by default on every platform; the old
"slim" symbols hack to alias internally used symbols has been dropped, in
favor of using `-Bsymbolic-functions` with toolchains that support it.

Uli Schlachter fixed multiple memory leaks in the code base and test suite,
and helped with many reviews and general maintenance.

Marc Jeanmougin added new API to expose the Pixman dithering filter to cairo
patterns; this is currently implemented only for image surfaces.

Full changes since 1.17.8
=========================

Adrian Johnson (58):
      PDF Type 3 color fonts
      Fix build with -DDEBUG_SVG_RENDER
      meson: Replace existing link if it already exists
      Merge branch 'fix-svg-render-debug' into 'master'
      Merge branch 'fix-test-symlink' into 'master'
      Merge branch 'pdf-color-fonts' into 'master'
      Merge branch 'bug-597' into 'master'
      Merge branch 'issue-634' into 'master'
      doc: remove out of date remarks
      Merge branch 'bug-611-glyph-path' into 'master'
      truetype: revert use of _cairo_strndup
      Implement a font options compare function and use it in gstate
      Merge branch 'warnings' into 'master'
      Merge branch 'remove-unused-tee-function' into 'master'
      Merge branch 'doc-fixes' into 'master'
      Enable COLRv1 fonts
      FT: Always use the outline glyph to get the path
      Merge branch 'dwrite-argb-glyph-mask' into 'master'
      Merge branch 'fix-valgrind-errors' into 'master'
      Merge branch 'enable-colorv1-fonts' into 'master'
      Merge branch 'ft-use-outline-glyph-for-path' into 'master'
      Merge branch 'dwrite-glyph-phase' into 'master'
      Merge branch 'issue-641-glyph-bounds' into 'master'
      Merge branch 'fix-doc-for-cairo_matrix_transform_distance' into 'master'
      Merge branch 'issue-569-dwrite-inflate-glyph-bounds' into 'master'
      Merge branch 'dwrite-a8-glyph-mask' into 'master'
      Merge branch 'dwrite-clip-glyphs' into 'master'
      Merge branch 'dont-free-nonheap-object' into 'master'
      Merge branch 'issue-3-win32-font-scale' into 'master'
      ft: Use normal font size when detecting the format
      Merge branch 'issue-643' into 'master'
      Merge branch 'riastradh-20220406-ctype-misuse' into 'master'
      win32: InterlockedCompareExchange uses LONG
      Merge branch 'ci-windows-image-update' into 'master'
      Merge branch 'issue-776' into 'master'
      cairo-list-inline.h: fixes and documentation
      Make cairo_tag_begin/end work correctly in groups
      pdf: Don't use snprintf() to print floats
      Merge branch 'issue-508' into 'master'
      Don't assume HAVE_FT_PALETTE_SELECT is defined when HAVE_FT_SVG_DOCUMENT is defined
      Merge branch 'issue-777' into 'master'
      ft: don't use scaled_glyph->dev_private to store data
      Merge branch 'issue-778' into 'master'
      Use a spinlock to prevent race condition when initializing mutexes
      Merge branch 'issue-782' into 'master'
      Merge branch 'ci-bump-windows-image' into 'master'
      Update CI to Fedora 38
      Fix PS crash with color font and CAIRO_COLOR_MODE_NO_COLOR
      Merge branch 'update-to-fedora-38' into 'master'
      Merge branch 'fix-colrv0-handling' into 'master'
      Avoid undefined signed left shift
      Merge branch 'fix-no-png-build' into 'master'
      Merge branch 'check-def-arches' into 'master'
      Merge branch '5898791338508288' into 'master'
      Merge branch 'master' into 'master'
      Merge branch 'master' into 'master'
      Merge branch 'big-endian-swap' into 'master'
      Merge branch 'bobby285271/fix-format-security' into 'master'

Alex (3):
      Fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56152 memory read access because of incorrect size
      Fix warning
      Refix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56152 according to recommendations

Behdad Esfahbod (1):
      [gobject] Bind cairo_glyph_t and cairo_text_cluster_t

Bobby Rong (1):
      Fix building with -Werror=format-security

Caolán McNamara (1):
      ofz#46165 avoid a divide by zero seen fuzzing libreoffice rendering

Christian Clauss (1):
      Delete cairo/perf/make-html.py

Christian Hesse (1):
      Fix font options leak in _cairo_gstate_ensure_scaled_font()

Emmanuele Bassi (54):
      Post-release version bump to 1.17.9
      Merge branch 'ebassi/snapshot-release' into 'master'
      tee: Fix cairo wrapper functions
      util: Fix compiler warnings in cairo-sphinx
      Remove XML surface
      Merge branch 'fix-error-handling-docs' into 'master'
      Merge branch 'drop-xml-surface' into 'master'
      Merge branch 'gi-text-glyphs' into 'master'
      Merge branch 'readme-gl' into 'master'
      docs: Add override for feature symbols
      build: Drop legacy build
      Merge branch 'ebassi/drop-autotools-check' into 'master'
      Drop "slim" symbols
      Add surface-to-png in the quartz boilerplate
      Build with hidden symbols by default
      build: Remove unused files
      Merge branch 'issue-642' into 'master'
      Merge branch 'no-slim-symbols' into 'master'
      tee: Remove questionable terminology
      build: Move 'tee' from disabled to auto
      build: Enable cairo-sphinx only if we have SysV's SHM
      Merge branch 'cairo-tee-checks' into 'master'
      Allow static builds of cairo-sphinx
      Merge branch 'ebassi/sphinx-static-build' into 'master'
      ci: Add a static build on Linux
      ci: Remove autotools from the Fedora image
      Merge branch 'ebassi/ci-static-linux-build' into 'master'
      Merge branch 'sphinx-static' into 'master'
      Make Cairo dither to Pixman dither conversion static
      Merge branch 'font-option-leaks' into 'master'
      Merge branch 'wip-fix-352' into 'master'
      Merge branch 'leak-bug-431' into 'master'
      Merge branch 'remove-sphinx' into 'master'
      Merge branch 'ebassi/dithering' into 'master'
      docs: Fix versioned symbol indices
      docs: Update the symbols list
      docs: Hide private docs
      docs: Add missing tee surface section
      Remove pointless CAIRO_HAS_DITHER
      docs: Add missing section docblock for cairo-tee
      docs: Add missing docblocks for the device observer API
      docs: Do not make private symbols with docblocks
      docs: Add missing long description for cairo-quartz-font section
      Ensure that argument names in declarations match definitions
      docs: Add missing docblocks for content tags
      docs: Add missing docblocks for cairo-tee API
      docs: Add docblocks for missing feature defines
      docs: Add missing docblocks for surface observer API
      docs: Remove docblock
      docs: Use the proper xinclude path
      docs: Fix closing docblock
      build: Fix program listing syntax check
      ci: Remove manual doc checks in the build job
      Release Cairo 1.18.0

Fujii Hironori (11):
      Win32 surface compositor should support DWrite font
      DWrite: More accurate glyph paths for small fonts
      DWrite: Don't convert subpixel antialiasing to grayscale
      DWrite: glyph surfaces should take subpixel positions into account
      DWrite: clipped glyphs in win32 compositor
      Fix cairo_matrix_transform_distance documentation
      DWrite: Inflate glyph bounds 1px vertically too
      Change the workaround of MinGW dwrite_3.h problem
      DWrite: Support antialias and subpixel order font options
      DWrite: region clipping didn't work on win32 surfaces
      win32 font is very small if the lfHeight of HFONT is exactly -size

Jeremy Bícha (2):
      meson-check-def: Exclude sections from symbol list seen on ARM
      meson-check-def: Exclude sections from symbol list seen on mips

John Ralls (4):
      [quartz] Cleanup and make better use of cairo_quartz_image_surface_t.
      [quartz] Pretty up the surface-type and zero-size tests.
      [quartz] Replace surface-pattern xfail with latest CI fail image.
      [quartz]Conditionally Use Main Display ColorSpace instead of kCGColorSpaceDefaultRGB.

Jonathan Kew (1):
      Fix use-after-free in _cairo_tag_stack_pop

Khaled Hosny (21):
      doc: Fix dwrite gtk-doc warnings
      doc: Fix parameter name in comment
      doc: Fix the gtk-doc syntax of internal symbols
      doc: Document CAIRO_STATUS_SVG_FONT_ERROR
      doc: Document CAIRO_SURFACE_TYPE_SKIA and mark it deprecated
      doc: Fix missing quartz image surface docs
      doc: Include surface observer documentation
      doc: Don’t mention non-existent cairo_stroke_to_path()
      doc: Fix internal links
      doc: Escape percent sign
      doc: Fix external links
      doc: Document the deprecated status of more surface types
      doc: fix cairo_dwrite_font_face_set_rendering_params docs
      Fix -Wparentheses-equality warnings
      Fix -Wunused-but-set-parameter
      Remove dead code
      Fix -Wsometimes-uninitialized warning
      Fix -Wunused-variable
      Fix -Wuninitialized
      Fix -Wlogical-not-parentheses
      Fix -Wunused-function warnings

Luca Bacci (1):
      Remove stray #error in dw-extra.h

Marc Jeanmougin (1):
      Enable access to the pixman dithering path

Matt Turner (1):
      Open-code bbtree_del to avoid free()ing a non-allocated object

Matthias Clasen (1):
      Fix rendering of COLRv0 fonts

Sebastian Dröge (1):
      Hurd has no MAP_NORESERVE so don't use it there

Sergey Bugaev (3):
      meson: Don't pull in FreeType and Fontconfig by default
      Consistently spell "FreeType" with capital T
      Apply 1 suggestion(s) to 1 file(s)

Simon Ser (1):
      readme: drop reference to OpenGL backend

Taylor R Campbell (1):
      Avoid misuse of ctype(3) functions

Tim Serong (1):
      Avoid assert when drawing arcs with NaN angles

Tim-Philipp Müller (6):
      ci: bump windows image to latest
      ci: add some more workflow rules
      ci: bump windows image to latest
      Merge branch 'fix-pulling-ft2-and-fc' into 'master'
      ci: remove meson from job names
      Merge branch 'ci-remove-meson-prefix-from-job-names' into 'master'

Uli Schlachter (26):
      Merge branch 'unused-code' into 'master'
      Remove unused _cairo_tee_surface_find_match
      Merge branch 'quartz-image-surface' into 'master'
      Merge branch 'quartz-colorspace' into 'master'
      Merge branch 'ofz46165' into 'master'
      Merge branch 'unused-function' into 'master'
      Merge branch 'patch-1' into 'master'
      Merge branch 'fix-leftover' into 'master'
      Merge branch 'tag_stack' into 'master'
      Merge branch 'fix-signed-left-shift' into 'master'
      Merge branch 'hurd' into 'master'
      Disable svg glyph renderer when PNG is disabled
      Merge branch 'master' into 'master'
      Fix FT color glyphs on big endian systems
      Revert "Allow static builds of cairo-sphinx"
      Always build fdr.c into a shared library
      Update FDO_DISTRIBUTION_TAG
      Remove cairo-sphinx
      Fix font options leak in gstate
      Fix font options leak in scaled font
      Fix font options leak in cairo-surface.c
      Fix font options leak in _cairo_surface_copy_similar_properties()
      Fix font options leak in cairo script surface
      Fix leak in test/bug-431.c
      Merge branch 'leak' into 'master'
      tests: Add more dithering tests

iasunsea (3):
      cairo truetype reverse cmap detected memory leaks
      fix read memory access
      fix SEGV in cairo_type1_font functioons