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

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

which can be verified with:

  https://cairographics.org/releases/cairo-1.18.6.tar.xz.sha256sum
  1c767308174337a74694da0f3ec069c271452163a1ef4540964c50c301f157d4 *cairo-1.18.6.tar.xz

  https://cairographics.org/releases/cairo-1.18.6.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.4 tag which points to a commit named:
  
  018b3424a10ecd37450360f21454ecf0f3007e17

which can be verified with:

  git verify-tag 1.18.6

and can be checked out with a command such as:

  git switch -C build 1.18.6

Release 1.18.6 (2026-09-20 Emmanuele Bassi )
==============================================================

A new stable release.

The XCB surface triggered an UAF warning when building with GCC. [#898]

The clipping code was accessing various fields in a guard value, and
causing a crash inside Inkscape. See: https://gitlab.com/inkscape/inkscape/-/issues/5631

Multiple fixes for the Windows backends, including improvements in the
thread safety of the DirectWrite code. [#897]

The DirectWrite backend now supports COLRv1 fonts. [#903]

Multiple fixes for building with MSVC and ClangCL.

A leak in the PDF surfaces has been fixed. [!644]

Various gaps between abutting rectangles when drawing with ANTIALIAS_NONE
were removed by using absolute coordinates and avoiding rounding
errors. [#976]

Remove an overflow when computing the buffer size in the XRender code. [#950]

Full changes since 1.18.2
=========================

Albert Astals Cid (1):
      _cairo_pdf_surface_finish: Fix leak in error conditions

Alvin Wong (1):
      Add missing mutex cleanup in _cairo_recording_surface_finish

Behdad Esfahbod (2):
      [rectanble Handle overflow in _cairo_box_from_doubles
      Merge branch 'rectangle-box-negative-extents' into 'master'

Benjamin Gilbert (1):
      win32: Fix MSVC build with dwrite disabled

Emilio Cobos Álvarez (4):
      [cff-subset] Validate dictionary end.
      [cff-subset] Add some missing bounds checks to cairo_cff_font_read_fdselect.
      [cff-subset] Check cff dict operator / operand sizes.
      [cff-subset] Protect against overflow of offset + size calculation.

Emmanuele Bassi (13):
      Post-release version bump to 1.18.5
      Merge branch 'release-1-18-4' into 'master'
      The GDI coordinate system is inverted compared to cairo's here, so the delta-y value needs to be negated, otherwise glyph runs with non-zero y-advances will shift in the wrong direction.
      Merge branch 'fix-msc-ver-compare' into 'master'
      Merge branch 'win2k' into 'master'
      Merge branch 'dwrite' into 'master'
      Merge branch 'test-fixes' into 'master'
      Merge branch 'recording-surface-finish-internal-helper' into 'master'
      Merge branch 'bug-927' into 'master'
      Merge branch 'win32-thread-data' into 'master'
      Merge branch 'meson-darwin-dylib-versions' into 'master'
      Merge branch 'master' into 'master'
      Release Cairo 1.18.6 (stable)

Jeremy Huddleston Sequoia (1):
      meson: Setup darwin dylib versions

Jim Blandy (1):
      _compute_xrender_bitmap_size: Avoid overflow computing buffer size.

Jonathan Kew (9):
      Fix sign of delta-y for ExtTextOutW
      [cff-subset] check subrs offset is within font data
      Ensure converter's jmp_buf is set up before adding edges.
      Merge branch cairo:master into master
      [cff-subset] check subrs offset is within font data
      Range-check FDSelect value during CFF subsetting.
      Check surface for error in dwrite color-font code
      [cff-subset] Add some missing range checks.
      Check for end of charstring when decoding an integer

Jordan Petridis (5):
      ci: Move the android cross file into the repository
      build: Update wrap files
      ci: Update the android CI image
      ci: Install android toolchain into our own image
      ci: Update rust version

Kevin Ushey (3):
      fix gap between abutting rectangles under ANTIALIAS_NONE
      add test for bug 976
      regenerate reference images affected by rectangle coordinate change

Luca Bacci (63):
      Win32: Use cairo_atomic_once_t to initialize TLS slot
      DWrite: Fix switch for grid-fit mode
      Meson: Add comment about atomic ops on Windows
      Win32: Implement init_once with InitOnceBeginInitialize / InitOnceComplete
      Drop support for very old GCC versions
      Meson: Add arguments for both C and C++ compilation
      Meson: Suppress warning C5286 on MSVC
      Meson: Define _CRT_SECURE_NO_WARNINGS when compiling with MSVC
      Win32: Fix init once condition
      Fix check for InitOnceComplete failure
      Readme: Remove leftover mention of Windows 2000
      Check if _MSC_VER macro is defined
      Fix typo
      DWrite: don't set component-alpha for A8 mask
      Add definitions for ID2D1DeviceContext7 in d2d1-extra.h
      Meson: Do not check for d2d1.h, dwrite.h, wincodec.h
      Meson: Simplify check for D2D, DWrite, WIC a bit
      Check which ID2D1DeviceContext subclasses are defined in d2d1_3.h
      Rename dwrite / d2d1 polyfill headers to .hpp extension
      dwrite-extra.hpp: Rework a bit
      dwrite-extra.hpp: Fix check for mingw-w64 workaround
      Always include dwrite-extra.hpp
      Add definition for IDWriteFactory8
      DWrite: Add support for COLRv1 fonts
      make-constructors.py: Sort tests list
      Remove leftover scripts from the autotools build
      CI: Avoid running duplicated tests
      Update Quartz reference images
      CI: Add coverage-column-triangles to Quartz ignores
      Meson: Use mklink to create the /test/srcdir link on Windows
      Boilerplate: Open pipe in binary mode on Windows
      Boilerplate: Use backward slashes for system / popen commands on Windows
      Boilerplate/Win32: Switch to a DIB section
      Tests/pdf-operator-text: Check if pdf target is enabled
      Tests/font-variations: Cleanup resources in all cases
      Tests/create-regions: skip if needed features are missing
      CI: Run tests on Windows
      CI: Do not store .git directory in artifacts
      CI/MSVC: Build less
      CI/MSVC: Exclude /test/srcdir symlink from the artifacts
      recording surface: Implement finish via reset
      _cairo_scaled_font_keys_equal: Also check implementation font-face
      Meson: Fix compilation with CLangCL
      cairo-script: Fix build on 64bit Windows with LZO enabled
      Fix build with CAIRO_NO_MUTEX
      Drop unneeded assert
      MSVC: Add necessary includes
      MSVC: Turn warning C4013 into an error
      MSVC: Define _CRT_NONSTDC_NO_WARNINGS
      MSVC: Define _USE_MATH_DEFINES via meson.build
      Meson: Fix warnings on clang-cl
      Atomics: Add _cairo_atomic_init_once_check
      Win32: Add thread data structure
      GDI: Use thread data for font HDC
      GDI: Rename _get_global_font_dc to _get_thread_font_dc
      DWriteFactory: Remove unused method and member object
      D2DFactory: Remove unused method and member object
      DWriteFactory: Make thread-safe
      DWriteFactory: Release resources on library unload
      D2DFactory: Make thread-safe
      WICFactory: Make thread-safe
      DWriteFactory: return raw pointers
      D2DFactory: return raw pointers

Matthias Clasen (1):
      Fix a crash in the clipping code

Ryan VanderMeulen (1):
      Add check for clang to cairo attribute handling code

Tim-Philipp Müller (13):
      ci: update windows image
      ci: mark fedora image job as "placeholder job"
      Merge branch 'ci-windows-image-to-gstreamer-1.26' into 'master'
      ci: drop placeholder-job tags from image jobs
      Merge branch 'alatiera/android-image-test' into 'master'
      Merge branch 'win32-fixes' into 'master'
      Merge branch 'fixes' into 'master'
      ci: remove macos job that used ancient intel mac mini runners
      Merge branch 'ci-update-for-removal-of-old-intel-mac-runners' into 'master'
      Merge branch 'compiler-features' into 'master'
      Merge branch 'fix-init-once-complete-check' into 'master'
      ci: add macOS arm64
      Merge branch 'ci-macos-arm64' into 'master'

Uli Schlachter (23):
      Fix cairo-fdr and cairo-trace
      Merge branch 'fix-symbol-interposition' into 'master'
      Merge branch 'cm/fix-uaf-warning' into 'master'
      Merge branch 'winsdk_26100_fix' into 'master'
      Merge branch 'fix-clipping-crash' into 'master'
      Merge branch 'tests-misc-fixes' into 'master'
      Merge branch 'patch-1' into 'master'
      Merge branch 'work/fix-leak-in-_cairo_pdf_surface_finish' into 'master'
      Add a test for bug 927
      Merge branch 'add-polygon-oom' into 'master'
      Merge branch 'master' into 'master'
      Merge branch 'reinstate-font-map-for-placeholders' into 'master'
      Merge branch 'fdselect-range' into 'master'
      Merge branch 'enhancements' into 'master'
      Merge branch 'patch-2' into 'master'
      Merge branch 'cff-subset' into 'master'
      Merge branch 'msvc-enhancements' into 'master'
      Fix _cairo_matrix_has_unity_scale()
      Add more reference images for bug927
      Merge branch 'cff-fixes' into 'master'
      Merge branch 'type1-decode-integer' into 'master'
      Merge branch 'bugfix/bug-976' into 'master'
      Merge branch 'ft-glyph-buffer-overflow' into 'master'

correctmost (1):
      xcb: Fix a -Wuse-after-free=3 warning with GCC

vladgrind (1):
      Fix clipping paths for printed patterns