Pycairo is a Python module providing bindings for the cairo graphics library.
This package provides the development files needed to build
packages that depend on Pycairo.
Provides
Requires
License
LGPL-2.1-or-later OR MPL-1.1
Changelog
* Mon Jan 26 2026 Dirk Müller <dmueller@suse.com>
- update to 1.29.0:
* :meth:`ImageSurface.get_data`: Return empty memoryview for
empty image :pr:`418`
* :meth:`ImageSurface.create_for_data`: support empty images
:pr:`419`
* Drop support for Python 3.9 :pr:`428`
* Drop support for PyPy 3.10
* Support multi-phase init :pr:`413`
* Experimental support for free-threaded Python :pr:`430`
:pr:`429`
* Update dependencies (libpng, pixman) for the Windows wheels
:pr:`431`
* build: add "no-x11" option to disable X11 surface support
:pr:`432` :issue:`420`
* dev: support uv for development :pr:`433`
* Wed Jun 11 2025 Steve Kowalik <steven.kowalik@suse.com>
- Update to 1.28.0:
* Changes:
+ Remove hypothesis test dependency
+ Release the input buffer passed to ImageSurface.create_for_data() when
calling Surface.finish() already, not just when the underlying surface
is destroyed
+ Return a PathDataType (int subtype) instead of int with Path.__iter__()
+ Emit a DeprecationWarning in case ImageSurface.get_data() is called on
an already finished surface.
+ Emit a DeprecationWarning for the undocumented num_glyphs parameter in
Context.glyph_extents(), Context.glyph_path(), Context.show_glyphs(),
ScaledFont.glyph_extents()
* Fixes:
+ Remove the executable bit from cairo/__init__.py
+ Remove usage of removed typing.ByteString to fix compatibility with
Python 3.14.0a1
+ Drop support for Python 3.8
+ Port PEP517/wheel build from setuptools to meson-python.
+ meson: install the package metadata to .dist-info/METADATA instead
of .egg-info
* Mon Jul 29 2024 John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 1.26.1
* Fix Surface.set_mime_data() with Python 3.13 :pr:`366`
This also fixes the test suite with Python 3.13b2.
* Update vendored Windows wheel dependencies :pr:`370`
* Fri Mar 22 2024 Dirk Müller <dmueller@suse.com>
- update to 1.26.0:
* Bump minimum required meson version from 0.56.0 to 0.64.0
* Various meson related cleanups :pr:`350`
* Fix header file being installed to the wrong location with
meson on some systems :pr:`350`
* Adds a new ``wheel`` meson build option as preparation for
meson-python support :pr:`350` :pr:`345`
* Update dependencies (libpng, pixman, zlib) of the Windows
wheels :pr:`358`
* Various maintenance related updates :pr:`360` :pr:`359`
:pr:`361` :pr:`362`
* Tue Oct 24 2023 Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- update to 1.25.1:
* fix a crash in pypy3.10
* Fix the build with CPython 3.13.0a1
- introduced from 1.25.0:
* update to cairo 1.18.0 (for windows only)
* new apis:
- Status.SVG_FONT_ERROR
- FontOptions.get_color_mode(), FontOptions.set_color_mode(), ColorMode
- FontOptions.set_color_palette(), FontOptions.get_color_palette(), COLOR_PALETTE_DEFAULT
- FontOptions.set_custom_palette_color(), FontOptions.get_custom_palette_color()
- TAG_CONTENT, TAG_CONTENT_REF
- Pattern.get_dither(), Pattern.set_dither(), Dither
* Tue Jul 25 2023 Dirk Müller <dmueller@suse.com>
- update to 1.24.0:
* Dropped Python 3.7 support
* Bumped meson version requirement from 0.53.0 to 0.56.0
* Various cairo dependency updates for the Windows wheel build
* Various code cleanups :pr:`306`
* Added Python 3.12 Windows wheels
* Tue Apr 25 2023 Matej Cepl <mcepl@suse.com>
- Switch to single spec version build for PSP
* Wed Dec 07 2022 Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to version 1.23.0
* Reminder to distro packagers: Building/installing pycairo using setup.py is deprecated, please use meson instead.
* git: changed default branch from “master” to “main”
* Windows: Update the cairo version included in the wheels from 1.17.2 to 1.17.6 #pr-243
* docs: Document how to look up pycairo headers without loading the module #pr-300
* tests: don’t error out if cairo wasn’t built with all features #pr-293
New APIs:
* Status.DWRITE_ERROR #pr-294
* Format.RGB96F, Format.RGBA128F #pr-295
* PDFVersion.VERSION_1_6, PDFVersion.VERSION_1_7 #pr-296
* HAS_DWRITE_FONT #pr-297
* Context.set_hairline(), Context.get_hairline() #pr-298
* PDFSurface.set_custom_metadata() #pr-299
* Mon Nov 28 2022 Dominique Leuenberger <dimstar@opensuse.org>
- Updtae t