<div dir="ltr"><div><code style="font-family:arial,sans-serif">A new cairo release 1.18.0 is now available from:</code></div><div><code style="font-family:arial,sans-serif"><br></code></div><div><code>  </code><code style="font-family:arial,sans-serif"><a href="https://cairographics.org/releases/cairo-1.18.0.tar.xz">https://cairographics.org/releases/cairo-1.18.0.tar.xz</a></code></div><div><pre><code style="font-family:arial,sans-serif">
which can be verified with:
    <a href="https://cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum">https://cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum</a>
    243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 *cairo-1.18.0.tar.xz

    <a href="https://cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum.asc">https://cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum.asc</a>
    (signed by Emmanuele Bassi)

Additionally, a git clone of the source tree:

    git clone <a href="https://gitlab.freedesktop.org/cairo/cairo.git">https://gitlab.freedesktop.org/cairo/cairo.git</a>

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</code></pre></div><div><br></div><div>Release 1.18.0</div><div>============</div><div><br></div><div>The first stable cairo release in five years should be cause for celebration.<br><br>All the API added in the 1.17 development cycle is now considered stable, and<br>will not change.<br><br>Many thanks to all the contributors for this release.<br><br>The cairo-sphinx tool has been removed; we could not find any instruction on<br>how to use it, and no user answered our call for help. If you were using<br>cairo-sphinx, please reach out to the cairo maintainers.<br><br>Cairo now implements Type 3 color fonts for PDF. Thanks to Adrian Johnson for<br>his work on this feature.<br><br>Khaled Hosny contributed multiple documentation fixes, to ensure that the<br>cairo API reference is up to date. Khaled also fixed multiple compiler<br>warnings generated when building cairo.<br><br>The XML surface has been removed; it was disabled by default when building<br>cairo, and we could not find any downstream distributor that would enable<br>it.<br><br>The Tee surface is now automatically enabled. Downstream distributors of<br>cairo have been enabling for years it in order to build Firefox.<br><br>Fujii Hironori and Adrian Johnson fixed multiple issues with the DWrite<br>font backend.<br><br>John Ralls improved the Quartz surface; mainly, Quartz surfaces now use<br>the main display ColorSpace, speeding up rendering operations.<br><br>Cairo now hides all private symbols by default on every platform; the old<br>"slim" symbols hack to alias internally used symbols has been dropped, in<br>favor of using `-Bsymbolic-functions` with toolchains that support it.<br><br>Uli Schlachter fixed multiple memory leaks in the code base and test suite,<br>and helped with many reviews and general maintenance.<br><br>Marc Jeanmougin added new API to expose the Pixman dithering filter to cairo<br>patterns; this is currently implemented only for image surfaces.<br></div><div><br></div><div>The first stable cairo release in five years should be cause for celebration.<br><br>All the API added in the 1.17 development cycle is now considered stable, and<br>will not change.<br><br>Many thanks to all the contributors for this release.<br><br>The cairo-sphinx tool has been removed; we could not find any instruction on<br>how to use it, and no user answered our call for help. If you were using<br>cairo-sphinx, please reach out to the cairo maintainers.<br><br>Cairo now implements Type 3 color fonts for PDF. Thanks to Adrian Johnson for<br>his work on this feature.<br><br>Khaled Hosny contributed multiple documentation fixes, to ensure that the<br>cairo API reference is up to date. Khaled also fixed multiple compiler<br>warnings generated when building cairo.<br><br>The XML surface has been removed; it was disabled by default when building<br>cairo, and we could not find any downstream distributor that would enable<br>it.<br><br>The Tee surface is now automatically enabled. Downstream distributors of<br>cairo have been enabling for years it in order to build Firefox.<br><br>Fujii Hironori and Adrian Johnson fixed multiple issues with the DWrite<br>font backend.<br><br>John Ralls improved the Quartz surface; mainly, Quartz surfaces now use<br>the main display ColorSpace, speeding up rendering operations.<br><br>Cairo now hides all private symbols by default on every platform; the old<br>"slim" symbols hack to alias internally used symbols has been dropped, in<br>favor of using `-Bsymbolic-functions` with toolchains that support it.<br><br>Uli Schlachter fixed multiple memory leaks in the code base and test suite,<br>and helped with many reviews and general maintenance.<br><br>Marc Jeanmougin added new API to expose the Pixman dithering filter to cairo<br>patterns; this is currently implemented only for image surfaces.<br></div><div><br></div><div>Full changes since 1.17.8</div><div><code style="font-family:arial,sans-serif">=========================</code></div><div>Adrian Johnson (58):<br>      PDF Type 3 color fonts<br>      Fix build with -DDEBUG_SVG_RENDER<br>      meson: Replace existing link if it already exists<br>      Merge branch 'fix-svg-render-debug' into 'master'<br>      Merge branch 'fix-test-symlink' into 'master'<br>      Merge branch 'pdf-color-fonts' into 'master'<br>      Merge branch 'bug-597' into 'master'<br>      Merge branch 'issue-634' into 'master'<br>      doc: remove out of date remarks<br>      Merge branch 'bug-611-glyph-path' into 'master'<br>      truetype: revert use of _cairo_strndup<br>      Implement a font options compare function and use it in gstate<br>      Merge branch 'warnings' into 'master'<br>      Merge branch 'remove-unused-tee-function' into 'master'<br>      Merge branch 'doc-fixes' into 'master'<br>      Enable COLRv1 fonts<br>      FT: Always use the outline glyph to get the path<br>      Merge branch 'dwrite-argb-glyph-mask' into 'master'<br>      Merge branch 'fix-valgrind-errors' into 'master'<br>      Merge branch 'enable-colorv1-fonts' into 'master'<br>      Merge branch 'ft-use-outline-glyph-for-path' into 'master'<br>      Merge branch 'dwrite-glyph-phase' into 'master'<br>      Merge branch 'issue-641-glyph-bounds' into 'master'<br>      Merge branch 'fix-doc-for-cairo_matrix_transform_distance' into 'master'<br>      Merge branch 'issue-569-dwrite-inflate-glyph-bounds' into 'master'<br>      Merge branch 'dwrite-a8-glyph-mask' into 'master'<br>      Merge branch 'dwrite-clip-glyphs' into 'master'<br>      Merge branch 'dont-free-nonheap-object' into 'master'<br>      Merge branch 'issue-3-win32-font-scale' into 'master'<br>      ft: Use normal font size when detecting the format<br>      Merge branch 'issue-643' into 'master'<br>      Merge branch 'riastradh-20220406-ctype-misuse' into 'master'<br>      win32: InterlockedCompareExchange uses LONG<br>      Merge branch 'ci-windows-image-update' into 'master'<br>      Merge branch 'issue-776' into 'master'<br>      cairo-list-inline.h: fixes and documentation<br>      Make cairo_tag_begin/end work correctly in groups<br>      pdf: Don't use snprintf() to print floats<br>      Merge branch 'issue-508' into 'master'<br>      Don't assume HAVE_FT_PALETTE_SELECT is defined when HAVE_FT_SVG_DOCUMENT is defined<br>      Merge branch 'issue-777' into 'master'<br>      ft: don't use scaled_glyph->dev_private to store data<br>      Merge branch 'issue-778' into 'master'<br>      Use a spinlock to prevent race condition when initializing mutexes<br>      Merge branch 'issue-782' into 'master'<br>      Merge branch 'ci-bump-windows-image' into 'master'<br>      Update CI to Fedora 38<br>      Fix PS crash with color font and CAIRO_COLOR_MODE_NO_COLOR<br>      Merge branch 'update-to-fedora-38' into 'master'<br>      Merge branch 'fix-colrv0-handling' into 'master'<br>      Avoid undefined signed left shift<br>      Merge branch 'fix-no-png-build' into 'master'<br>      Merge branch 'check-def-arches' into 'master'<br>      Merge branch '5898791338508288' into 'master'<br>      Merge branch 'master' into 'master'<br>      Merge branch 'master' into 'master'<br>      Merge branch 'big-endian-swap' into 'master'<br>      Merge branch 'bobby285271/fix-format-security' into 'master'<br><br>Alex (3):<br>      Fix <a href="https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56152">https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56152</a> memory read access because of incorrect size<br>      Fix warning<br>      Refix <a href="https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56152">https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56152</a> according to recommendations<br><br>Behdad Esfahbod (1):<br>      [gobject] Bind cairo_glyph_t and cairo_text_cluster_t<br><br>Bobby Rong (1):<br>      Fix building with -Werror=format-security<br><br>Caolán McNamara (1):<br>      ofz#46165 avoid a divide by zero seen fuzzing libreoffice rendering<br><br>Christian Clauss (1):<br>      Delete cairo/perf/make-html.py<br><br>Christian Hesse (1):<br>      Fix font options leak in _cairo_gstate_ensure_scaled_font()<br><br>Emmanuele Bassi (54):<br>      Post-release version bump to 1.17.9<br>      Merge branch 'ebassi/snapshot-release' into 'master'<br>      tee: Fix cairo wrapper functions<br>      util: Fix compiler warnings in cairo-sphinx<br>      Remove XML surface<br>      Merge branch 'fix-error-handling-docs' into 'master'<br>      Merge branch 'drop-xml-surface' into 'master'<br>      Merge branch 'gi-text-glyphs' into 'master'<br>      Merge branch 'readme-gl' into 'master'<br>      docs: Add override for feature symbols<br>      build: Drop legacy build<br>      Merge branch 'ebassi/drop-autotools-check' into 'master'<br>      Drop "slim" symbols<br>      Add surface-to-png in the quartz boilerplate<br>      Build with hidden symbols by default<br>      build: Remove unused files<br>      Merge branch 'issue-642' into 'master'<br>      Merge branch 'no-slim-symbols' into 'master'<br>      tee: Remove questionable terminology<br>      build: Move 'tee' from disabled to auto<br>      build: Enable cairo-sphinx only if we have SysV's SHM<br>      Merge branch 'cairo-tee-checks' into 'master'<br>      Allow static builds of cairo-sphinx<br>      Merge branch 'ebassi/sphinx-static-build' into 'master'<br>      ci: Add a static build on Linux<br>      ci: Remove autotools from the Fedora image<br>      Merge branch 'ebassi/ci-static-linux-build' into 'master'<br>      Merge branch 'sphinx-static' into 'master'<br>      Make Cairo dither to Pixman dither conversion static<br>      Merge branch 'font-option-leaks' into 'master'<br>      Merge branch 'wip-fix-352' into 'master'<br>      Merge branch 'leak-bug-431' into 'master'<br>      Merge branch 'remove-sphinx' into 'master'<br>      Merge branch 'ebassi/dithering' into 'master'<br>      docs: Fix versioned symbol indices<br>      docs: Update the symbols list<br>      docs: Hide private docs<br>      docs: Add missing tee surface section<br>      Remove pointless CAIRO_HAS_DITHER<br>      docs: Add missing section docblock for cairo-tee<br>      docs: Add missing docblocks for the device observer API<br>      docs: Do not make private symbols with docblocks<br>      docs: Add missing long description for cairo-quartz-font section<br>      Ensure that argument names in declarations match definitions<br>      docs: Add missing docblocks for content tags<br>      docs: Add missing docblocks for cairo-tee API<br>      docs: Add docblocks for missing feature defines<br>      docs: Add missing docblocks for surface observer API<br>      docs: Remove docblock<br>      docs: Use the proper xinclude path<br>      docs: Fix closing docblock<br>      build: Fix program listing syntax check<br>      ci: Remove manual doc checks in the build job<br>      Release Cairo 1.18.0<br><br>Fujii Hironori (11):<br>      Win32 surface compositor should support DWrite font<br>      DWrite: More accurate glyph paths for small fonts<br>      DWrite: Don't convert subpixel antialiasing to grayscale<br>      DWrite: glyph surfaces should take subpixel positions into account<br>      DWrite: clipped glyphs in win32 compositor<br>      Fix cairo_matrix_transform_distance documentation<br>      DWrite: Inflate glyph bounds 1px vertically too<br>      Change the workaround of MinGW dwrite_3.h problem<br>      DWrite: Support antialias and subpixel order font options<br>      DWrite: region clipping didn't work on win32 surfaces<br>      win32 font is very small if the lfHeight of HFONT is exactly -size<br><br>Jeremy Bícha (2):<br>      meson-check-def: Exclude sections from symbol list seen on ARM<br>      meson-check-def: Exclude sections from symbol list seen on mips<br><br>John Ralls (4):<br>      [quartz] Cleanup and make better use of cairo_quartz_image_surface_t.<br>      [quartz] Pretty up the surface-type and zero-size tests.<br>      [quartz] Replace surface-pattern xfail with latest CI fail image.<br>      [quartz]Conditionally Use Main Display ColorSpace instead of kCGColorSpaceDefaultRGB.<br><br>Jonathan Kew (1):<br>      Fix use-after-free in _cairo_tag_stack_pop<br><br>Khaled Hosny (21):<br>      doc: Fix dwrite gtk-doc warnings<br>      doc: Fix parameter name in comment<br>      doc: Fix the gtk-doc syntax of internal symbols<br>      doc: Document CAIRO_STATUS_SVG_FONT_ERROR<br>      doc: Document CAIRO_SURFACE_TYPE_SKIA and mark it deprecated<br>      doc: Fix missing quartz image surface docs<br>      doc: Include surface observer documentation<br>      doc: Don’t mention non-existent cairo_stroke_to_path()<br>      doc: Fix internal links<br>      doc: Escape percent sign<br>      doc: Fix external links<br>      doc: Document the deprecated status of more surface types<br>      doc: fix cairo_dwrite_font_face_set_rendering_params docs<br>      Fix -Wparentheses-equality warnings<br>      Fix -Wunused-but-set-parameter<br>      Remove dead code<br>      Fix -Wsometimes-uninitialized warning<br>      Fix -Wunused-variable<br>      Fix -Wuninitialized<br>      Fix -Wlogical-not-parentheses<br>      Fix -Wunused-function warnings<br><br>Luca Bacci (1):<br>      Remove stray #error in dw-extra.h<br><br>Marc Jeanmougin (1):<br>      Enable access to the pixman dithering path<br><br>Matt Turner (1):<br>      Open-code bbtree_del to avoid free()ing a non-allocated object<br><br>Matthias Clasen (1):<br>      Fix rendering of COLRv0 fonts<br><br>Sebastian Dröge (1):<br>      Hurd has no MAP_NORESERVE so don't use it there<br><br>Sergey Bugaev (3):<br>      meson: Don't pull in FreeType and Fontconfig by default<br>      Consistently spell "FreeType" with capital T<br>      Apply 1 suggestion(s) to 1 file(s)<br><br>Simon Ser (1):<br>      readme: drop reference to OpenGL backend<br><br>Taylor R Campbell (1):<br>      Avoid misuse of ctype(3) functions<br><br>Tim Serong (1):<br>      Avoid assert when drawing arcs with NaN angles<br><br>Tim-Philipp Müller (6):<br>      ci: bump windows image to latest<br>      ci: add some more workflow rules<br>      ci: bump windows image to latest<br>      Merge branch 'fix-pulling-ft2-and-fc' into 'master'<br>      ci: remove meson from job names<br>      Merge branch 'ci-remove-meson-prefix-from-job-names' into 'master'<br><br>Uli Schlachter (26):<br>      Merge branch 'unused-code' into 'master'<br>      Remove unused _cairo_tee_surface_find_match<br>      Merge branch 'quartz-image-surface' into 'master'<br>      Merge branch 'quartz-colorspace' into 'master'<br>      Merge branch 'ofz46165' into 'master'<br>      Merge branch 'unused-function' into 'master'<br>      Merge branch 'patch-1' into 'master'<br>      Merge branch 'fix-leftover' into 'master'<br>      Merge branch 'tag_stack' into 'master'<br>      Merge branch 'fix-signed-left-shift' into 'master'<br>      Merge branch 'hurd' into 'master'<br>      Disable svg glyph renderer when PNG is disabled<br>      Merge branch 'master' into 'master'<br>      Fix FT color glyphs on big endian systems<br>      Revert "Allow static builds of cairo-sphinx"<br>      Always build fdr.c into a shared library<br>      Update FDO_DISTRIBUTION_TAG<br>      Remove cairo-sphinx<br>      Fix font options leak in gstate<br>      Fix font options leak in scaled font<br>      Fix font options leak in cairo-surface.c<br>      Fix font options leak in _cairo_surface_copy_similar_properties()<br>      Fix font options leak in cairo script surface<br>      Fix leak in test/bug-431.c<br>      Merge branch 'leak' into 'master'<br>      tests: Add more dithering tests<br><br>iasunsea (3):<br>      cairo truetype reverse cmap detected memory leaks<br>      fix read memory access<br>      fix SEGV in cairo_type1_font functioons<br></div><div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><a href="https://www.bassi.io" target="_blank">https://www.bassi.io</a><br>[@] ebassi [@<a href="http://gmail.com" target="_blank">gmail.com</a>]</div></div></div>